I like the pseudocode approach I think there is some gold there. I been thinking a lot about it (https://www.generativenetworks.com/blog/do-we-still-need-to-...) but working on small apps I never need it only in bigger apps or when you need an extra level of precision in the prompt
Probably both, but I have to add: I agree with the post. I've done a ton of agentic development using Go over the past 6 months, and it hasn't let me down. You may ask "why not Rust, or Zig, or ____?" The reasons boil down to this:
- There's a lot of Go code out there which the models have seen, so they know how to write it.
- Go has an exceptional standard library, so you don't need to drag in 100 dependencies to create a simple web app.
- Go compiles extremely quickly for incremental builds, which really matters when agents are building and running tests constantly.
- Go has a goldilocks blend of performance and safety. You get a good type system and excellent runtime performance without forcing the model to spend cycles fixing Rust lifetimes or Swift concurrency issues for a marginal incremental gain.
- Go is relatively stable, so the LLM's memorized knowledge is still pretty fresh (as opposed to something like SwiftUI, where the API changes rapidly).
I don't think Rust is particularly worse than Go in any of these respects.
- LLMs have clearly been trained on a lot of Rust as well
- Compile times are counterbalanced by strong compiler with excellent error messages, and "cargo check" can catch many issues without a full build.
- If you're willing to accept Go levels of performance from Rust, there's nothing preventing you from using copies and clones rather than borrows, which makes most code dead simple.
- For most major dependency types, there exists a clear "winner" in terms of community adoption, so the fact that it's not in the stdlib is not that problematic.
I do not think "good error messages" is an even trade for "fast compile times." What happens is the LLM catches the error, then may hit another error, and try again. This leads to more tokens and more latency, and then after all that you have a longer compile time.
With that said, I have not done an extensive amount of agentic development in Rust, so maybe I just don't have the reps to compare fairly.
It's less that the error messages are just "good" with Rust, it's that more stuff gets caught at comptime, and many of them can be autoremediated by cargo fix or the compiler itself says exactly what should be changed.
Nothing costs more tokens than an LLM trying to debug errors caused at runtime which doesn't map well to it's "intelligence" compared to what Rust provides
Unless you have `cargo fix` hooked up to automatically run on any compiler error, every error is still is a round trip to the LLM. It may be trivial for the model to fix, but it's added latency and cost.
Rust compiles way slower in my experience. This is a major problem because ais need to recompile many times especially when it keeps running into borrow checker problems.
With golang, all borrow checker problems go away. This is a good trade off if your app is not cpu-bound, which most are not. If you need every last drop of performance then rust is a better choice of course.
However, I have run into a few cases of runtime null crashes in go.
> and "cargo check" can catch compile issues without a full build.
You only have to compile when you actually want to test the behavior, which tends to be right on the first try more often as a result of the strict compiler.
How would you compare it to C#?
Stable-ish
There's a lot of documentation and plenty of stablished patterns, so LLM can produce it no sweat
Everything and the Kitchen Sink
Performant, and safeish, even if not null safe
In my experience C# works out pretty good. I wrote a project in Go, it mostly went well, but it had weird bugs and the AI struggled to solve them. Rewriting in C# seemed a lot more robust. I use it a lot these days and I find the AI rarely has any issues with language/framework and you get pretty good results.
Yeah, C# is probably the closest direct comparison. I like that Go emits a simple binary, whereas it seems like that needs to be configured with a .NET project. Probably just a matter of taste/preference!
I wouldn't call Go's type system "good". It's basic or less. It's sound, at least (in the presence of data races), but that is the case (or mostly the case) for most programming languages.
Fair—though SwiftUI has influenced/required new Swift features like Result Builders. I've found generating Swift to be a mixed bag. The LSP consistently reports stale errors which the model has to ignore, handling strict concurrency correctly can lead to ugly workarounds or huge refactors, the documentation for Apple's APIs aren't accessible to agents, the list goes on.
Agreed. Felt like a AEO / or GEO (generative engine optimization or whatever the field term is these days) puff piece. Seems too verbose for most people to bother reading.
Gemini overindexes on Reddit answers. It'll give me clearly wrong info just because one person on Reddit said it. People are probably already bot-spamming Reddit for this exact reason.
This is what everyone who uses llms regularly expected. Good results require a human in the loop and the internet is so big that just about everything has been done there by someone. Most often you.
I'm 37 I thought I was too old but I decided to start all over again. Took some courses from Coursera about Deep Learning and last month started competing in kaggle and similar competitions sites. I earned 7k dollars but the most important is that I'm learning a lot like if I was in the university again, I think I'm learning even faster.
I'm 36 and have not once experienced blatant ageism. I keep my skills current and have pivoted my career many times when things got less interesting or I could tell the market was falling off. I went sysadmin>neteng>syseng>SRE and will have to pivot in 4-5 years again, probably, once some other culture-breaker has hit distributed systems for the 3rd time in my career.
Now, I don't have kids so you might go "hey you've got so much free time" - I'm also a 36yo engineer with 10+ years of experience. Most of the positions I take nowadays allow me AMPLE time (as in months) to do research and learn new systems before deploying them to production. I almost never study or work at home these days. A LOT less than in my 20s when I worked in startups.
I just went through a few months of interviewing, what did every company want out of me at this "age" (experience)? They wanted a strong desire to mentor and cultivate teams. I've worked with a lot of older engineers who aren't happy to do this, and that's a huge problem and something majorly wrong and undesirable in tech.
FWIW I will not ever consider the 30s or 40s old. I am working with a lot more 23-25yo developers now and feel like half of my skillset is bridging communication between zoomers and gen-x bosses. They love learning and its incredibly rewarding helping them grow their careers - something that I never got help with when I started in the toxic tech world of ~2008.
Had the opposite experience in London and I am not even 36 yet.
Could quote almost 10 companies that cancelled the interview in early stage or didn't interview at all, saying too much experience and worry I'd leave after 6 months for a better company (higher pay).
Gave up on interviewing for startups and medium companies. Get a job in a top tier company or starve to death. (Top tier is mostly finance in London because FAANG don't have big offices here).
Do you list every single position on your CV, like is it multiple pages with 15+ years on it? I believe CVs are like that whereas my resume is a 1 pager that only has my last decade of SUPER relevant experience listed; my last 3 SR Eng roles.
I could submit a 3 page resume with all of my sysadmin, etc jobs on it but then I would definitely be aging myself, even worse because my career actually started when I was 16 (I only mention this in casual interviews). If I started back then it'd probably look like I was 42+ on paper but at that point it's kind of more of a "why is this person listing irrelevant skills from 2005?"
Unfortunately I think that's the expectation with CVs? The ones I've seen look like they're describing the persons entire life to me.
One page both sides. Only list the most relevant positions.
I had to cut out positions very early on in my career because there were way too many to fit. I did some short contracting back in the days, imagine 5 jobs over less than 5 years.
Also removed all the dates for degrees and all the locations. (London recruiters have a bad habit to ignore experience outside London).
> Could quote almost 10 companies that cancelled the interview in early stage or didn't interview at all, saying too much experience and worry I'd leave after 6 months for a better company (higher pay).
This isn't ageism. People do leave jobs they're underqualified for at a much higher rate. And if the salary band for a given job is £50-75k and you require £85k then why would they interview?
The cheapest companies in London pay around 90-100k base, which is quite respectable. Your concern would be valid if the pay was really low but it is not. There are few companies that will significantly top that.
Sure, an employee might leave to Google for the money... if only Google had an office in London and they could get an interview and pass. It's not like it's going to invariably happen over the next 6 months. It's far fetched from the company to assume that.
In the meantime the candidate is out of a job because companies refuse to hire them (I don't know if that's ageism but that's certainly something) and the company gets no work done because it's understaffed.
My point wasn't about the pay figure exactly, just that if you want more money than they want to pay, that's not ageism it's wanting more money than a position is worth to someone.
> companies refuse to hire them (I don't know if that's ageism but that's certainly something)
What is it then? Nobody is owed a job as a human right, and companies are under no obligation to hire a specific person.
31 here. I almost did the same. I was working as fullstack developer + infrastructure engineer on AWS and I have recently pivoted to deep learning field and now working for a nlp product at this moment.
We do, but there's more surface area to cover because job requirements have also gone up and technology is more complex. Interviewing for tech has also branched off into its own skill with an industry that promotes its own existence.
Before 2008 it was amazing how many people outside of economics, finance, and politics were able to see a disaster coming, but almost everyone in those sectors was completely blindsided.
There's plenty of proof that people in those industries saw it coming. The question was when. Some people in them even thought it would pop years before 2008. If you acted on that then you lost despite being right because you didn't get the time horizon correct.
Giving advice is like trying to inject lines of code in a neural network instead of giving training examples to it. Nothing good is going happen. I prefer to share experiences and let people to do whatever they want with that information
reply