Live data from Hacker News

Go is an ideal language for AI-assisted software engineering

developers.googleblog.com

421–430 of 586 posts

Re: Go is an ideal language for AI-assisted software engineering

#421

Earlier quoted context omitted.

Is there a language that you would argue is at least as good as Go at everything and better than Go in at least one thing? That would be the most straightforward way to argue against its Pareto optimality. Listing particular sets of preferences for which Go is not optimal is not sufficient unless you can show the list to be exhaustive.

I'm not GP, but for me that would be TypeScript. TypeScript's tooling is as good as Go's across the board, it's very readable, it's a simple language, it has very few footguns, and it compiles fast. But it has better type safety than Go. This isn't an exhaustive proof as no language will every be fully Pareto optimal in practice (it's just not possible, there are too many dimensions), but I'd argue it's at least some…

Go was originally designed as a systems language to replace C++. It's much faster than JS but also less suited for applications code in some ways. JS (or TS) is definitely not strictly better than Go or vice versa.

One less obvious advantage: Go has greenthreading which is better than JS's async-await. Rust chose async-await to avoid the runtime overhead of greenthreading, but JS has no such reason, it's just a downside.

Re: Go is an ideal language for AI-assisted software engineering

#422

I'd argue Go is not on a "Pareto frontier" and that no matter how you value the various attributes of programming languages, a fair assessment will never select Go. A simple example is: if you highly value language popularity; Go is not most popular. If you highly value a type system that catches errors; Go's type system catches fewer errors than others. Etc. There is no weighted sum of attributes that will select Go…

Is there a language that you would argue is at least as good as Go at everything and better than Go in at least one thing? That would be the most straightforward way to argue against its Pareto optimality. Listing particular sets of preferences for which Go is not optimal is not sufficient unless you can show the list to be exhaustive.

None. But the very latest Java with records and virtual threads might be close to that for application code, cause it's like Go with exceptions and allegedly better generics.

Re: Go is an ideal language for AI-assisted software engineering

#423

"Oreo cookies are the tastiest cookies currently in the market!" ~ Oreo cookie company.

Isn't that true? Prove them wrong. (Someone who doesn't even eat cookie but heard a lot of praise of Oreo)

Pretty good proof is that people pick them apart to eat the inside, and they even acknowledge it.

Re: Go is an ideal language for AI-assisted software engineering

#424
post #213

Earlier quoted context omitted.

> I didn't want to do it in C, and I didn't want to learn Rust. Sounds like you made a decision right there. The rest is just retro-justification, not a logical argument or comparative between options. It works for you, good.

Retro-justification is not some flaw it is most common way people choose tech stacks. The only logic that matters most of time is business logic of solution serving problem statement and not logic of choosing a technical stack.

The original point was that go is not a Pareto-optimal choice along any set of language criteria.

"I didn't feel like choosing $LANG's competitors, so I went with $LANG" might be how languages are chosen for projects in the real world, but it's not exactly a convincing rebuttal to the argument being made.

Re: Go is an ideal language for AI-assisted software engineering

#425

Plain JavaScript is the ideal language for AI coding. It's very good with complex architectures. I think partly it's because the training set contains a lot of JS, but also because complex software written in JavaScript must have impeccable architecture in order to exist at all. It's rare to encounter a complex, functioning JavaScript application with bad architecture. I've never met any engineer smart enough to main…

I have always preferred plain JS without AI coding too, partially cause of what you said. Typescript encourages bad code. It also gets in the way of good code, doesn't really prevent bugs in prod, and complicates the toolchain.

Re: Go is an ideal language for AI-assisted software engineering

#426

I'd argue Go is not on a "Pareto frontier" and that no matter how you value the various attributes of programming languages, a fair assessment will never select Go. A simple example is: if you highly value language popularity; Go is not most popular. If you highly value a type system that catches errors; Go's type system catches fewer errors than others. Etc. There is no weighted sum of attributes that will select Go…

Go is relatively easy to learn, and the semantics of the language make it more difficult to write "clever" code that's difficult to understand. That's the main selling point, with a secondary point that it statically compiles so you don't have to do a whole Python/JS distribution thing for CLIs. Java feels like the closest contender here, although it really sucks for CLIs due to start up times. I don't think it's the…

Choosing a language because it's easy to learn might be common and popular, but that is just about the least meaningful criteria for a programming language given the length of time you expect to use it.

Can you imagine if structural engineers rushed to post comments about how they decided to use wood for all their projects because it was simple to get up and running with, and they didn't want to have to deal with the all complexities of having to learn about metals like steel?

Re: Go is an ideal language for AI-assisted software engineering

#427
I'm using Go more and more for my projects (AI, Web, CLI, ...). This is my go to for all my new projects.

My background is in data science and MLOps, where Python rules. But the focus is now less on building new AI models, and more on building the infrastructure and API calls with AI Agents. Go has a great async model, stellar performance, amazing tooling ecosystem, and far less ways of doing things than Python.

I except grow to become more and more popular, as our LLMs are now writing most of our code. Between a 50 MB portable binary in Go with 10x performance, and a 5 GB venv in Python with lack of proper parallelism, the choice is easy.

Re: Go is an ideal language for AI-assisted software engineering

#428

> By enforcing a single, standardized format via the built-in gofmt tool I'd read about this many times before I started with Go so I was particularly disappointed to learn that it was a lie. The most important task of a code formatter is to break long lines; it doesn't do it. It doesn't even have an option to do it!

Because long lines aren't against the style guide for some reason.

Re: Go is an ideal language for AI-assisted software engineering

#429
post #418
post #402

Earlier quoted context omitted.

Good point. It's sometimes challenging to get a Rust program to compile... but if you do, it's probably going to work.

The authors make some good points: compile time and test speed matter, platforms matter. But they really dodge the whole “guardrails matter” thing. And guardrails are going to win long term. As for readability, the fact that AI-written Go closely resembles human-written Go is not necessarily a point in Go’s favour.

> As for readability, the fact that AI-written Go closely resembles human-written Go is not necessarily a point in Go’s favour.

There's just not many ways of writing Go. It's a very dull language. It was designed to be dull and easily understandable.

Re: Go is an ideal language for AI-assisted software engineering

#430

Earlier quoted context omitted.

Isn't that true? Prove them wrong. (Someone who doesn't even eat cookie but heard a lot of praise of Oreo)

Oreo is mostly praised in the USA. Which says more about the USA than it says about Oreos.

Interesting. Why is Oreos sold in over 100 countries and apparently sold very well?
Post reply on HN