Live data from Hacker News

The March Towards Go

zef.me

151–160 of 217 posts

Re: The March Towards Go

#151
post #101

Earlier quoted context omitted.

> Python falls through because it doesn't have real lambda. No it doesn't. Been using it for about 10 years can't remember being bothered by lacks of "real lambdas" > There are minor details wrong with JavaScript. Normally you don't encounter them in daily use. If there would be minor detail we wouldn't have had the "Good Parts" book. And trying to deals with variables in Javascript is pain, var vs no var, what does…

I assume you're referring to the "Wat" talk by Gary Bernhardt, here. My question is why does it matter? It's funny and notable behavior, but why is this a problem that a real programmer will face dealing with a real problem? (For reference, [] + [] = "", [] + {} = Object, {} + [] = 0, {} + {} = NaN)

Because it hides errors instead of helping the developer find them

Re: The March Towards Go

#152
post #101

Earlier quoted context omitted.

> Python falls through because it doesn't have real lambda. No it doesn't. Been using it for about 10 years can't remember being bothered by lacks of "real lambdas" > There are minor details wrong with JavaScript. Normally you don't encounter them in daily use. If there would be minor detail we wouldn't have had the "Good Parts" book. And trying to deals with variables in Javascript is pain, var vs no var, what does…

I assume you're referring to the "Wat" talk by Gary Bernhardt, here. My question is why does it matter? It's funny and notable behavior, but why is this a problem that a real programmer will face dealing with a real problem? (For reference, [] + [] = "", [] + {} = Object, {} + [] = 0, {} + {} = NaN)

Extreme nonsense behavior from the language you're using. People see that and think "that's just the tip of the iceberg".

Re: The March Towards Go

#153
post #98
post #29

Earlier quoted context omitted.

This blog post misses a very good Python replacement, namely Nimrod ( http://nimrod-lang.org ).

With the exception of speed, why does Python need a replacement? I am using Python daily, and pretty much all performance problems (with my work) can be solved at the database or caching level. I get the impression that Numpy can produce reasonable performance for numeric problems. In my experience developer productivity is of far more importance to business than language performance (obviously that depends on your d…

> In my experience developer productivity is of far more importance to business than language performance

You seem to be assuming that Nimrod would necessarily be less productive to work with than Python?

Re: The March Towards Go

#154
post #84
post #59

Earlier quoted context omitted.

If you normally only do a couple lines of jQuery per day then I agree that you don't encounter the warts very often. If however you want to do even some OOP you cannot miss the world of hurt that is coming your way. Then there's the horrible weak type system which makes maintenance of anything needlessly complex, not to mention the global variables, unused reserved words, anything that has to with numbers etc.

TypeScript solves JavaScript's type problems pretty well, it's worth a look.

Does it play nice with Javascript frameworks like Angular?

Re: The March Towards Go

#155
post #93

Earlier quoted context omitted.

Because thanks to our experience with strong typed languages with native compilers and type inference, we know better. Many of us have had the fortune to work with C, C++, Ada, .NET, Java, Delphi, Modula and Oberon derived languages, ML language family. So we already know what modern strong typed languages, with native compiler toolchains, are capable of in terms of language features. And going Go feels a bit backwar…

My professional history is with C, C++, C#, Fortran, even years of Object Pascal in Delphi back in the day. In no universe does Go feel like it's a "bit backwards", and I think you're trying to speak for a group without their input. Indeed, an implementation I regularly use now is high performance algorithms in C++ (the Intel vectorizing compiler is superb) to function libraries, Go/cgo as the extremely efficient, ve…

I speak for the ones that got interested into Go as a mix of C and Oberon, even tried to initially contribute and went away as the language became a kind of Java 1.0.

The ones addressed by Rob Pike on his post about C++ developers.

Now I spend more time with Rust and D instead.

Re: The March Towards Go

#156
post #101

Earlier quoted context omitted.

> Python falls through because it doesn't have real lambda. No it doesn't. Been using it for about 10 years can't remember being bothered by lacks of "real lambdas" > There are minor details wrong with JavaScript. Normally you don't encounter them in daily use. If there would be minor detail we wouldn't have had the "Good Parts" book. And trying to deals with variables in Javascript is pain, var vs no var, what does…

I assume you're referring to the "Wat" talk by Gary Bernhardt, here. My question is why does it matter? It's funny and notable behavior, but why is this a problem that a real programmer will face dealing with a real problem? (For reference, [] + [] = "", [] + {} = Object, {} + [] = 0, {} + {} = NaN)

It matters because it shows how incoherent is the Javascript type system, and how easy it is to get biten by it.

About Python lambdas, I miss them a lot. But one can not have everything...

Re: The March Towards Go

#157
post #151

Earlier quoted context omitted.

I assume you're referring to the "Wat" talk by Gary Bernhardt, here. My question is why does it matter? It's funny and notable behavior, but why is this a problem that a real programmer will face dealing with a real problem? (For reference, [] + [] = "", [] + {} = Object, {} + [] = 0, {} + {} = NaN)

Because it hides errors instead of helping the developer find them

Are JS developers often adding empty arrays and empty objects together? This seems more like a corner case than a real issue.

(Not snarky - I don't know JS)

Re: The March Towards Go

#159
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…

>It seems that having exceptions in the language is a great predictor for libraries/built-ins barfing upon bad input vs silently producing garbage Maybe so, but having exceptions in a language is also a good predictor for the misuse of exceptions for purposes other than error handling. For instance, Python has the StopIteration exception to signal the end of an iteration. Exceptions force API designers to decide whet…

> Maybe so, but having exceptions in a language is also a good predictor for the misuse of exceptions for purposes other than error handling.

Is that really a problem? I once hated such uses, but could never point why.

Re: The March Towards Go

#160
post #151

Earlier quoted context omitted.

Because it hides errors instead of helping the developer find them

Are JS developers often adding empty arrays and empty objects together? This seems more like a corner case than a real issue. (Not snarky - I don't know JS)

As often as any programmers deliberately insert bugs in their code ;-)

Those values are usually in variables that and have been set maybe from a backend reply or from the UI at some point.

That is just one instance of the sloppy mess of weak typing. Instead of writing a long list of it I just used an example to illustrate.

Post reply on HN