logoalt Hacker News

behnamohyesterday at 8:58 PM36 repliesview on HN

I wonder if the era of dynamic programming languages is over. Python/JS/Ruby/etc. were good tradeoffs when developer time mattered. But now that most code is written by LLMs, it's as "hard" for the LLM to write Python as it is to write Rust/Go (assuming enough training data on the language ofc; LLMs still can't write Gleam/Janet/CommonLisp/etc.).

Esp. with Go's quick compile time, I can see myself using it more and more even in my one-off scripts that would have used Python/Bash otherwise. Plus, I get a binary that I can port to other systems w/o problem.

Compiled is back?


Replies

koe123today at 1:09 AM

> But now that most code is written by LLMs

Am I in the Truman show? I don’t think AI has generated even 1% of the code that I run in prod, nor does anyone I respect. Heavily inspired by AI examples, heavily assisted by AI during research sure. Who are these devs that are seeing such great success vibecoding? Vibecoding in prod seems irresponsible at best

show 7 replies
bogtogyesterday at 11:36 PM

> But now that most code is written by LLMs, it's as "hard" for the LLM to write Python as it is to write Rust/Go

The LLM still benefits from the abstraction provided by Python (fewer tokens and less cognitive load). I could see a pipeline working where one model writes in Python or so, then another model is tasked to compile it into a more performant language

show 3 replies
condimenttoday at 1:02 AM

100% of my LLM projects are written in Rust - and I have never personally written a single line of Rust. Compilation alone eliminates a number of 'category errors' with software - syntax, variable declaration, types, etc. It's why I've used Go for the majority of projects I've started the past ten years. But with Rust there is a second layer of guarantees that come from its design, around things like concurrency, nil pointers, data races, memory safety, and more.

The fewer category errors a language or framework introduces, the more successful LLMs will be at interacting with it. Developers enjoy freedom and many ways to solve problems, but LLMs thrive in the presence of constraints. Frontiers here will be extensions of Rust or C-compatible languages that solve whole categories of issue through tedious language features, and especially build/deploy software that yields verifiable output and eliminates choice from the LLMs.

show 1 reply
bopbopbop7today at 12:22 AM

> But now that most code is written by LLMs

Got anything to back up this wild statement?

show 5 replies
jacquesmyesterday at 11:17 PM

> But now that most code is written by LLMs

Is this true? It seems to be a massive assumption.

show 3 replies
simonwyesterday at 9:22 PM

I have certainly become Go-curious thanks to coding agents - I have a medium sized side-project in progress using Go at the moment and it's been surprisingly smooth sailing considering I hardly know the language.

The Go standard library is a particularly good fit for building network services and web proxies, which fits this project perfectly.

show 3 replies
nomelyesterday at 8:59 PM

> But now that most code is written by LLMs

I'm sure it will eventually be true, but this seems very unlikely right now. I wish it were true, because we're in a time where generic software developers are still paid well, so doing nothing all day, with this salary, would be very welcome!

show 2 replies
kenjacksonyesterday at 10:01 PM

Has anyone tried creating a language that would be good for LLMs? I feel like what would be good for LLMs might not be the same thing that is good for humans (but I have no evidence or data to support this, just a hunch).

show 7 replies
rednafitoday at 12:40 AM

I agree with this. Making languages geared toward human ergonomics probably won’t be a thing going forward.

Go is positioned really well here, and Steve Yegge wrote a piece on why. The language is fast, less bloated than Python/TS, and less dogmatic than Java/Kotlin. LLMs can go wham with Go and the compiler will catch most of the obvious bugs. Faster compilation means you can iterate through a process pretty quickly.

Also, if I need abstraction that’s hard to achieve in Go, then it better be zero-cost like Rust. I don’t write Python for anything these days. I mean, why bother with uv, pip, ty, mypy, ruff, black, and whatever else when the Go compiler and the standard tooling work better than that decrepit Python tooling? And it costs almost nothing to make my scripts faster too.

I don’t yet know how I feel about Rust since LLMs still aren’t super good with it, but with Go, agentic coding is far more pleasurable and safer than Python/TS.

show 1 reply
sakesunyesterday at 11:48 PM

LLM should generate to terse and easy to read language for human to review. Beside Python, F# can be a perfect fit.

show 1 reply
shevy-javatoday at 2:05 AM

> Python/JS/Ruby/etc. were good tradeoffs when developer time mattered.

First I don't think this is the end of those languages. I still write code in Ruby almost daily, mostly to solve smaller issues; Ruby acts as the ultimate glue that connects everything here.

Having said that, Ruby is on a path to extinction. That started way before AI though and has many different reasons; it happened to perl before and now ruby is following suit. Lack of trust in RubyCentral as our divine new ruler is one (recently), after they decided to turn against the community. Soon Ruby can be renamed into Suby, to indicate Shopify running the show now. What is interesting is that you still see articles "ruby is not dead, ruby is not dead". Just the frequency of those articles coming up is worrying - it's like someone trying to pitch last minute sales - and then the company goes bankrupt. The human mind is a strange thing.

One good advantage of e. g. Python and Ruby is that they are excellent at prototyping ideas into code. That part won't go away, even if AI infiltrates more computers.

show 1 reply
jdubtoday at 1:30 AM

> But now that most code is written by LLMs...

Pause for a moment and think through a realistic estimation of the numbers and proportions involved.

threecheesetoday at 12:16 AM

My intuition from using the tools broadly is that pre-baked design decisions/“architectures” are going to be very competitive on the LLM coding front. If this is accurate, language matters less than abstraction.

Instructions files are just pre-made decisions that steer the agent. We try to reduce the surface area for nondeterminism using these specs, and while the models will get better at synthesizing instructions and code understanding, every decision we remove pays dividends in reduced token usage/time/incorrectness.

I think this is what orgs like Supabase see, and are trying to position themselves as solutions to data storage, auth, events etc within the LLM coding space, and are very successful albeit in the vibe coder area mostly. And look at AWS Bedrock, they’ve abstracted every dimension of the space into some acronym.

ravenstineyesterday at 9:05 PM

I'm not sure that LLMs are going to [completely] replace the desire for JIT, even with relatively fast compilers.

Frameworks might go the way of the dinosaur. If an LLM can manage a lot of complex code without human-serving abstractions, why even use something like React?

show 2 replies
bstar77today at 5:22 AM

I’ve moved to rust for some select projects and it’s actually been a bit easier… I converted an electron app to rust/tauri… perf improvement was massive and development was quicker. I’m rethinking the stacks I should be focused on.

adwtoday at 2:47 AM

The quality of the error messages matters a _lot_ (agents read those too!) and Python is particularly good there.

show 1 reply
justaboutanyonetoday at 4:34 AM

We may as well have the LLMs use the hardest most provably-correct language possible

trollbridgetoday at 3:20 AM

I generally use LLMs to generate Python (or TypeScript) because the quality and maintainability is significantly better than if I ask it to, for example, pump out C. They really do not perform very well outside of the most "popular" languages.

cobolexpertyesterday at 9:36 PM

I was also thinking this some days ago. The scaffolding that static languages provide is a good fit for LLMs in general.

Interestingly, since we are talking about Go specifically, I never found that I was spending too much typing... types. Obviously more than with a Python script, but never at a level where I would consider it a problem. And now with newer Python projects using type annotations, the difference got smaller.

show 1 reply
c7byesterday at 9:54 PM

Agree on compiled languages, wondering about Go vs Rust. Go compiles faster but is more verbose, token cost is an important factor. Rust's famously strict compiler and general safety orientation seems like a strong candidate for LLM coding. Go would probably have more training data out already though.

tshaddoxtoday at 5:40 AM

Might as well choose a language with a much better type system than go, given how beneficial quick feedback loops are to LLM code generation.

al_borlandtoday at 12:19 AM

> assuming enough training data

This is a big assumption. I write a lot of Ansible, and it can’t even format the code properly, which is a pretty big deal in yaml. It’s totally brain dead.

show 1 reply
resonioustoday at 1:50 AM

> LLMs still can't write Gleam

Have you tried? I've had surprisingly good results with Gleam.

tyingqtoday at 12:31 AM

If you asked the LLM it's possible it would tell you Java is a better fit.

zahlmanyesterday at 9:37 PM

People are still going to want to audit the code, at the very least.

lsh0today at 1:16 AM

> LLMs still can't write Gleam/Janet/CommonLisp/etc

hoho - I did a 20/80 human/claude project over the long weekend using Janet: https://git.sr.ht/~lsh-0/pj/tree (dead simple Lerna replacement)

... but I otherwise agree with the sentiment. Go code is so simple it scrubs any creative fingerprints anyway. The Clojure/Janet/scheme code I've seen it writing isn't _great_ but it gets the job done quickly and correct enough for me to return to it later and golf it some.

dec0dedab0deyesterday at 10:01 PM

or maybe someone will use an LLM to create a JIT that works so well that compiled languages will be gone.

felixgalloyesterday at 11:53 PM

I wouldn't speak so quickly for the 'uncommon' language set. I had Claude write me a fully functional typed erlang compiler with ocaml and LLVM IR over the last two days to test some ideas. I don't know ocaml. It made the right calls about erlang, and the result passes a fairly serious test suite, so it must've known enough ocaml and LLVM IR.

ekianjotoday at 3:55 AM

Still less tokens to produce with higher level languages, and therefore less cost to maintain in the long run?

paulddrapertoday at 3:52 AM

Agreed. The compiler is a feedback cycle made in heaven.

deadbabetoday at 2:31 AM

Peak LLM will be when we can give some prompt and just get fully compiled binaries of programs to download, no code at all.

cyanydeezyesterday at 10:49 PM

I think you're missing the reason LLMs work: It's cause they can continue predictable structures, like a human.

The surmise that compiled languages fit that just doesn't follow. The same way LLMs have trouble finishing HTML because of the open/close are too far apart.

The language that an LLM would succeed with is one where:

1. Context is not far apart

2. The training corpus is wide

3. Keywords, variables, etc are differentiated in the training.

4. REPL like interactivity allows for a feedback loop.

So, I think it's premature to think just because the compiled languages are less used because of human inabilities, doesn't mean the LLM will do any better.

bitwizeyesterday at 10:34 PM

Astronaut 1: You mean... strong static typing is an unmitigated win?

Astronaut 2: Always has been...

Imustaskforhelpyesterday at 9:44 PM

I love golang man! And I use it for the same thing too!!

I mean people mention rust and everything and how AI can write proper rust code with linter and some other thing but man trust me that AI can write some pretty good golang code.

I mean though, I don't want everyone to write golang code with AI of all of a sudden because I have been doing it for over an year and its something that I vibe with and its my personal style. I would lose some points of uniqueness if everyone starts doing the same haha!

Man my love for golang runs deep. Its simple, cross platform (usually) and compiles super fast. I "vibe code" but feel faith that I can always manage the code back.

(self promotion? sorry about that: but created golang single main.go file project with a timer/pomodoro with websockets using gorilla (single dep) https://spocklet-pomodo.hf.space/)

So Shhh let's keep it a secret between us shall we! ;)

(Oh yeah! Recently created a WHMCS alternative written in golang to hook up to any podman/gvisor instance to build your own mini vps with my own tmate server, lots of glue code but it actually generated it in first try! It's surprisingly good, I will try to release it as open source & thinking of charging just once if people want everything set up or something custom

Though one minor nitpick is that the complexity almost rises many folds between a single file project and anything which requires database in golang from what I feel usually but golang's pretty simple and I just LOVE golang.)

Also AI's pretty good at niche languages too I tried to vibe code a fzf alternative from golang to v-lang and I found the results to be really promising too!

Jhatertoday at 12:14 AM

[dead]

rvzyesterday at 9:02 PM

> Plus, I get a binary that I can port to other systems w/o problem.

So cross-platform vibe-coded malware is the future then?

show 1 reply