Live data from Hacker News

Ask HN: Go programming language is over ten years old. What do you think of it?

news.ycombinator.com

151–160 of 310 posts

Re: Ask HN: Go programming language is over ten years old. What do you think of it?

#151

I have no interest in Go because it is so limited, more limited than other languages that I have already moved beyond, such as C#. I am far more interested in cutting edge languages such as Rust (borrow checker) or Idris (dependent types) or even C++ 20 (template madness), since these will allow me to express things that I cannot express in other languages. What does Go bring to the table? Note that my perspective is…

> What does Go bring to the table?

junior devs

edit: it might sound like sarcasm, but i'm deadly serious.

Re: Ask HN: Go programming language is over ten years old. What do you think of it?

#153

I have no interest in Go because it is so limited, more limited than other languages that I have already moved beyond, such as C#. I am far more interested in cutting edge languages such as Rust (borrow checker) or Idris (dependent types) or even C++ 20 (template madness), since these will allow me to express things that I cannot express in other languages. What does Go bring to the table? Note that my perspective is…

> What does Go bring to the table?

A still maintainable code base 5 years along.

Re: Ask HN: Go programming language is over ten years old. What do you think of it?

#154
I'm impressed it took off. I remember looking at it when it was just a few years old and I was still kinda new to programming. At the time, it was just interesting because of novelty factors, and I kinda just wrote it off as a neat language that I should stop wasting my time with as it would never take of.

Re: Ask HN: Go programming language is over ten years old. What do you think of it?

#155
post #109
post #71

Earlier quoted context omitted.

Because web servers look simple from the outset but are, underneath it all, very complicated. And it's not a web server. If you want something basic, gunicorn can run flask with one line.

But I still need gunicorn, don't I? My point is that with Go, I just have to execute my single binary and I'm good to go. It doesn't prevent me from adding a reverse proxy and a loaf balancer if I want to, but I don't need gunicorn or other runners. Also if a single line is enough, maybe adding it clearly to the doc would be nice.

You don't. Some frameworks are stand alone. It just happens flask uses wsgi, and so you need gunicorn.

Re: Ask HN: Go programming language is over ten years old. What do you think of it?

#156
It depends on your project. I used Go since 2011 on multiple projects, two of them are http://github.com/chrislusf/seaweedfs and http://github.com/chrislusf/gleam. One is a distributed file system, the other is a distributed computation.

* Refactoring is powerful

==========

Nobody can design well upfront for a large project. Constant refactoring is need for large projects. Go is super good on this.

* Generics is not ready yet.

==========

The distributed computation project was re-written multiple times. I tried different approaches to address the generics problem. I even tried to make it work fairly well with LuaJIT, but still decide to change again due to the need to learn a different scripting language and losing the type checking.

Re: Ask HN: Go programming language is over ten years old. What do you think of it?

#157
post #22

My fingers are getting real tired from typing if err != nil all the damn time. I do like it for small things - compiling to one (albeit huge) binary and its relative speediness is nice. I wouldn't use it for large systems though. The amount of code really balloons over time, relative to, say, python and that SLOC correlates to bugs and maintenance cost.

When writing quick-and-dirty Go programs, I define a function called "bailif" (pun intended) that turns non-nil errors into panics. i.e. `func bailif() { if err != nil { panic(err) } }`. Each error can be "handled" at first by just `bailif(err)`.

Re: Ask HN: Go programming language is over ten years old. What do you think of it?

#159

Wow! 10 years already. I'm the founder of HashiCorp and I'd love to share my thoughts. Credentials: I started using Go around 9 years ago and since then I've built a company of over 1,000 employees with ~250 engineers that write Go full time. We maintain dozens of open source projects and libraries (Terraform, Vault, etc. etc.) all written in Go. We've shipped commercial products that are used by a significant percen…

I'm in strong agreement with this summary.

Although I don't write Go so much anymore, I had the benefit of working in Go for a few years on a team that developed a strongly shared style. A few years later, one of those team members sent me a package they had been working on, and it was an absolute breeze to understand in comparison to the Rust and TypeScript I had been working on. This is not to knock on Rust or TypeScript, as there are absolutely solutions that are better expressed in those languages, but if I'm honest, the vast majority of software is "plumbing" - get data, manipulate data, put data - and Go is an extremely pragmatic choice for this in my opinion.

A few other thoughts...

I really don't take issue with `if err != nil` and though I like Monadic types, I'll take errors as values over exceptions 100% of the time.

I've also written a lot of CLIs and Go's build process here is superb.

I think the Go community has a strong testing culture, and although I like BDD, the work put into the std test tooling has really helped form that.

Re: Ask HN: Go programming language is over ten years old. What do you think of it?

#160

After 9 years of ruby, I finally switched to Go as my professional language 3 years ago, after a couple years of side projects with it. My feelings after building for that long : safety and productivity. I initially thought it was because of moving to compiler and type checking, but then I learned C for my personal use (an other thing passing through Go allowed for me), and was surprised to realize my C compiler was…

Re. Go 2. The Go Team people have repeatedly said that they want to avoid the Python 3 situation, so even if there will be a real, compatibility breaking Go 2, it won't be anywhere near that level of incompatibility. They'll probably just fix a few nits like string(int).

Re. C. You really should use at least one static analyser when programming in C. Clang-tidy has been my go-to tool for that, and it's been working pretty good.

Post reply on HN