Live data from Hacker News

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

news.ycombinator.com

221–230 of 310 posts

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

#221
post #218
post #216

Earlier quoted context omitted.

Go's designers have very different goals from others. They did not set out to design a language they would, themselves, like to program in. They meant to make a language that very distracted programmers would still be able to get things done using, and other distracted programmers could read and maintain. Java also was not a language its designers wanted to use. They would rather code Lisp.

Still no excuse no to learn from the mistakes of others, Go has already so much "we don't do that here,...., ok we really should support that" that will eventually be just yet another Java, but hey it has cool designers.

If Go survives, it will end up as complicated as other languages. Rust, too, if it survives.

You have to be arrogant to design a language and expect it to go anywhere, so you also tend to think you know better than everybody else, and that nobody has anything to teach you. It's an occupational hazard. Designing a language you don't mean to use yourself manufactures special failings.

Rust's designers started with unusual humility, and have kept it. It saved them from many mistakes.

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

#222
post #194

Earlier quoted context omitted.

Your first negative is a matter of perspective, so depending upon your coding preferences you may be right. For me personally, even with nearly 2 decades of C# (exceptions are used extensively) I prefer the Go way. Checking results values is not dumb, it's just not the way that suits you. And that's fine. Variety of preference is one of the reasons we have so many programming languages to choose from. As for modules,…

For me personally, with also nearly 2 decades of C# and C++, exceptions is the best possible way to handle errors there is, especially for large projects. I have worked on projects which were built on exceptions, and on projects which were built on return codes. Exceptions is hands down the cleanest. Instead of becoming a mess of call/error handle blocks, you code can clearly separate business logic and error handlin…

And for me having worked in both, errors as return values have been hands down better. The complexity added by an entirely different flow control has resulted in far more bugs for me to track down than anything else.

Similarly, it's for good reason that there's a whole other class of languages using things like the Result monad over throwing up all over everything.

That's not to say that there isn't better code written in exception based languages, but that your view is pretty myopic. The ergonomics are different in each approach, with different tradeoffs.

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

#223
post #166

I learned JavaScript in 1999, PHP in 2003, Ruby in 2009, Python in 2015, and Golang in 2018. Modern PHP (despite its historical reputation) and Python are pretty much a toss-up to me (both have warts, both are a blend of functions and objects, and both can be written very well or very poorly). Ruby and JavaScript are more elegant (I like how everything is an object), but Ruby has historically been very slow and JS de…

When you know the shape, you can just use https://mholt.github.io/json-to-go/

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

#224
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)`.

This works best in main(), while library functions can just return errors upwards to it.

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

#225
I value the readability of go code. Compared to other languages it's fairly easy to understand what's going on. If used for it's purpose it's really efficient and powerful. Also, the community is pretty helpful and still enthusiastic after a decade.

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

#226
post #216
post #209

Earlier quoted context omitted.

Yes, what Go failed to acknowledge was how those decisions impacted Java and Visual Basic language evolution and actually learn from them.

Go's designers have very different goals from others. They did not set out to design a language they would, themselves, like to program in. They meant to make a language that very distracted programmers would still be able to get things done using, and other distracted programmers could read and maintain. Java also was not a language its designers wanted to use. They would rather code Lisp.

>Go's designers have very different goals from others. They did not set out to design a language they would, themselves, like to program in. They meant to make a language that very distracted programmers would still be able to get things done using, and other distracted programmers could read and maintain.

They never said that. They said they wanted a language for programming at Google scale. But their preferences and likes are all in the language...

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

#227
post #196

Its a great programming language that is helpful to solve problems without wasting time. I really appreciate the simplicity, I think it totally makes sense at work where not everyone wants to deal with weird code. I think maintaining old golang code will not be a major problem in the future for example. The garbage collector make things a lot simpler too. The dependencies management is not great compared to npm/crate…

Go is carefully designed to be adequate for the large majority of problems that don't need much, meant for use by the large majority of programmers who don't know or need much, whose attention is elsewhere. It is hard to get too deep into the weeds by accident. It builds fast, so programmers who code by successive approximation, making more or less random changes until something works can get there quickly. It runs p…

Go has found a space in networking.

What Java and Python offer is a single language with networking (sockets), familiar and/or easy syntax, portability, and GUI capability.

Visual Basic was not in the same league (failed portability), but it too had these features.

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

#228

I find myself reaching for it over other languages when I want to build small servers with a bit of in-memory state or a bit of heavy processing. For little search-engines, Go is perfect. While writing servers in Flask + Python is much more convenient, I still prefer Go because I don't run into the limits that Python has. The development process is fluid enough that I wish the language was suited to more usecases. Wh…

Which python limits do you run into, for which you prefer Go?

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

#229

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…

I'm not sure taking C as your other example of a type safe language will make the concept look that good.

Try learning Kotlin. I think you'll find it a significant upgrade in safety and productivity compared to Go, but especially compared to C.

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

#230
post #216

Earlier quoted context omitted.

Go's designers have very different goals from others. They did not set out to design a language they would, themselves, like to program in. They meant to make a language that very distracted programmers would still be able to get things done using, and other distracted programmers could read and maintain. Java also was not a language its designers wanted to use. They would rather code Lisp.

> Go's designers have very different goals from others. They did not set out to design a language they would, themselves, like to program in. They meant to make a language that very distracted programmers would still be able to get things done using, and other distracted programmers could read and maintain. They never said that. They said they wanted a language for programming at Google scale. But their preferences a…

Actually they said something else,

"The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike 1"

"It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical. – Rob Pike 2"

Source:

http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Fro...

https://talks.golang.org/2012/splash.article

According to them, Java (a language that was designed with the same cog ideas as Go) is already worthy of PhD level.

Ironic, when they needed the help of well renowned PhD researchers that were part of Project Pizza, for finally adding generics.

Post reply on HN