Live data from Hacker News

Why Go is my favorite programming language

michael.stapelberg.de

221–230 of 256 posts

Re: Why Go is my favorite programming language

#221
I wouldn't list the standard library as a great strength of Go. While some parts of it are quite good, some others are terrible. Notably, logging and argument parsing are pretty bad. Compare Go's "flags" and Python's "argparse" for example. And Go's "log" and Python's "logging". The Python versions are not perfect but are at least quite usable. In Go, I have yet to see a project with more than 1k lines of code that won't use a third-party argument parsing and logging package.

For logging, each package will use its own logging mechanism. Sometimes, you are lucky and you can pass your own logger (with a random interface as the interface is not part of the standard library either). Sometimes not.

For a language born less than 10 years ago, this is a pity.

Re: Why Go is my favorite programming language

#222
post #219

Earlier quoted context omitted.

What I disagree with first and foremost is your claim that Go is not an alternative for JVM/.NET languages and hence shouldn't be compared to them. 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…

For the sake of argument, let's assume Go were equal to Java and C# (nb, I think that is not true, but let's look at the issue from that perspective). Can Go replace C#? That's MS land and comes with the .Net platform. I think nobody will think Go is even remotely gathering its following from C# and the amount of tooling you get there is probably the largest set you can get. What about Java? That has 20 years of entr…

That is a long list of straw man arguments. You keep refuting claims I never made while ignoring my point.

I never claimed that Go is seeing any significant uptake in Java's or C#'s historical strongholds. I'm not talking about current usage at all. I also didn't say that Go is going to replace .NET or the JVM. I didn't even say that Go is better at anything.

None of what you keep going on about has even the slightest thing to do with the point I was making.

My point is very simple: Go, Java, Scala, C# and their most widely used implementations have similar enough technical capabilities to be useful for many of the same tasks. Therefore it is useful to compare them.

Re: Why Go is my favorite programming language

#223
post #220

Earlier quoted context omitted.

>First you claim that any language can be shoehorned into any usage I did not claim that at all. What I dispute is that the set of tasks for which both Go and Java/.NET are suitable is so small that it makes no sense to compare them. People often have a choice of using Go, Java, Scala, C#, etc, for the same task and that is why a comparison makes perfect sense.

As I've explained here extensively, I don't think that Go is replacing any of the more fancy languages like Scala, Clojure, D, ... And as for C++, that's in a different domain. Finally, Java & C# are entrenched and Go has no decisively better advantage that would make it worth giving up those code bases (like Java was over C++' resource management). I do agree that Go has made the life of legions of PHP and Node.JS d…

>However, claiming that Go "eats everybody's lunch" is rather outlandish.

I didn't say it was. I said comparing Go to Java or C# is useful because these languages are suitable for many of the same tasks.

What you are making of this pretty uncontroversial statement is mind boggling.

Re: Why Go is my favorite programming language

#224
post #219

Earlier quoted context omitted.

For the sake of argument, let's assume Go were equal to Java and C# (nb, I think that is not true, but let's look at the issue from that perspective). Can Go replace C#? That's MS land and comes with the .Net platform. I think nobody will think Go is even remotely gathering its following from C# and the amount of tooling you get there is probably the largest set you can get. What about Java? That has 20 years of entr…

That is a long list of straw man arguments. You keep refuting claims I never made while ignoring my point. I never claimed that Go is seeing any significant uptake in Java's or C#'s historical strongholds. I'm not talking about current usage at all. I also didn't say that Go is going to replace .NET or the JVM. I didn't even say that Go is better at anything. None of what you keep going on about has even the slightes…

As I said right off the bat, if that's your argument, where are things like: generics, error handling facilities, macros, reflections, annotations, etc. in Go that are provided by Java, Scala, C++, C#, and Clojure?

Re: Why Go is my favorite programming language

#225
post #220

Earlier quoted context omitted.

As I've explained here extensively, I don't think that Go is replacing any of the more fancy languages like Scala, Clojure, D, ... And as for C++, that's in a different domain. Finally, Java & C# are entrenched and Go has no decisively better advantage that would make it worth giving up those code bases (like Java was over C++' resource management). I do agree that Go has made the life of legions of PHP and Node.JS d…

>However, claiming that Go "eats everybody's lunch" is rather outlandish. I didn't say it was. I said comparing Go to Java or C# is useful because these languages are suitable for many of the same tasks. What you are making of this pretty uncontroversial statement is mind boggling.

Just as in the other thread, the only unfounded claim is that Go provides similar facilities as Java or C# at language level. Go was explicitly designed to avoid all that, after all. So comparing those three at language level only surfaces a long list of things you can do in Java, and an even longer one for C#, but not in Go.

Re: Why Go is my favorite programming language

#226
post #224

Earlier quoted context omitted.

That is a long list of straw man arguments. You keep refuting claims I never made while ignoring my point. I never claimed that Go is seeing any significant uptake in Java's or C#'s historical strongholds. I'm not talking about current usage at all. I also didn't say that Go is going to replace .NET or the JVM. I didn't even say that Go is better at anything. None of what you keep going on about has even the slightes…

As I said right off the bat, if that's your argument, where are things like: generics, error handling facilities, macros, reflections, annotations, etc. in Go that are provided by Java, Scala, C++, C#, and Clojure?

What you need for a useful comparison is two things that are substitutable for each other in a particular context but not identical.

Go vs Java meets these criteria. That's all I'm saying.

Re: Why Go is my favorite programming language

#227
post #225

Earlier quoted context omitted.

>However, claiming that Go "eats everybody's lunch" is rather outlandish. I didn't say it was. I said comparing Go to Java or C# is useful because these languages are suitable for many of the same tasks. What you are making of this pretty uncontroversial statement is mind boggling.

Just as in the other thread, the only unfounded claim is that Go provides similar facilities as Java or C# at language level. Go was explicitly designed to avoid all that, after all. So comparing those three at language level only surfaces a long list of things you can do in Java, and an even longer one for C#, but not in Go.

That makes absolutely no sense. Languages with very different features can be used for solving very similar problems and hence a comparison can be useful.

Re: Why Go is my favorite programming language

#228
post #224

Earlier quoted context omitted.

As I said right off the bat, if that's your argument, where are things like: generics, error handling facilities, macros, reflections, annotations, etc. in Go that are provided by Java, Scala, C++, C#, and Clojure?

What you need for a useful comparison is two things that are substitutable for each other in a particular context but not identical. Go vs Java meets these criteria. That's all I'm saying.

Which is why I said, we (mostly) agree: Go is great for web backend development, as I've never disputed in any reply, quite the contrary. My point was and is, that's all there is to "compare" - even if that area might be the biggest domain in IT right now.

Re: Why Go is my favorite programming language

#229
post #228

Earlier quoted context omitted.

What you need for a useful comparison is two things that are substitutable for each other in a particular context but not identical. Go vs Java meets these criteria. That's all I'm saying.

Which is why I said, we (mostly) agree: Go is great for web backend development, as I've never disputed in any reply, quite the contrary. My point was and is, that's all there is to "compare" - even if that area might be the biggest domain in IT right now.

Here's what you said:

>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.

Your claim was that there is no overlapping area of application and hence comparing the languages makes no sense. That is where we disagree if that is still your opinion.

Besides, I see abolutely no reason why Go couldn't be used for writing something like Cassandra, Kafka, Spark, Hadoop or a core banking system. None of these are specifically Web backends. Equally, I see very little reason why Docker or Kubernetes could not be written in Java or C#.

Re: Why Go is my favorite programming language

#230
post #228

Earlier quoted context omitted.

Which is why I said, we (mostly) agree: Go is great for web backend development, as I've never disputed in any reply, quite the contrary. My point was and is, that's all there is to "compare" - even if that area might be the biggest domain in IT right now.

Here's what you said: >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. Your claim was that there is no overlapping area of application and hence comparing the languages makes no sense. That is where we disagree if that is still your opinion. Besides, I see abolutely no reason why Go couldn't be used…

I think our semantical differences are mostly due that there I was referring to language level facilities, then, while even in that post I clearly underlined Go's utility for web development.

As to transactional processing, there's a reason why that's not using GC languages and why the banking and oil industry are one of the few mainframe clients left. Just because you can do X with Y, it doesn't mean it's economically or technically feasible.

Post reply on HN