camus2
Joined 13 years ago
Joined 13 years ago
It's called fraud. Some people here call it "scaling" but it's just good old fraud at scale.
err ... they are doing both.
It's normal. After the initial hype 3/4 years ago, developers are taking a harder look at that language and with experience its flaws have become more obvious.
Go type system definitely has problems that aren't addressed by its designers, IMHO limiting its adoption.
> A lot of people seem to have to voice their dislike for it instead of just not using the language.
One can use a language daily while still remaining critical of it. People who don't use Go don't care about Go. Only people using Go will complain about its shortcomings.
A lot of Go issues have actually been addressed in previous languages such as Ada. Ada tasks for instance are close to go-routines and they use the same "select" system to deal with concurrent messages. However, Ada tasks unlike go-routines are "objects" that can be referenced as variable, they also can scheduled by the developer.
There is not a single language out there free of criticism, Go isn't different. So it shouldn't really be striking at all.
You'd have to define what you mean by system language at first place before making such a claim.
It doesn't do everything C does, it doesn't allow manual memory management at first place.
So you can't pretend that a garbage collected language does everything a language with manual memory management does.
Manual memory management is a feature, Go does not have such a feature. Deterministic behavior in a program is fundamental when writing hardware drivers or real time programming, Go can't do that.
No, go has a garbage collector. It is not a replacement for C. Languages like C++, Rust or Ada are.
No, it has nothing to do with the developer console. It has everything to do with the fact that async exceptions do not bubble up in the main execution thread. Promises work the exact same way since they existed as libraries long before they were included in the language. It's about consistency, nothing more, nothing less.
No, this behavior is consistent with how asynchronous programming works in JS.
myDiv.addEventListener("click",function(event){
throw "error";
});
Nobody would expect that code to terminate a browser tab on error.> This also makes writing tests more difficult because tests often use exceptions to indicate failure.
Then use async functions, problem solved.