The future of AI is Ruby on Rails
seangoedecke.com
seangoedecke.com
I do however agree that there’s langs that are not as suitable for LLMs (Java) due to their verbosity (and engineers sort classes onto filesystem like a filing drawer. LLMs work best when everything for a domain, including tests, is in a single file).
Increased verbosity of the grammar does yield token wastage/ineffectiveness.
Having said all that - compile time matters HEAPS. The faster you can optimise your compile time the more loops (throwing pancakes at the wall) you can do. Here’s where it gets crazy though, one can loop a verbose compilation w/metrics back into the LLM and ask the LLM to propose improvements on how to make the compile faster. It works…
> LLMs work best when everything for a domain, including tests, is in a single file
Context management goes a long way to getting better results from LLMs (why I still like Aider over more agentic tools) and this gives you less flexibility to compose the context yourself based on what’s important to a given task.
Some languages do this much better than others.
I'd also add that code readability goes a long way too. Rust compiler has better checks than Go, but when LLMs make mistakes it's a lot easier to identify and fix generated Go code than Rust.
So the balance between verbosity and readability is important too, in addition to soundness checks. Java and Go are both verbose, but Go is intentionally designed for readability.
And compile time as already mentioned. Go wins there too.
All of these help together to iterate faster with fast and often subtly wrong generated code. LLMs will continue to be less wrong as the available training samples increase over time. That's something for the future to see what wins there.
That’s most Chad pattern I’ve discovered so far…
Far left: Just build better models
Midwit: Nooo you need succict languages to maximise the token efficiency, succinctness is a form of compression so that you can ...
Far right: Just build better models
I never recommend it with LLMs, because there is a definite context window and attention problem with a lot of languages, but Type-safety + being pre-trained on strong typing, makes any issues with context sizes moot. The latest generation of AI dev tools, are getting really good at solving problems using the type errors that it creates.
Also a lot of Rails niceties can be achieved in languages like Typescript with patterns such as decorators, which do an amazing job DRYing things up and reducing those contexts.
I would prefer to bet on Mojo[0].
> The Mojo programming language was created by Modular Inc, which was founded by Chris Lattner, the original architect of the Swift programming language and LLVM, and Tim Davis, a former Google employee. Intention behind Mojo is to bridge the gap between Python’s ease of use and the fast performance required for cutting-edge AI applications.
[0] https://en.wikipedia.org/wiki/Mojo_(programming_language)
If anything, using LLMs means we can use less language abstraction for more speed, and have them write Cpp or Rust directly without actually having to deal with their verbosity by hand. Then we can repeal Wirth's law and have our complexity too.
If anything, it sounds like ruby on rails should've been _the past_ of AI. But it clearly wasn't.
Going forward it is incredibly important for language designers to not break things. It always was but now the stakes are higher…
Can we not just use a language with a decent type system and compiler story? Heck, at this point I'd take C# or TypeScript over Ruby.