Hacker Newsnew | past | comments | ask | show | jobs | submit | bpavuk's commentslogin

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.

Slow is fast, longer-term anyways.


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.


Clair Obscur was perfectly playable for me through GeForce Now, for what it is worth, even when hitting parry timing. (N = 1, but a datum nonetheless)

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.

honestly I'd still throw a penny for at least a day pass if I'm e.g. traveling. getting that Duollistes or Locust fix on a train looks irresistible

"deemed". the past tense is doing a lot of work here.

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?

Don't be, if the WinUI team past performance is anything to come by.

They will leave it half baked like everything else since Project Reunion was announced in 2020.


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 dead, apparently, so the example should be updated.

"No no he's not dead, he's, he's restin'!"

@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.


@cImport is dead. It's not moving anywhere, it's being deleted.

The build system allows you to expose C libraries as Zig modules that can be imported with the normal @import builtin.


Stop the misinformation, it’s just changing where it’s being done moving from the language to the build system itself: https://ziggit.dev/t/cimport-going-away/5132

It’s also decoupling Zig compiler and C compiler so they’re updated independently.

It’s still a bummer in my view as I just replaced my build pipelines with just a Zig compiler instead of emscripten but that’s fine.


`@cImport` gets moved from the "mainline" language into a separate module -> this example won't compile on future versions of Zig, that's the point

> Stop the misinformation

This was an unnecessary prelude to an otherwise helpful comment.


It's deprecated not removed yet.

I'm a little too lazy to double-check, but either way 0.17.0 is around the corner, where it will totally get nixed

It is being moved not going away.

It is just a wrapper around zig translate-c, moving it to the build system moves the resulting clang dependency to a place where it can be optional.

The functionality is staying, it is just moving.


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.

Deprecated

Violence!

Android native dev here.

> 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...

Rust is significantly different.


Go is for the cases where GC works for you (many, many cases).

Zig is for when you need control over the allocator (also many such cases).


Go is a terribly verbose language.

> Didn't Go already do that?

no. GC pauses turn any serious systems work into hell.

> Yes, and it will still only be useful [...]

this does not exclude the possibility of creation of libraries that manage everything for me within their domain of responsibility, such as dvui


> 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?


> They were comparing

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.


Because they like and are excited about Zig.

> Kotlin of C

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?


I have quite literally never had to do Java interop in my Kotlin work. Do you have an example?

In contrast, your statement about F# strikes me as mostly true - albeit my interop was always the other way around (consuming F# code from C#).


Calling Koltin co-routines directly from Java code, as an example.

There is a reason Android team has Java friendly guidelines.


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”.

That is the curse of guest languages, see C and C++ as well.

That is why I always say keep with the platform, and why despite my endless rants on C, I keep myself up-to-date in regards to it.

Eventually they always diverge.


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?

Certainly driven by Android folks, I would say.


Clojure also "comes with the baggage" of learning Java libraries.

And JavaScript comes with the baggage of learning about web browsers and NodeJS's "fs" module.


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.

I've tried building your project, but hit problems due to dependency hash mismatches. Do you have a screenshot somewhere?

idk, making @cImport just "@import" is an improvement imo.

`@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


i would have guessed easier, since it makes c modules and zig modules ~indistinguishable?

> Zig-native immediate-mode

dvui?


many thanks, will look into that...

> 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


> You can't have a house built 100% fast but also 100% cheap and with 100% quality.

That’s essentially what technological development does, is make those tradeoffs more favorable.


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.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: