Hacker News new | ask | show | jobs
by Peaker 4728 days ago
On the dynamic..static axis, Go is much closer to the dynamic side than to Haskell's side.

I am not a teacher or researcher, I am a practicing programmer writing code that is used by critical systems as well as ambitious projects that will (hopefully) be used by many real people.

A red black tree is just an example with invariants that everyone is likely to know, so it's a nice way to illustrate the point about the power of types. Known problems are solved problems, and unsolved problems are unknown problems -- so either my invariants' example will not speak to you because you don't know it, or you will reject it because you can just re-use a library.

3 comments

This seems like a decent, helpful comment to me. Don't know why it received two vitriolic replies.
Because it's completely factually wrong. Go is not AT ALL dynamically typed.
Go is more dynamically typed than Haskell. That is, it leaves nullability to runtime. It leaves parameteric polymorphism to runtime.

Whenever there's a static type that Go cannot express (and there are plenty of those!) it is effectively dynamically typed about that property.

Right, Go doesn't have sum types for example. (Or at least, it didn't. Does it now?)
Ok, look, I understand that you spent a lot of time learning Haskell, and desperately want that time to not have been in vain. You have to back off the preaching though. The conversation you joined wasn't about Haskell. You barged in and made it about Haskell. On the way, to justify your comments, you have put forth some pretty ridiculous claims. Go being dynamically typed, Haskell being 30-50% quicker to develop in, glossing over the valid points about it being more difficult to learn, etc...

We get it. You don't like Go. Some of us do, and would rather have a productive discussion about how to take advantage of it's features and avoid the traps rather than get into a pointless debate about a language that we are highly unlikely to ever use. (after this discussion, I certainly never will)

You are giving the Haskell community a bad image with this kind of behavior, and I kindly request that you not reply to any more of my comments with anything to do with Haskell.

I don't need to "want that time not to have been in vain", I am already developing with Haskell and reaching extremely high productivity levels. What I want is for people to spend less time improving the eco systems of poorly designed languages that repeat past mistakes.

Go is more dynamically typed than Haskell. It isn't a 0/1 thing. Parameteric polymorphism is dynamically typed in Go. Nullability is dynamically typed in Go. These are huge parts of the languages.

Instead of engaging in a discussion, you're repeating mistakes in a condescending tone.

Your last part of the comment is only appropriately responded by "You are giving the Go community a bad image by pounding me with ignorance with every reply, I kindly request that you study the matter before replying further".

Ok, you've finally gone and proven that you know basically f-all about go and are just out to thump the Haskell Bible.