News for hackers. Stuff that matters.
Re:Learning Go as a Python Developer: The Good and the Bad by returningfory2 on Monday July 18, 2022 @04:01PM (#32142916)
> I had heard of Go for many years, but never stuck with it; it gets constant negative press on Hacker News/Reddit

I think on Hacker News it's really fashionable to criticize Go, and this has led to a culture where Go gets significantly more negativity than it deserves.

As technologists, one of our most important jobs is to see through such fashions and judge languages/tools/technologies based on their actual merit.

While gauging sentiment about things on a forum like Hacker News is generally really helpful, it should not be the main basis of our decisions.

Re:Learning Go as a Python Developer: The Good and the Bad by notduncansmith on Monday July 18, 2022 @04:13PM (#32143055)
“There are only two kinds of languages: the ones people complain about and the ones nobody uses.”

- Bjarne Stroustrup

Re:Learning Go as a Python Developer: The Good and the Bad by tialaramex on Monday July 18, 2022 @09:00PM (#32146153)
I own a T-shirt which says "Haters gonna make some good points". People do indeed only complain about the things which are used and not the things they don't care about because nobody uses them. But, we should not think this means the complaints just signify success.

People are complaining because they care, but also because it's not good, or it's not as good as it should be.

Re:Learning Go as a Python Developer: The Good and the Bad by tempest_ on Monday July 18, 2022 @04:04PM (#32142956)
Go is getting used in places where Java would have been used in the past.

Java complaints go down, Go complaints go up.

Re:Learning Go as a Python Developer: The Good and the Bad by Xeoncross on Monday July 18, 2022 @04:16PM (#32143078)
If Go hadn't come along, I would be using and complaining about C# or Java for sure.
Re:Learning Go as a Python Developer: The Good and the Bad by 37ef_ced3 on Monday July 18, 2022 @04:28PM (#32143235)
As an engineer who uses Go and appreciates it as a replacement for most purposes where you might use C or C++, the complaints just seem bizarre.

You've got people who argue against explicit error checking and people who don't understand the important role of nil pointers and people who don't see the massive net win of garbage collection in concurrent programs, and so on.

Endlessly.

It feels like a waste of time defending the language when the people criticizing it seem to hold such a vastly different point of view. It's like trying to convince people that Natural Born Killers is a good movie or that Primus makes good music. There's an unbridgeable chasm between you and the people you're trying to convince.

Re:Learning Go as a Python Developer: The Good and the Bad by devonkim on Monday July 18, 2022 @06:19PM (#32144779)
I think there’s a lot of disagreements about what people think is desirable in a language in the first place and then start complaining without understanding the design concepts that shaped its creation nor even agree the problems are even problems to begin with. Many even seem to think that bad ergonomics are to be accepted and want to create a higher barrier for programming productivity (there are some merits to this attitude honestly but that’s not the point I’m interested in).

I think it’s more akin to trying to talk to people about Quentin Tarantino movies. Lots of people enjoy them, many critics like his stuff, and then there’s a relatively small group of people that disparage everything he does because he isn’t ascribed to any artistic school of filmmaking and under a lot of such critical analysis his films are pop fodder. It’s not like he ever makes his movies to please critics is the thing, he’s basically a super fan that just winged it all. Many fairly sane and measured, learned critics “get” Tarantino and appreciate him for what he tries to do and all is fine there. But it won’t matter what Tarantino does going forward with the other crowd - it’s because they have diametrically opposed ideas of wtf movies even are supposed to be.

Re:Learning Go as a Python Developer: The Good and the Bad by adra on Monday July 18, 2022 @04:44PM (#32143417)
Languages generally aren't stuck in time. If we actually want languages to evolve and in ways that are actually valuable to real people (not a small subset of those developers writing it), then these pieces should be an invaluable resource to help steer the language in the direction that will most reward adoption, longevity, etc.
Re:Learning Go as a Python Developer: The Good and the Bad by obviouslynotme on Monday July 18, 2022 @04:44PM (#32143415)
Go has always been a Java, C#, Python, and Ruby killer. It has not and never will be a C or C++ killer. C is the language of libraries and embedded, neither of which Go is good for. C++ is the language of large systems that need extreme control over resource allocation. Go is not good for this either.
Re:Learning Go as a Python Developer: The Good and the Bad by ledauphin on Monday July 18, 2022 @05:10PM (#32143770)
I agree with you that Go does not replace C or C++, but I strongly disagree that Go is an obvious replacement for most uses of Python, C#, Java or Ruby, all of which are, frankly, _much_ higher level languages than Go.

Go gets used for two main reasons that I've been able to observe:

1) a desire for a very specific type of concurrency 2) a desire for a fast compiled language with a minimalistic feature set that scales well to large teams.

Switching to Go from one of those languages is very much giving up a kitchen sink for a purpose-built tool. It may be the right decision under lots of different circumstances, but it doesn't directly compete with any of the languages you've mentioned because of how minimalistic it tries to be.

Overall, in fact, I think Go does something far more interesting: it's legitimately an attempt to carve out a whole separate niche for software development. Whether it's ultimately been successful there is for a different comment thread, though. :)

Re:Learning Go as a Python Developer: The Good and the Bad by obviouslynotme on Monday July 18, 2022 @05:35PM (#32144173)
Go has always been a high level language, and is even more so now with generics. I would even argue that Go, correctly done, is halfway between the Java tier and the Lisp tier. Due to Go's quick and easy parsability, generation, and compilation. It is very easy to write tools for Go. Code generation and struct tags are even part of the standard, but very people use them beyond the basic serialization libraries. It's not quite lisp, but it is very close in many ways.

Very few people rewrite projects. Most change happens by new projects adopting one language over another. The fact that I hear of Python rewrites to Go is honestly amazing.

Re:Learning Go as a Python Developer: The Good and the Bad by tptacek on Monday July 18, 2022 @06:10PM (#32144658)
It is too easy for people to forget that C was not always the language of "libraries and embedded", and that writing large systems programs in C, of the sort that nobody would realistically consider writing that way in 2022, was a norm. Displacing C doesn't just mean rewriting existing C dependencies, but also changing the balance of decisions about which new programs to write in C. Go has had a tremendous amount of impact there. Without Go, Docker would almost certainly be a large ball of C code.
Re:Learning Go as a Python Developer: The Good and the Bad by wizofaus on Monday July 18, 2022 @05:00PM (#32143634)
Is Go really killing C# though? I've rewritten Go components in C# (the initial version only had basic functionality requirements, but as they expanded, Go made less and less sense given the rest of our codebase), but can't readily imagine wanting to rewrite C# in Go. Maybe once they add proper exceptions...
Re:Learning Go as a Python Developer: The Good and the Bad by vsnf on Monday July 18, 2022 @06:46PM (#32145071)
My current project was switched from C# to Go almost 2 years ago. It was a management decision, and while the team all generally has found something or another to like about Go, we all miss C#.
Re:Learning Go as a Python Developer: The Good and the Bad by obviouslynotme on Monday July 18, 2022 @05:37PM (#32144191)
No. C# is usually used by Microsoft shops, and half the reason to use C# is so you can use Visual Studio.
Re:Learning Go as a Python Developer: The Good and the Bad by wizofaus on Monday July 18, 2022 @06:18PM (#32144766)
That implies that if a better alternative to VS came along, C# developers wouldn't choose it! I certainly would, for one, and I'm a long-term VS user, well aware of its failings (but also yet to come across another IDE that's noticeably superior. And coding with a text editor and command line compiler is something I spent 10+ years doing when it was all that was available, and nothing I have any great hankering to go back to - even if it's something I still resort to as an emergency measure, e.g. when on some remote system with text-only access etc.)
Re:Learning Go as a Python Developer: The Good and the Bad by obviouslynotme on Monday July 18, 2022 @07:49PM (#32145650)
The only IDE better than Visual Studio is probably one of the Smalltalk IDEs, but the languages are too niche these days. It's a shame none of the large companies wants to back them.
Re:Learning Go as a Python Developer: The Good and the Bad by LtWorf on Monday July 18, 2022 @04:44PM (#32143409)
But C++ had generics ages ago already… You never used those?
Re:Learning Go as a Python Developer: The Good and the Bad by bogeholm on Monday July 18, 2022 @04:49PM (#32143482)
> Natural Born Killers … Primus …

We should have a beer sometime!

Re:Learning Go as a Python Developer: The Good and the Bad by frazbin on Monday July 18, 2022 @04:40PM (#32143364)
> people who.. don't understand the important role of nil pointers

... I guess you're right; I really do not understand

Re:Learning Go as a Python Developer: The Good and the Bad by erik_seaberg on Monday July 18, 2022 @04:07PM (#32142979)
Some of the HN audience had already been reading PG’s essays for years, and our expectations of new languages were shaped by http://www.paulgraham.com/avg.html.
Re:Learning Go as a Python Developer: The Good and the Bad by zozbot234 on Monday July 18, 2022 @04:18PM (#32143102)
Go is a vastly preferable language to Python or Ruby for most things. The "negative press" is quite overstated, it does get plenty of favorable advocacy as well.
Re:Learning Go as a Python Developer: The Good and the Bad by metadat on Monday July 18, 2022 @04:21PM (#32143145)
Use an appropriate tool for the job, Python is useful for tons of things that would be a nightmare to pull off in golang, and vice versa.
Re:Learning Go as a Python Developer: The Good and the Bad by suremarc on Monday July 18, 2022 @06:24PM (#32144828)
Indeed, try doing any sort of data analysis in Go, it's maddeningly verbose.
Re:Learning Go as a Python Developer: The Good and the Bad by goodpoint on Tuesday July 19, 2022 @07:38AM (#32150141)
The very opposite. Go and Rust are constantly on HN and get tons of praise. They are both overhyped here.