6 ms·
Go is the worst programming language out there, aside from any other language I've tried so far. Seriously though, besides being just a good solid balance betw
by dvirsky 7y ago
Go is the worst programming language out there, aside from any other language I've tried so far.
Seriously though, besides being just a good solid balance between speed, ease, safety, etc without anything really exciting - there are a few cool things about Go that make you write cleaner programs: The biggest one for me (well, maybe after the concurrency model) was the whole implicit interface thing, alongside interface composition and avoiding Java-style class hierarchy. It just forces you to think in interfaces and avoid complex hierarchies. This leads to much cleaner elegant code-bases.
- guessmyname 7y agoEdit: @CharlesW made me realize that @dvirsky is not bashing on the language, the comment below is a reaction to their choice of words, specifically to the first sentence. That being said, I will keep my comment as is for context. I would have chosen the word “boring” rather than “worst” to describe Go, but I am not a native English speaker so maybe “worst” is okay. --- > Go is the worst programming language out there, aside from any other language I've tried so far. Ha! Opinions, it’s always interesting to hear what other people thing about stuff I use every day. I, on the other hand, enjoy programming with Go. It has opened a lot of doors in my career and I can even attribute my success to its existence. Roughly five years ago I was struggling to justify a higher salary in my home country; soon after I started using Go and promoting my projects people started sending invitations to interview for jobs in different companies. I took a chance and quit my job, traveled to the US, a few European countries and Asia, looking for a good company to build my next ±5 years of experience, and finally settled in one of the majors cities in Canada with a company that pays me considerably well to write programs in a language that you consider the worst out there. But you know what? I understand your feelings, because I also have a programming language in mind that I consider the worst out there, but you will never find me throwing dirt at it or its community because I know there are people out there who enjoy working with it the same way I enjoy working with Go.
- CharlesW 7y agoBTW, the parent commenter is saying that Go is their favorite programming language. They're using a form similar to "democracy is the worst form of Government except for all those other forms that have been tried from time to time", which was quoted by Churchill.
- keymone 7y ago> It has opened a lot of doors in my career that's what happens when almost trillion dollar company puts enough resources into marketing of it's language and projects and yet this almost trillion dollar company in almost 2020 doesn't bother (or can't figure out how) to implement basic generics support so you can't even implement a fucking set. fuck google and fuck golang. specifically because how ubiquitous it has become. this is all super depressing.
- kjeetgill 7y agoIt's funny you mention that since, although go is getting respectable use, I haven't seen that many shops in go. But I'm a Java guy and every other company is a Java shop in the bay at least. That's what I called ubiquitous. What language would you want to work in?
- keymone 7y agoI’m doing mostly infra work and have been for some years, with advent of kubernetes it’s really hard to avoid golang. My personal preference (which is clojure) doesn’t matter much, I’m just really angry and frustrated how industry has settled on something so broken. Pick any non-trivial golang file and it’s 50% boilerplate, 45% passing errors around and about 5% substance. How did we end up with that in 2020? Ten and something years from now lambda calculus will be hundred years old.
- kjeetgill 7y agoWhy do you think it's found the audience it has? I can only speculate, coming from Java, that maybe there is some amount of comfort in boiler plate. Less defaults and less magic can be nice. I like being forced to hardcode the defaults into the program and the like.
- keymone 7y agonot sure this counts as flamewar, so i'm risking some sanctions, but still.. languages can be concise and code can be about the problem without any magic. looking at code for the sake of satisfying language limitations means not looking at the code for solving your problem. it may be comforting to look at boilerplate because you're familiar with it, but it's taxing away your ability to grasp the substance. visual locality matters because that's how our brain works and there can't be visual locality with boilerplate. furthermore everything that's visually remote has to fit in our very limited capacity to mentally juggle concepts, that's why locality and generality (fewer concepts to juggle) is important. golang lacks both generality and conciseness. i have no idea why it's found the audience it has beyond my initial angry comment and maybe also because it's "new".
- dvirsky 7y agoPerhaps the first half of my first sentence made you so furious you didn't notice the second half :) Anyway, I really love Go, but I haven't written any in a long long time, which is a bit ironic since the cutoff point was when I joined Google.
- pjmlp 7y agoI thought it would be another Turbo Pascal/Delphi with automatic memory management, instead it turned out to be just a little better than Oberon 2 + Limbo, brought back from ca 1992. Still, better than increasing the LOC of C code available out there
- defertoreptar 7y agoAfter using Go and being forced to "think in composition," I loathe having to use inheritance when working in other languages. There's something about writing Go that feels crisp. When I'm having trouble making it do what I want, I almost almost realize that it was because I was doing something stupid and there was a simpler way.
- dvirsky 7y agoYes, exactly. But the cool thing is that it's improved me when I'm writing in other languages. The first big project I did after writing tons of Go was in C, and man was it a delight to write Go-style C. True, it wasn't nearly as elegant in syntax, and memory management was X1000 more difficult, but thinking in interfaces made everything much nicer.