HN user

0atman

262 karma

Rusteacan, recovering Pythonista. Creator of the YouTube channel, No Boilerplate, and the hopepunk sci-fi podcast, Lost Terminal.

Posts3
Comments74
View on HN

I believe the principles the article author is looking for are core to Pivotal Tracker. I've often tried to persuade teams to use Tracker, but everyone sure loves the whiteboard metaphor!

My go-to is "Alice has 3 brothers and also has 6 sisters. How many sisters does her brother have?". They all say 6!

This test is nice because, as it's numeric, you can vary it slightly and test it easily across multiple APIs.

I believe I first saw this prompt in that paper two years ago that tested many AI models and found them all wanting.

Rust on Nails 2 years ago

I don't understand the question, but only one of those is a full stack web framework.

Rust on Nails 2 years ago

For anyone wanting a actual full-stack framework with sensible defaults, type checked sql+api+rsx, and overwhelming community approval, don't reinvent the wheel: It has existed for years and is called https://leptos.dev

(If you're just making a simple rest api backend, I still dig the simplicity of poem-openapi + sqlx)

I can't understand if rust on rails is a joke, badly written by gpt, or written by someone who doesn't understand both Rust and web development in general. It's full of typos and baffling design decisions. (shelling out to an external comand to generate rust code?! MACROS EXIST!)

This is the right answer. How can you go back to a non-typed world after Rust I don't know.

I use html-node which has a typed submodule for even greater strictness. I just build some valid html, make a string and write that to the output directory and get on with my life. Eg: https://github.com/0atman/noboilerplate/

Templates... Rust functions

Flow control... Rust match expression

Abstraction... Rust modules

Html validation... Rust compiler

I like to think that in writing the html-node crate, Vidhan taught the compiler to speak html! https://lib.rs/crates/html-node

YES! sqlx::query_as in the wild!

Making queries like this checks the sql is valid at compile time by connecting to the real database and running it with demo data inside a rolled-back transaction!

(If you'll forgive the self promo, I explained it better in this video https://youtu.be/pocWrUj68tU)

Rust's macro system allows you to program the compiler with each new program, and sqlx is my favourite example of this.

You don't believe me? That's an extremely weird reaction, he's on public record with this kind of behaviour, just look at most of the comments in this very thread of people saying the same thing.

You've forced me to look up the talk, and the one I have the ticket for in my email is actually from 2011, my memory of the date was wrong: https://localevents.theiet.org/register.php?event=bc7fd2

Someone took a terrible video of it (ah 2011 video) here https://www.youtube.com/watch?v=vazlMe7sNzM but that doesn't seem to include the Q&A section where he went off the rails.

I sympathise with your position, but is rms all we've got?

No developers were persuaded to change their language from 'open source' to 'free software' that day in 2009, him shouting at us was utterly ineffective.

We need good communicators, not just passionate people. I'm not suggesting he shouldn't write his good ideas down, but keep him away from an AUDIENCE.

I went to a small talk rms gave in London in around 2009. The talk was unmemorable (my fault, likely, not his) but the Q&A afterwards was remarkable:

He screamed at people for using 'open source' instead of 'free software' in their questions, raved about the Amazon "Swindle" like a 12-year-old, and talked over and down to everyone. He was often accurate in the core of what he was trying to say, but his attitude was unhinged, and discouraged most people from interacting.

The 100 or so developers all left the talk in silence, mourning the loss of the hero we had imagined him to be.

To those who say we need him for GNU outreach: we absolutely don't. ANYONE would be better for the job.

I thank him for his many incredible contributions to our world, and wish him a speedy recovery, but we don't need these talented assholes to represent our community.

(no boilerplate author here) Thank you so much for linking!

When I was first getting started I learned so much from Amos and his INSANE deep-dives over at fasterthanli.me, basically he taught me Rust. For my 3rd video I messaged him and asked if I could base it on his article and he said 'go for it' - since then we've both found ways to go full-time in our respective worlds, and we shitpost in a private discord together :-D

This video isn't really a good intro to either my channel or the WHYs of Rust, just the syntax.

If I may signpost my own intro to Rust playlist https://www.youtube.com/watch?v=oY0XwMOSzq4&list=PLZaoyhMXgB...

And an example of one of Amos's deep-dive videos "C++ vs Rust: which is faster?" https://www.youtube.com/watch?v=VMpSYJ_7aYM

We're not talking about hypotheticals. Rust wasm is used in production now. https://developers.cloudflare.com/workers/tutorials/hello-wo...

Emscripten and experimental backends hardly count as support for Nim. Python can run in webassembly by the same token, but no one would. The standard rust compiler compiles directly to webassembly, natively, with the stable toolchain.

In other languages, yes, the js bridge is a problem. However, not only will this be fixed in browsers at some point, but rust is so fast that TODAY yew.rs, a mature wasm framework, is faster than react.

My thoughts are better explained in this video https://youtu.be/P4LMfkFLRsI

Nim is too timid. Most languages are too timid.

My context: I'm a maintainer of iNim, creator of the Rust channel, No Boilerplate, and a professional python web developer for 15 years.

The features you are excited about in Nim are compromised for the sake of simplicity:

- Macros can't change syntax,

- There's a limit to how real-time the standard language is,

- Compiling to javascript is a nice trick, but if it didn't rely on GC it could compile to webassembly, which is better,

- Ask any advanced python developer: Indentation for syntax is a bad idea at scale. Hell, have you ever used YAML?

What Rust does is a revolution because they solved the problem of memory safety without garbage collection with the Borrow Checker. The knock-on effects are GARGANTUAN.

This was a hard problem to solve, and it makes the language more complex to learn, but it unlocks all the language's superpowers. If you 'cheat' with a GC, you get nothing. Nim started its life, just as most languages did with a GC, and the efforts to keep the syntax the same while offering alternatives are greatly compromised. It's far easier to add GC/RC to a low-level language than it is to remove it from a high-level one, where the whole ecosystem relies upon this behvaviour.

Of COURSE I know about Nim's plugabble GC options. That doesn't impress me at all (though Araq's effort is to be commended). In Nim they are compiler options, in Rust they're libraries. The difference is vital. For example, at a per-variable level, I can choose to reference count with https://doc.rust-lang.org/std/sync/struct.Arc.html if I so wish (I rarely need to because the borrow checker is magic).

If you want python, you can have it inside a Rust macro, sort of like this https://crates.io/crates/inline-python because rust macros CAN change syntax. With Macros and no GC, you can rebuild ANY FEATURE inside Rust, the floor of the abstraction is the metal, and the ceiling is the sky.

This is what Rust is all about: full power to the developer, no compromises. My video on this topic for those interested is: https://www.youtube.com/watch?v=PuMXWc0xrK0

I love both languages, but I can only see one language being the standard next 40 years, and demonstrably so can Linux, Microsoft, Cloudflare, Discord, and many others.