Live data from Hacker News

Thirteen Years of Go

go.dev

21–30 of 217 posts

Re: Thirteen Years of Go

#22
post #4

A number of applications I really enjoy are written in Go, so it's been on mind to learn enough to be dangerous. Has anyone had good success with any particular resources?

What are some examples? I've always thought of Go as a server-side language.

I built Homechart using Go and documented why/how here: https://homechart.app/blog/tech-stack-api/

Re: Thirteen Years of Go

#23

Earlier quoted context omitted.

Gitea and Hugo come to immediate mind. I thought there was a game framework that used Go as well (which I can't find at the moment). As a .NET guy, I've actually started looking for tools built in Go since I know they'll be easy to run across the platforms I use, without extra dependencies.

.NET applications can be built as a single static binary, although IME it's usually much heavier than a Go alternative. https://learn.microsoft.com/en-us/dotnet/core/deploying/sing... I also exclusively host dotnet applications on Linux (and also develop them there), and it works just fine.

Oh I know, and I'll develop in .NET if I want to build something for Windows/Mac/Linux. (Similarly I've been hosting personal dotnet applications in Linux, although I've been building them on Windows/Mac. As someone who started back in .NET 2.0, it's amazing.)

But if I'm looking for a tool someone else built, .NET options are usually pretty slim.

Re: Thirteen Years of Go

#24

Quoted post unavailable.

I have a completely diferente experience coming to go. It is simple and straight forward language to learn. Goroutine alone is a great feature.

> limited language features

That is by design and I like that. I was a C# developer and seem how C# has evolved, I'm glad that go keeps it simple.

> Lack of docs, broken and confusing functionality

Docs for me are just fine, never had a problem. Could you give an exemple of "broken and confusing functionality"? I really like the cli ux and the its std lib, it is really complete from my point of view, so I'm curious to hear from someone with another point of view.

Re: Thirteen Years of Go

#25
Go is an awesome language and I'm very happy I chose it as the main language for my personal projects. However, I have implemented some quirky Lisp in Go to have some more dynamic experience, too, so now my applications are becoming hybrid.

Re: Thirteen Years of Go

#26
> Workspaces make it easy to work on multiple modules simultaneously, which is most helpful when you are maintaining a set of related modules with module dependencies between them.

It's a somewhat uneasy feeling to see how the "solution/projects" (in Visual Studio terms) hierarchy keeps getting reinvented in every. single. bloody. ecosystem, even in non-PL ones. Surely there must be a better way to organize things?

Re: Thirteen Years of Go

#28

Quoted post unavailable.

Go is the best documented ecosystem I've seen. Since godoc is so widespread, people write doc comments and examples all the time. Every single public project has a doc page at pkg.go.dev too.

The syntax rules and the reference spec of the language is very concise too.

Re: Thirteen Years of Go

#29

Quoted post unavailable.

I honestly have no idea why so many hate the language but I guess the Bjarne Stroustrup rule applies.

For me it's a language I always wanted to have: essentially C with a GC, small enough you can carry it in your head with most of the footguns removed.

I honestly also have no idea why Rust always makes an appearance in a Go thread, I can't think of two languages with such a diametrically opposite learning complexity.

Re: Thirteen Years of Go

#30

Quoted post unavailable.

I've been coding professionally in Go and have recently switched largely to Rust. I feel Go is designed for junior developers: it's easy to get started, like with Python, but comes at the cost of verbosity and lack of expressiveness. E.g., you'll have to live with "if err != nil" all over the place. It's good for orgs though because code written by different people looks the same and readable. Most importantly, it's garbage collected, which can be good or bad depending on where you're using it (good because you can be super cavalier with memory, but bad because of stop-the-world pauses).

Rust IMO is much more advanced and expressive. It's a joy to write, makes you think and feel like a developer rather than an assembler that you can feel with Go. IMO it handles most of the common problems with languages well and has probably the best support for Web Assembly if that's your goal. It's not garbage collected, which is critical for systems programming. It is more complex than Go though and takes longer to master. Also, while it's growing rapidly, Rust also has fewer job openings compared to Go, if you're doing this for getting a job.

Post reply on HN