YESSSS!!! speed is THE way! I like my boilerplate POJOs/data classes generated at breakneck pace of 300+ tok/s, Flash-Lite is more useful than GPT-5.5 for me this way. if it's too slow, you just stay in that goddamn async death loop
> I like my boilerplate POJOs/data classes generated at breakneck pace of 300+ tok/s
Regardless of speed, use the LLM to eliminate the need for boilerplate rather than just creating more code faster.
> if it's too slow, you just stay in that goddamn async death loop
Things get slow when you're ballooning the size of your code, files, design and architecture, and things get more involved and complicated, piling fast hacks on top of fast hacks and everything get brittle.
For boilerplate, yeah. But when asking research or exploratory questions, or weighing whether a feature is well designed, or asking "can I implement _x_ feature using these libraries without introducing unnecessary complexity", then GPT-5.5 medium is still fast enough.
10-20 seconds times a couple turns on a new feature isn't bad. Kimi is also similarly fast if not faster.
I do agree with smaller models for more constrained/routine tasks though.
some timing-sensitive games such as Clair Obscur (parry) or I Am Your Beast (movement)? sure, they depend on low latency. that said, GeForce Now is, sadly, pretty good nowadays. enough to play a moderately fast paced game such as DEATHLOOP. Ukraine, streaming from Germany. 5 GHz is basically required, but in slower-paced games, on a phone, with 720p streaming, you can get by with 4G.
even games are not really a moat for owning hardware - next Gears with its timing-sensitive reloading mechanic can just get adapted for cloud.
if cloud gaming gets another hype wave for one reason or another, this time I am pretty sure they will lock in a much bigger user base. me personally? still committed to owning my hardware, but I can totally imagine my mother playing some RTS on a GeForce Now-connected tablet and having zero complaints.
it is possible to adapt to input/network lag, sure. I played Doom 3 at 10-15 FPS in 640x480 and Warcraft 3 with 300ms latency, and I enjoyed it at the time, but I don't think I could endure such underwhelming experiences after many years of much better ones.
how about the LPCAMM route? Framework uses LPCAMM2 in 13 Pro laptop mainboards and claims that it satisfies the iGPU and NPU hardware without needing soldered RAM
I am more excited about WinUI Reactor than anything else. the gap between Compose/React thinking and XAML thinking is enormous, and Reactor just bridges it. I am curious about interoperability - how would one include a Reactor-based component into existing WinUI 3 app? how would one include a XAML-based control from some other library into a (future) modern WinUI Reactor app?
I've been using Gemini for that - it feels like it practically thinks in images (or "possesses impressive visual intelligence," as Google execs would put it).
@cImport is moving to the build system in an upcoming version (0.17, I think?). It's inconvenient, but it's unfortunately necessary.
The issue with @cImport is that when and the order the imports occur are almost impossible to define if you have multiple files and libraries. By moving it to the build system, the order now becomes deterministic and you can refer to it properly.
The point here is that these examples need to be updated because @cImport, the syntactic feature of Zig, is being deprecated and removed. That there exists an alternative isn't relevant.
> What is going on in the world of pure IOS/Android app development?
I'll speak only for Android.
I am tired of Google breaking source compatibility with every AndroidX release and remaining on outdated IntelliJ Platform versions in Android Studio.
not too long ago, Google released AGP 9.0, which was a SHOCKWAVE for many Android projects. many compiler plugins' compatibility, including Google's own Protobuf Gradle plugin, took very long to adapt. also, Kotlin Multiplatform received so much damage that a month after release, JetBrains themselves released an AGP 9.0 migration video on YouTube.
and then we have MDC-Android (Views) v. Compose tension. MDC-Android got Material 3 and M3 Expressive components much faster than Compose, and for many you still have to be on alpha Compose Material3 releases... which are more stable than "Stable," somehow. Compose is nice, but I'd swap Material for something else ASAP or use Compose Foundation directly.
> How is AI/LLMs affecting app development?
you have more useless buttons in Android Studio. or, if you are a paying IntelliJ IDEA Ultimate user, you can have Android support in IDEA, which enables ACP agents without sacrificing proper Android support. IDEA Android plugin lags behind AGP upgrades a little, though, but it's fine.
oh, and, you can vibecode Android apps in Google AI Studio with streaming from a Google-hosted device, all without Android Studio.
> what has changed in App Development in the past 2-5 years?
2 years? a lot. 5 years? the world turned upside down! Compose got Stable release 4 years ago.
> What does a career in only app development look like nowadays?
very discouraging. everyone just prefers React "Native". I couldn't find an Android job in two years because it's nowhere to apply to in Ukraine and just recently switched to .NET. guess what? less than a few weeks passed after I updated my Djinni and now I have a few interviews on the next week.
I am so used to thinking that Zig, Rust, and the likes are only viable in niches where C is viable, but no. not anymore at least - once this linker and incremental compilation on other targets land, Zig will become THE C replacement and that will let me iterate at the speed of JS or Python with performance of C or Rust. even Andrew's initial dream - to create a DAW with uncompromising UX - will become much easier to create. once someone creates a Zig-native immediate-mode or reactive UI framework, that is.
I am still a little salty about `@cImport` removal, though! without it, I can't confidently call it "Kotlin of C" anymore.
> that will let me iterate at the speed of JS or Python with performance of C or Rust.
Didn't Go already do that?
> I am so used to thinking that Zig, Rust, and the likes are only viable in niches where C is viable, but no. not anymore at least - once this linker and incremental compilation on other targets land, Zig will become THE C replacement
Yes, and it will still only be useful in the same niche that C is because the entire philosophy of Zig is to essentially be like C. You're never going to interate at JS/Python speeds with Zig because you'll always be wrangling with memory lifecycles, object lifecycles, etc...
> no. GC pauses turn any serious systems work into hell.
did you miss the context I was responding to? They were comparing against JS & Python and rapid iteration speeds. That's obviously not "serious systems work" where GC pauses matter
> this does not exclude the possibility of creation of libraries that manage everything for me within their domain of responsibility, such as dvui
Sure, but if you're philosophically okay with hidden allocations and control flow, why not just choose a language that doesn't compromise itself for those ideals in the first place?
that was me comparing, please kindly read usernames next time :)
> why not just choose a language that doesn't compromise itself for those ideals in the first place?
I might want to wrap a timing-sensitive machinery into some nice UI. Rust has Tauri for that, sure, but now we are bringing npm and have zero chances of having GPU-accelerated UI without a crap-ton of fuckery which would be easier in Zig. another path for resolving that same issue is Compose Desktop + Project Panama, but then you are dealing with data marshalling, FFI boundary, and manual resource management in an environment that does not expect this.
so, here is a genius idea: why not have everything in one language? C++ already does that, much like C, but Zig does that so much better, and incremental compilation time is one of the more practical and immediate developer UX benefits it provides. Rust? good luck having shared mutable state there.
That sounds good on paper. But as a guy who tried to learn Kotlin and only it. It comes with baggage to learn Java to use its libraries because... You know... they interact seamlessly and stuff. In the end, for a new learner, it might actually make things harder.
Nothing about Zig and C here, just a bit salty from my experience with Kotlin.
Kotlin <-> Java interop is a totally optional topic you could have skipped over, telling you as a Kotlin developer (who recently had to switch to .NET because Ukrainian job market is fucked up). besides, Java itself isn't that hard if it's Java 17 or newer, and it's rather good if it's Java 25 or newer
> Kotlin <-> Java interop is a totally optional topic you could have skipped over
This is the same place F# has been stuck in. It’s a great language on its own, but you can’t just use F#. Every F# must also do C# interop. It’s too 100% optional in theory, but never in practice. The best CLR/JVM libraries for anything are Java/C# ones. You need to interop with them to develop practical Kotlin/F# applications. You can limit yourself to the Kotlin/F# ones, but then you’re artificially limiting yourself to experimental libraries at best. You will find yourself needing a charting library, a DNS library, an SMTP library, an AWS SDK or a rabbitmq SDK. The best ones are gonna be Java/C#. Yes, you can always find a random GitHub repo for a “Kotlin-native X”, but the Java X library is a thousand times more mature, stable, performant, feature rich, etc. Same problem with F#. And the “glue” code is so “straight forward”, why would any one bother?
Kotlin also has its own features that differ from the way the JVM or Java has decided to develop them. For example: coroutines vs virtual threads or Kotlin “value” classes and Java value classes. The semantics don’t match and Kotlin stops becoming simply a “better Java”.
It'll be interesting long term to see where they go with Kotlin. WRT value classes they'll probably introduce something like @JvmValue like the did with @JvmRecord when data classes diverged from Java records.
They behave as if JVM was only relevant to bootstrap Kotlin ecosystem, especially since they became Google's darling on Android, and doubled down on Kotlin Multiplatform.
From all guest languages on the JVM, the Kotlin community is the one I rather avoid, as many behave thankless to the platform that actually makes their toy possible in first place.
Clojure, Groovy and even Scala, focus primarily on being nice with Java and having a symbiotic relationship.
Koltin folks are like "we're replacing Java, ahaha stupid language".
Well where is the Kotlin Virtual Machine, other than Android userspace, which nonetheless requires Java support to benefit from Maven Central ecosystem?
Kotlin is a terrible language for learning, as it has a lot syntactic shortcuts that are easy to mistake for magic. I think it's actually easier to learn some Java first, as it's simpler and teaches you the semantics both languages (mostly) share.
It's already sort of possible. https://codeberg.org/fellowtraveler/flux here is my Zig DAW. It has been amazing for the audio engine, but the ui is currently using imgui.
`@import` that you have to configure in the build system first.
this makes porting projects gradually, file by file, rather cumbersome. now I have to rewrite quite a lot of Chocolate Doom because my port was halfway there and then @cImport got gutted... or keep going with Zig 0.16.2 until it's either 100% Zig or has little enough files that upgrading won't make my build.zig file implode in lines of code
> Zig, Rust, and the likes are only viable in niches where C is viable
Pretty much correct, yes.
> Zig will become THE C replacement and that will let me iterate at the speed of JS or Python with performance of C or Rust.
Fundamentally impossible. C/Zig/Rust have 100% performance as a top goal, which has to be traded off with something else and that's always realistically going to be programmer work/effort/time.
You can't have a house built 100% fast but also 100% cheap and with 100% quality. At best you could cleverly abuse the law of diminishing returns and aim for ~80% in all three areas. That's basically what Go's trying to do.
> once this linker and incremental compilation on other targets land,
In any case, why would a better linker and faster compile times of all things achieve this supposed goal?
Beyond being low level, Zig is still pretty memory unsafe and has you make choices about each allocation, making it unappealing as an applications language. Zig and Python are completely different worlds.
> At best you could cleverly abuse the law of diminishing returns and aim for ~80% in all three areas. That's basically what Go's trying to do.
then how does Zig achieve ~90%?
> In any case, why would a better linker and faster compile times of all things achieve this supposed goal?
sub-100ms rebuild is actually more important as the project grows. when you iterate, you think differently. picking different colors or fonts or whatnot becomes much cheaper, so you are more willing to try
No? The conventional engineering wisdom has always been: pick two out of fast, cheap, or good.
And technological improvements don't remove these tradeoffs. You still have to balance tradeoffs. The best thing you could do is have a mix of technologies that choose different tradeoffs. A single technology (zig) won't do.
reply