Live data from Hacker News

The March Towards Go

zef.me

121–130 of 217 posts

Re: The March Towards Go

#121

Earlier quoted context omitted.

There are minor details wrong with JavaScript. Normally you don't encounter them in daily use. Apart from that JavaScript is brilliant. Few other languages can match it's simplicity. Python falls through because it doesn't have real lambda.

Python is also slow.

No, pretty fast. Having used it for 10 years. Never had problems with its speed.

Re: The March Towards Go

#122
post #6
post #3

I don't understand why people like go. It seems to be missing a lot of features and be pretty ugly and painful. I guess compared to javascript I can see the advantages though

Go could be improved in many ways. It lacks facilities that what we consider modern programming languages have, e.g. object-oriented programming, generics. The existing Goland solution to the generics problem is to have an almost duck typing approach of doing everything via interface{}. These are the cons. The pros are of such value that they more than compensate for the cons: first class facilities for building conc…

> The existing Goland solution to the generics problem is to have an almost duck typing approach of doing everything via interface{}.

I see this repeated again and again. It's wrong.

The "solution" to the generics problem is to not try to do anything that is generic, but do it specific: re-write that sort every time you need it for a new type.

People who have some experience in Go seem to tell that when you go this path you actually realize that you won't write them hundreds of time as was feared; it's completely manageable. Plus, you have your "sort" re-implementation right next to the struct definition, so you know it is sortable.

Re: The March Towards Go

#123

Earlier quoted context omitted.

There are minor details wrong with JavaScript. Normally you don't encounter them in daily use. Apart from that JavaScript is brilliant. Few other languages can match it's simplicity. Python falls through because it doesn't have real lambda.

> There are minor details wrong with JavaScript. Normally you don't encounter them in daily use. If you really believe that, I can only assume that you either don't have very much experience with Javascript and haven't yet been burned (or haven't yet discovered that you've already been burned), or that you don't have any experience outside of Javascript and therefore are not aware that languages exist that have all t…

> Yes, there are languages that are worse than Javascript to work in (I'm looking at you Java and PHP)

Java has an enormous ecosystem, is fast, is stable, has static typing, has more tooling than anything else, is easier to learn, does not have all the gotchas that Javascript has. I don't consider Java a worse language at all.

I use Java since a decade, and frankly I don't understand that rage against it while it is a totally valid option to start a project with, even a startup. If you want to get RESTful and all there's everything you need, etc.

Take it from a guy doing some Golang since more than one year and enjoying it a lot, also well versed in Python, Javascript, and even OCaml.

In fact, the time it took me to write this comment, I decided that I don't care anymore. Use what you need for the job and be prepared to change when something new is out and have a real impact on what you do.

Re: The March Towards Go

#124
post #12

Earlier quoted context omitted.

Incidentally, your link includes a great example of Go's error handling - which is inevitably what actually happens in languages without exceptions: errors are silenced and the program marches on, each step making less sense than the previous. It's a good talking point that you can always check error values - but it never really happens, in part because library designers try to avoid putting the burden on themselves…

I could get behind the Go compiler to forcing people to write "_ = errReturningFunc()" instead of simply "errReturningFunc()" if they want to explicitly ignore errors. In my recent experience, it actually bothers me a lot that funcs in the standard library would often rather return nil or the zero-value of a type than change the signature of the func to return (T, err). I don't really care that the docs describe that…

Returning (T, err) means that the function cannot be used as part of a larger expression. That's the main issue with this idiom in my view.

Re: The March Towards Go

#125

Zef writes this as if it's completely amazing that people are leaving Node for Go. Node is based on JavaScript. There are arguably more things wrong with JavaScript than with any other popular programming language, as evidenced by book titles like "JavaScript, the good parts". This is common knowledge; we're all trying to do good work despite JavaScript, seldom because of it. So Node: it's fast, we can share code wit…

What part of the article did you read as "Go is a silver bullet? I read it as a list of articles about people/companies who are switching to Go with each giving their reasons for adoption.

Also presumably people who are not switching to Go are not writing blog posts.

"We are still staying with Python"

"Clojure still works great"

"Erlang backend still runs after 10 years"

"Node.js router still runs ok"

Those don't make compelling HN front page article. So if you read HN the impression is everyone and their grandmother is switching to

Re: The March Towards Go

#126

Earlier quoted context omitted.

There are minor details wrong with JavaScript. Normally you don't encounter them in daily use. Apart from that JavaScript is brilliant. Few other languages can match it's simplicity. Python falls through because it doesn't have real lambda.

> There are minor details wrong with JavaScript. Normally you don't encounter them in daily use. If you really believe that, I can only assume that you either don't have very much experience with Javascript and haven't yet been burned (or haven't yet discovered that you've already been burned), or that you don't have any experience outside of Javascript and therefore are not aware that languages exist that have all t…

I've been working with JS professionally for the last 3 years...priorto that, spent many years with C++/SQL/etc...the statements that people get "burned" by JS (pesumably because of the weird coercion or floating-point comparisons?) I've never understood...maybe I just write my code in a weird way that insulates me from those things...I've never experienced more than a "minor surprise" in dev - certainly never been "burned".

Re: The March Towards Go

#128
post #14

I've often heard that Go founder were surprised that Go seemed to replace python more than C++ or C which were the initial targets. By judging from the given examples it seems that it isn't the case : people seem to come to Go when they start looking for performance. Instead of writing C modules and using them from python, they just switch everything to Go. I'd be curious to know how many start ups prototype their fi…

Python is still going strong. I use Python as well and still haven't found anything as good for getting started and running quickly without having some crazy typing rules or other "warts". There is not "Python: The Good Parts" book for a reason. Also for what I do Python has been plenty fast.

I wrote C modules here and there. Used cffi, that works great so far.

The thing is that those that don't switch languages usually don't write blog posts and those don't end up on HN (sorry for repeating it, I've already mentioned this in a sibling post). So the impression is that that's it Python and Node.js is dead, we should switch to something else.

Presumably in 2 years we'll see "We are switching from Go to " posts. It won't mean Go won't still work well.

As for 2 vs 3. Yeah I am in the naysayers for 3. Sorry, for fueling the flames. But from my perspective it came too late and it didn't have enough benefits (or rather 2 didn't have big enough warts) so it ended up being very painful. I still plan on staying with 2 for now. We'll see if 3.5 or 3.6 bring about better tempting features and more 3 library ports get stabilized.

Re: The March Towards Go

#129
post #125

Earlier quoted context omitted.

What part of the article did you read as "Go is a silver bullet? I read it as a list of articles about people/companies who are switching to Go with each giving their reasons for adoption.

Also presumably people who are not switching to Go are not writing blog posts. "We are still staying with Python" "Clojure still works great" "Erlang backend still runs after 10 years" "Node.js router still runs ok" Those don't make compelling HN front page article. So if you read HN the impression is everyone and their grandmother is switching to

Which is a shame, beautifully simple workflows delivering complex results are without a doubt a more impressive achievement.

Re: The March Towards Go

#130

So I understand there isn't a go package manager like pip/npm/cpan. Is that correct?

See the "Managing Dependencies" section, and comments:

https://www.digitalocean.com/company/blog/get-your-developme...

Also:

http://peter.bourgon.org/go-in-production/#dependency-manage...

More discussion:

https://news.ycombinator.com/item?id=7971354

Post reply on HN