Live data from Hacker News

Half a decade with Go

blog.golang.org

251–257 of 257 posts

Re: Half a decade with Go

#251
post #180

Earlier quoted context omitted.

I was thinking most obviously of generics. The go standard library is full of generic collections, but you're not allowed to use generics in your own code.

It looks like free pascal has generics: http://www.freepascal.org/docs-html/ref/refch8.html#refse46.... But to your larger point, doesn't any non-programmable programming language exhibit the same weakness to some extent?

Any language will have some "magic" things that are special-cased in the compiler - things like the basic integer datatypes, or the threading primitives - and probably a few more things that are implemented as C code (though if you're lucky this can be done in a "standard" way, through the language's FFI). But most of the standard library should be implemented in the language itself (look at e.g. the Java standard library, or the Python standard library. In a more coherent language like TCL, even language constructs may be written this way - e.g. "for" or "if" can be just ordinary methods. At the other extreme, PHP has the infamous T_PAAMAYIM_NEKUDOTAYIM, because a simple-seeming piece of syntax had to be special-cased in the parser). If the standard library authors kept feeling the need to step outside the language itself, that's a bad sign - it suggests the language is poorly suited to writing libraries in. But you're right that it's a question of degree rather than a binary thing.

Re: Half a decade with Go

#252
post #247

Earlier quoted context omitted.

What about whitespace? Do you think choosing it or brainfuck has an impact on success?

Not relevant. I'm sure there are bad choices, but the difference between Go and Haskell is probably negligible or in Go's favor.

As someone with experience in both languages I disagree. Try parsing json in both languages and you'll see a difference. Composing functions that use channels simply isn't possible in Go (please prove me wrong).

Go gives you kind of safe concurrency, Haskell gives you actual safe concurrency.

Re: Half a decade with Go

#253
post #249
post #247

Earlier quoted context omitted.

Not relevant. I'm sure there are bad choices, but the difference between Go and Haskell is probably negligible or in Go's favor.

So you think Go is a better language because companies that use Go are more likely to be successful because... Go is a better language? That's just circular reasoning. Do you have any numbers or experience here? (In my limited experience I've seen a 100% success rate for companies that use Haskell and a 0% success rate for companies that use Go, though as you can imagine I don't have a statistically valid sample size…

Right, there is no good data at all suggesting that languages like Haskell are better for teams. Yet we are constantly served peoples overly confident opinions that they are.

Re: Half a decade with Go

#254
post #250
post #27

Earlier quoted context omitted.

I feel like you haven't met a lot of Go programmers in that case. The programmers I have met who use Go or are interested in it are often genuinely good programmers. Of course there are "crowd" followers in any language as popular in Go but Go is not a "Blub" language nor does it attract Blub programmers. Do I as a Go programmer sometimes wish that Go had feature X. Of course I do! I want that feature when I want tha…

Actually, to be a little more constructive about this: I'd be really interested to hear from anyone who's used Go after doing a serious project in any of Haskell, Scala, F# or OCaml. All the Go advocacy I read seems to ignore that this language segment exists, and all the Go programmers I speak to seem to take a very "blub" position on features like pattern matching, ADTs, and the various things I'd summarize as "goo…

I use Scala at work. I would rather write in Go than in Scala. While there are many things to like in Scala there are also many misfeatures such as the `implicit` key word which can create a lot of spooky action at a distance. Scala is an engineering tour de force and has many interesting ideas. However, I find that it has too many features and has a syntax with encourages obscure code. In contrast Go may be verbose at times but it is always very easy for me to read and follow.

I recently needed to dive into a legacy Scala code base which had not been worked on in a year. The engineer who had written it had moved on from the company and no one knew how it worked. The code was extremely difficult to read and reason about. Some of this was do to the programmer who wrote it but some of it was also do to language features. Is it possible write clear and concise Scala? Absolutely! But, the language does not necessarily encourage that style at this time.

Other functional languages I have used include: Scheme and SML. I want to check out OCaml next. I have also played around a bit with F* (not F#).

Re: Half a decade with Go

#255
post #253
post #249

Earlier quoted context omitted.

So you think Go is a better language because companies that use Go are more likely to be successful because... Go is a better language? That's just circular reasoning. Do you have any numbers or experience here? (In my limited experience I've seen a 100% success rate for companies that use Haskell and a 0% success rate for companies that use Go, though as you can imagine I don't have a statistically valid sample size…

Right, there is no good data at all suggesting that languages like Haskell are better for teams. Yet we are constantly served peoples overly confident opinions that they are.

We are? Links please.

Re: Half a decade with Go

#256
post #61
post #53

Earlier quoted context omitted.

I dont know much about go, but I always thought that the problem with 'the standard library does everything' is that it starts to feel heavy and better alternatives pop up. Then you have these dark places in the library that most people avoid, and you cant really throw away. Clojure used to have something called, clojure contrib and it was kind of awsome, it did pretty much everything in just one jar. It was also a h…

I started using Clojure just after 1.3 came out so I could be wrong, but my impression was that while contrib was all in one place, it was still maintained by a bunch of random people who got their code into contrib, rather than being treated as a core part of the language the way (I believe) Golang's is.

Yes it was, like I said it is better now. However it was also kind of nice because everything was just there. Even with good mantainers, some of the same problems could keep existing.

Re: Half a decade with Go

#257

OK, I'll admit it. I've spent six months with Go. I keep waiting for the moment when I understand it, maybe even develop some enthusiasm for it, and reach Pike-enlightenment. And I pretty much hate the language. I feel like I'm writing in something that combines the worst weaknesses of Pascal and Java. In fact, Mark Dominus' comments about Java ( http://blog.plover.com/prog/Java.html ) approximate my experience Go fa…

Tooling, simplicity (eg. lack of features), composition, channels.
Post reply on HN