Earlier quoted context omitted.
I love the error handling in Go. Every other language I've used led to the inevitable and useless "An error was encountered" message. Go is the first language where I can actually access the original socket permission error because it was actually passed up.
> Go is the first language where I can actually access the original socket permission error because it was actually passed up. Now try to trace them as easily as exceptions. Oh wait, you can't unless you wrap Go errors into some struct from a library that isn't in the std lib therefore everybody has different systems to trace errors /s i'll take exceptions over this (which go has, panic/defer). error is just a conven…
Why Go is my favorite programming language
191–200 of 256 posts
Re: Why Go is my favorite programming language
#192When Java was first introduced, the world was abuzz about this cool new language which you could "write once, run anywhere". It took some time, but as it grew in popularity, articles started appearing about how much Java sucked because it was slow and bloated, required a ton of boilerplate code, and eventually because "write once, run anywhere" turned out to be a myth, along with a boatload of other reasons. The hone…
> Go was next. People were excited about this cool new language from Google, a place filled with great engineers, and from the mind of Rob Pike, of Unix and Plan 9 fame. It was supposed to be like a simpler and more elegant form of C. What's not to like. Well, the replies to this post are showing that for some the honeymoon is already over. As someone who has paid attention to this since Go was released, there never…
Certainly from the very beginning, there'll be some subset of the relatively few people who've actually tried a new language who don't like it for some reason or another, or object on legitimate technical grounds (the border between these two types of objections is murky).
As the popularity of the language grows articles are written, starting in the specialized press and (if the language is lucky) ending up even in the popular press, getting even non-technical managers excited and using the newest buzzwords.
With time, the recognition and consciousness of the language's deficiencies become more widespread among a wider portion of the programming population, and articles and discussions of such complaints become more widespread.
In the end, such complaints may become mere truisms, and the majority of the population just parrot the truisms and stereotypes while having only a superficial or even non-existent familiarity with the language that's criticized.
Of course, you could say that such things were going on all along, but it would be missing the broad ebb and flow of language popularity and people's reactions to them.
Re: Why Go is my favorite programming language
#193Earlier quoted context omitted.
Sorry, I had thought that it was quite obvious: JS, PHP, and Go are almost exclusively used for web-related tasks. Yes, one can find other usage examples, but by and large, that's their main field of application. To expand on this, imagine building some complex application framework with these web-oriented languages. Without decent abstractions and insufficient typed programming support (see e.g. TypeScript to JS tra…
PHP does indeed have features that make it more suitable for writing server side page templates, and JavaScript has a unique position in client side web development. But I see very little in terms of features or problems they solve that distinguishes Java, JavaScript, Go, Scala and C# from each other when it comes to writing Web backends. It's essentially a cultural choice. So comparing them (and many others) is tota…
So in a way, we agree, as that was my whole point - Go & it's predecessors (ASP, PHP, JS, ...) are mostly only good for Web backends: E.g., literally all Go developers I know personally are either fresh out of college or ex PHP programmers, ASPers and JS hackers, and all work exclusively on web development stuff. (But my sample size is maybe a dozen companies, so that's possibly biased, I agree.)
Re: Why Go is my favorite programming language
#194Earlier quoted context omitted.
Regarding your last paragraph, it's a reflection of the state of the industry. The vast majority of "software engineers"/"full stack developers" can't be bothered to learn new skills or improve their existing ones, so any popular programming tool is stuck catering to the least common denominator. Do you carefully review your own code? Do you voluntarily learn any new skill beyond "blog post intro tutorial" level? Do…
> Do you carefully review your own code? Do you have any resources for getting better at this? I don't get a lot of chances for other people to review what I write (yeah believe me I know..) and am looking into better ways to make sure I don't release shit. I have a decent amount of testing automated for a majority of my projects but that's turning into an extra job on-top of my already demanding job.
Read every checkin twice before committing it. I find and fix many bugs by doing this.
Keep a log of errors and problematic APIs. Periodically review your code for methods and idioms that you tend to misuse. I find it easier to spot one incorrect call to an API when looking at all uses of it.
Enable all compiler warnings and use warnings as errors. It is easier to spot regressions when the build is normally silent. If a project has a noisy build then use the normal warning level and enable additional warnings over time.
Re: Why Go is my favorite programming language
#195Earlier quoted context omitted.
> Go was next. People were excited about this cool new language from Google, a place filled with great engineers, and from the mind of Rob Pike, of Unix and Plan 9 fame. It was supposed to be like a simpler and more elegant form of C. What's not to like. Well, the replies to this post are showing that for some the honeymoon is already over. As someone who has paid attention to this since Go was released, there never…
You could say the exact same thing about every computer language, but it would miss the forest for the trees. Certainly from the very beginning, there'll be some subset of the relatively few people who've actually tried a new language who don't like it for some reason or another, or object on legitimate technical grounds (the border between these two types of objections is murky). As the popularity of the language gr…
Re: Why Go is my favorite programming language
#196I know a guy who used to teach Haskell at a university who now runs a development shop at a startup that uses Go. From I recall his main reason for choosing it was to hire cheaper less experienced developers. I remember talking to him about Go and he remarked something like: If you want to clean modular code don’t use Go. Not to disparage less experienced developers but I think teams of developers of any experience l…
One thing I wonder about is a seeming complementary anti-pattern, the "Expert Only Language". Perhaps C++ is the only language that truly fits this description, but one can see shades of it in Haskell, Scala & Rust. To a limited degree, Bash and SQL exhibit similar qualities, because people can use them for years but barely know them.
These are languages where a certain confusing richness is accepted as the cost of doing business, and where a long period of familiarization is assumed to be necessary before doing basic things.
Re: Why Go is my favorite programming language
#197Earlier quoted context omitted.
You could say the exact same thing about every computer language, but it would miss the forest for the trees. Certainly from the very beginning, there'll be some subset of the relatively few people who've actually tried a new language who don't like it for some reason or another, or object on legitimate technical grounds (the border between these two types of objections is murky). As the popularity of the language gr…
Right. I understood that point. I'm saying that I think you're wrong. There has been no ebb and flow from where I'm standing. The criticisms against Go really haven't changed much, and neither have the people making them. On the flip side, Go has been becoming increasingly popular, and I see no signs of it slowing down.
Re: Why Go is my favorite programming language
#198Earlier quoted context omitted.
Go is an alternative for C (for services), PHP, and server-side JS. I don't understand why people keep comparing it to languages like C++, C#, D, Java, Rust, or Scala. The problems these two sets of languages solve are fundamentally different.
>The problems these two sets of languages solve are fundamentally different. I'm afraid I fail this intelligence test. What problems are solved by C, Go, PHP and server-side JS but not by any of Java, C++, C#, D, Rust or Scala (and vice versa)? This seems like a completely arbitrary classification to me.
Re: Why Go is my favorite programming language
#199Earlier quoted context omitted.
PHP does indeed have features that make it more suitable for writing server side page templates, and JavaScript has a unique position in client side web development. But I see very little in terms of features or problems they solve that distinguishes Java, JavaScript, Go, Scala and C# from each other when it comes to writing Web backends. It's essentially a cultural choice. So comparing them (and many others) is tota…
> I see very little in terms of features or problems they solve that distinguishes Java, JavaScript, Go, Scala and C# from each other when it comes to writing Web backends. So in a way, we agree, as that was my whole point - Go & it's predecessors (ASP, PHP, JS, ...) are mostly only good for Web backends: E.g., literally all Go developers I know personally are either fresh out of college or ex PHP programmers, ASPers…
All of these languages are direct competitors in a number of areas today (Web backends, infrastructure services, database systems) and based on language/runtime capabilities (as opposed to cultural and library availability) I see almost no area where there is no potential overlap in the future.
Also, what a language is currently used for and what it is good for are two completely different things. There was a time when Java was mostly used for Applets and desktop user interfaces. It wasn't good at either.
Re: Why Go is my favorite programming language
#200Earlier quoted context omitted.
>The problems these two sets of languages solve are fundamentally different. I'm afraid I fail this intelligence test. What problems are solved by C, Go, PHP and server-side JS but not by any of Java, C++, C#, D, Rust or Scala (and vice versa)? This seems like a completely arbitrary classification to me.
Here is an even better way of putting this; I believe Go hasn't been used for any of these areas: game engines; scientific simulations; military usages; planning, logistics and operations; space exploration; embedded systems and industrial software; robotics; etc. etc. etc. Go is great for one thing, mainly: highly concurrent problems with large 99th percentile latency permissions, which mostly means web development…
There are very few projects for which you couldn't use Go, JVM and .NET languages equally well purely on the basis of language and runtime features (ignoring hiring, library availability and other cultural aspects)