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

If anything, I think software needs more of these sort of top down safety rules. I want to companies held financially / criminally responsible for data leaks. Just like restaurants are held responsible for food safety.

The data was cool. Then I tried to tap on one of the other tabs. “This content is easier to read while full screen!” - Ok I’m game. “Hey this is what makes armature special!” - I don’t care, I’m here to look at data, not onboard onto some random platform. It took ages to find the tiny “skip tour” button, hiding in black on black text. Then it gave me another popup, which I dismissed without reading. Then the full screen modal was visible but it was horizontally misaligned - the left edge was cut off and the right of my phone screen was all white. I closed the tab with great prejudice. (Safari on iOS if you wanna try reproducing it)

I’m sure you - or Claude - built something you’re proud of. But I left your website frustrated.


Hey, thanks for the feedback, the leaderboards aren't displaying well on mobile indeed, we are currently shipping a fix that should help with that. Thanks anyway!

FWIW I had the same reaction to the popups. Immediately closed the tab.

Yep makes sense I’m relaxing them

It should be better now, including in mobile, thanks both for the feedback!

It depends how much you outsource to the llm.

If you outsource everything to a llm, I just don’t think you get very good results right now. Language models aren’t great at remembering all the little design decisions that are needed in medium to large projects. The code ends up riddled with semi-conflicting design choices, which have been slammed together and maintained by context inertia. For a lot of projects this is more than fine - sometimes higher quality work simply isn’t worth my time. But for a lot of projects, you will pay for that slop later.

But I think there is a useful middle ground. If you carefully review all the decisions an llm makes, I think you can often be more productive than just programming everything by hand. But it’s a very different way to do engineering. I think I learn more this way than if I program by hand - if only because I’m touching more code. My mind roves around the design space a lot more. I don’t lock in as much as when I’m programming each piece individually.

If you work with an llm like this, your engineering skill matters more than ever.


Frontend development - perhaps more than any other kind of software development - is “what you see is what you get”. There aren’t a lot of ways a website can be invisibly broken.

Systems engineering isn’t like that. Vibe coders beware: A database could silently corrupt data, or have latent security vulnerabilities. It might have a badly designed query language that will be difficult to change later. But frontend code can be rewritten at will. It’s a perfect target for LLMs.


At the same time I have found LLMs far less competent at frontend because they don't seem to have any visual understanding of what a good website looks like.

Similarly for how things feel, like animations, physics, controls, etc. That's one reason I don't think agents will be creating games anyone wants to play, any time soon (unless they just straight up copy an existing good game)

> There aren’t a lot of ways a website can be invisibly broken

Any website that has any UI state management or does any kind of network calls can be invisibly broken in many, many ways


> Systems engineering isn’t like that.

Whatever lets you sleep at night man. If you really think you’re better than the machine at spotting arcane Unix incompatibilities, or that you’re somehow more “safe” than frontend jockeys, I’ve got really bad news for you.


Are you replying to the right comment? I didn’t say any of that.

The UX is what makes the users use the apps, systems, games, their phones.

"There aren’t a lot of ways a website can be invisibly broken."

??? Have you never debugged weird react state before??? Have you never used a nontrivial SPA before? Even the most simple react SPA has about a trillion states.

I don't really know how to respond to your statement than "no, they can definitely be invisibly broken."


React state bugs are usually not invisible failure modes.

Other kinds of software - for example, the backend of a website - have far more invisible failure modes. Security. Correctness. Performance. Bad API design leading to overfetching. Etc. Software works great on your machine and when you demo it, but it falls apart at scale. Endpoints that aren't secured properly. Race conditions cause silent data corruption. Memory leaks. And so on.

If claude messes up writing a react frontend, we're more likely to find the problem quickly. And frontend bugs usually don't continue to cause problems after they've been fixed. Silent bugs in the backend are more dangerous and more expensive.


No need to engage with bad faith premises. You cant convince someone who is invested in their own FUD.

What bad faith premises?

Very cool!

How does the performance of this wasm interpreter compare to native execution? Are we getting close?

And you’re comparing against wasmtime.pulley, which is their optimising interpreter. How does it stack up against wasmtime’s cranelift compiler?


Thank you! :) In the `wasmi-benchmarks` suite we support ~20 different Wasm runtimes and compare their performance with each other, including optimizing JITs such as Wasmtime/Wasmer Cranelift and baseline JITs such as Wasmtime Winch and Wasmer Singlepass.

The geomean of performance of Wasmi compared to baseline JITs across all benchmarks in the repository ranges from 2.5-5.2x slower depending on hardware. And compared to opimizing JITs geomean ranges from 5.3-10.7x slower.

Wasmtime's Pulley is a very interesting interpreter. It isn't the fastest but it is the only Wasm interpreter that sits behind an elaborate optimization pipeline. Thus if you feed unoptimized Wasm, it would likely outperform the other interpreters. However, unoptimized Wasm is extremely uncommon.


When I've measured this in the past I've seen Wasmtime's Cranelift compiler generating code that runs roughly 1.5x-1.9x slower than native (LLVM) on SPEC 2017 workloads, with x86-64 being closer to 1.5x and AArch64 closer to 1.9x. From what I recall, interpreter performance was generally more like 10x slower than native, with some workloads that involved heavy cryptography/SIMD being 30x slower.

No, they're not getting close. Top performing Wasm runtimes (like those in V8 and JSC) are generally between 10% (for pure math workloads) and 2x (conservatively, for ef allocation heavy ones) the speed of equivalent native implementations. But that's including the JIT compilation tiers; the performance of interpreters alone lags by an order of magnitude.

Between 10% and 100% ? Am I understanding that right?

I put that poorly: read as 110% and 200%

Surely you mean the "time spent," not the "speed" - as an interpreter would have an overhead, not magically speed up WASM execution. Somewhat related note, we need better tools for PGO within native compiled programs.

Sure. But you're stuck with GTK on every platform. "Cross platform, so long as you want to use GTK everywhere" is much less exciting than using actual native cross-platform UI elements.

- Grab the native canvas, draw your own UI

- Electron and friends (web toolkits, tauri, etc)

- Or my favorite: Just have a UI library which wraps all the native UI toolkits on each platform. Eg: https://daybrite.dev/


Doesn't Qt wrap native UI toolkits? It looks very native...

AFAIK, the OS-specific Qt themes don't wrap the native widgets, it reimplements them. They are rather thorough though, making sure their OS-specific theme matches the look and behavior of the native OS, which makes it one of the best framework to do something that feels close to native.

ok. did not know that.

No, it's just the most accurate re-implementation that I know of at least for Windows.

You can sometimes tell the difference because the QT emulated widget can do things that the native widget can't.


If you know this stuff, please make videos / talks yourself going through it. Casey doesn’t have the background for a lot of this. He’s doing great as a C++ dev but as you say, he’s just one guy with one perspective.

I really think videos and talks are the least effective ways to get these things out there. I'd rather just point people to references I've read myself about specific topics rather than try to create a structured synthesis or presentation. I tend to think that's sort of best anyway for a curious individual: go read primary sources about some topic, and if interested further, citations or other related works. Every Turing Award Lecture transcription I've read has been insightful. I just recalled that Uncle Bob was writing a book about influential programmers, he was calling for suggestions on names a few years ago: https://x.com/unclebobmartin/status/1714972421269119190 One could just read through those names and the names of those the comments added (I had several more) and the work they are most known for, and by the time one is done with that, one will have a very nice historical picture of computer science up to the 70s. Nowhere near complete, of course. It seems he did publish his book at the end of 2024 (https://www.amazon.com/We-Programmers-Chronicle-Coders-Rober...), I'll have to check it out at some point. (Edit: and I'm reminded of another funny thing. Early in the book Clean Code, he asked some other programmers what they thought was meant by the idea. I remember penciling in some objections in the margins that he should have asked x,y,z other people who I would rather have read from than some of his sample.)

It's just absurd to me to point at Casey, of all people, as the most informed person who would be best positioned to publish something containing all of the history of anything broad.


Yeah. Casey is just some guy who’s good at software and YouTube. I’ve worked with dozens of people at his level technically. But very few with his interest and skill at making videos.

It’s a pity there’s not more people like him. I’ve met some incredibly smart people in the FP world. I wish more of them made approachable YouTube videos explaining what they know. I recently learned about “Safe Haskell” which, if adapted to rust and other languages, could solve a lot of the security problems with npm and cargo. But nobody knows about it! We need FP Casey.


Safe Haskell is just a worst version of Rust's unsafe. What it actually does is equivalent to Rust's #![forbid(unsafe_code)] which immediately lead to a question: so Haskell has unsafe, just like Rust? And of course it does. Any practical systems language has unsafe in one form or another, not only for FFI but also for performance, Rust is just honest about it.

There's two reasons Safe Haskell is substantially worse than what Rust does. Safe Haskell works by annotating code that is safe, but that's entirely backwards. We need to annotate unsafe code, and explain in plain English exactly why it is okay in that particular instance (of course it would be better to explain in code, like, give a formal proof that is checked by the compiler, but then it isn't unsafe anymore!). Safe Haskell answer for that is to annotate good unsafe code as trustworthy, but that doesn't work because it doesn't goes in detail on why the code is trustworthy (to do so you really need to go into the details, you can't handwave it). It's the // SAFETY comments that are at the heart of Rust's unsafe, carefully explaining safety invariants that must be kept (specially important if we are modifying code), not unsafe { } blocks.

The second reason is much simpler. It's optional, and approximately nobody uses Safe Haskell or cares about it. If people used it we would have something to improve upon. So Rust achievement here is mostly sociological, it's a community of programmers that care about safety. Which is good given that a Rust program typically have much more unsafe code than a Haskell program.

Here's a thread about Safe Haskell issues https://www.reddit.com/r/haskell/comments/zwkqke/deprecating... that links to https://discourse.haskell.org/t/deprecating-safe-haskell-or-...

And an older thread https://www.reddit.com/r/haskell/comments/msa3oq/safe_haskel...


The thing I really want is a language or environment with no implicit access rights. So, if I call add(a, b) then the add function doesn’t have implicit access to the filesystem, network or global variables in other parts of the program. If you want to give a function access to a subdirectory, you should pass a handle to that subdirectory as an argument and use openat() or equivalent.

This would guarantee - at a language level - that leftpad or log4j can’t root my computer.

Safe rust doesn’t give this guarantee. Safe code can still make arbitrary syscalls. Safe rust can convert a path string to a File. Or open arbitrary network sockets. Rust also doesn't have a way to import a crate but forbid the use of any unsafe blocks.

I want to be able to use 3rd party code from cargo without getting hacked. Right now rust does not keep me safe from these supply chain attacks.

I don’t know enough about safe Haskell to know how close it tacks to this. But that’s what I want.


I think nextaccountic is not technically fully correct, but he/she is at least correct in the most important part: Safe Haskell is not really practical.

But if you don't want an ironclad guarantee and instead you're content with making wrong code obviously wrong even if it's not formally verified, then I recommend Haskell with a capability system (what the Haskell world calls an "effect system"). As far is I'm concerned there are two practical choices in 2026, Bluefin (mine) and effectful (one of Bluefin's inspirations)

* https://hackage.haskell.org/package/bluefin

* https://hackage.haskell.org/package/effectful


How does this compare to Spritely Goblins? I had a good chat with Christine about it at a conference. She said "Ah, you've been infected with the capabilities virus too. My condolences."

https://spritely.institute/goblins/


Interesting, I have not heard of Spritely Goblins! But neither Bluefin nor effectful could be described as distributed capability systems/effect systems, so I don't think they're comparable.

On infection, I think it's a bit like being infected by mitochondria :)


> The thing I really want is a language or environment with no implicit access rights

I don't think you'll find anything like that from a General Purpose Language, so you probably want something like WUFFS [Wrangling Untrusted File Formats Safely].

https://github.com/google/wuffs


Prime is an entertainer first and foremost. He talks with confidence, even when he doesn’t know what he’s talking about - which is very often.

Casey is far more measured, careful and accurate. Casey feels like an engineering educator first, who happens to make YouTube videos. I don’t always agree with Casey’s technical opinions, but he seems like a thoughtful guy who thinks things through.


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

Search: