3 ms·
You can point out flaws so it's not well designed? By this logic nothing is. And pointing out missing features in a programming language is just about the weak
by theoryofx 2y ago
You can point out flaws so it's not well designed? By this logic nothing is.
And pointing out missing features in a programming language is just about the weakest criticism possible.
Piling on lots of features is easy and fun. That's why almost all language designers do it. Most popular languages destroy themselves with features.
Rust is in the process of gaining every single feature anyone can imagine. Following C++ right off the complexity cliff.
Go is one of the very few languages to show incredible restraint in adding features because its designers understood the combinatorial complexity problem, among other things.
Not having unnecessary features is one of the best features of Go.
- powerhugs 2y agoI very much agree. The fewer ways a programmer can become creative, the easier it is to fully understand their code. In a business environment, this is a obvious win.
- pjmlp 2y agoEspecially when programmers are seen as cogs in the business machine.
- physicsguy 2y agoThe issue with Enums is that the "unnecessary" feature means that people have to encode the behaviour with things that aren't suitable. E.g. creating a new type that's a thin wrapper over string or integer means it can be set as some non-valid value, even without some sort of explicit cast that says "I know I'm doing something that might fail". I don't see that that is an improvement over any other language. It's not simpler because, as people have shown by the examples trying to prove that you don't need it, they don't have all the (necessary) behaviour that enums do to prevent this sort of problem.
- theoryofx 2y agoThere are some useful features that Go really should add, and enums might be one of them, but lacking a useful feature doesn't mean its not well designed. The results are in for Go. It's already one of the most successful programming languages in history any way you measure it. Of course Go should continue to improve and add features where the value outweighs the increased complexity. That's how it eventually got generic functions and other features.