3 ms·
I think it's the other way around. The lack of expressivity is a strength. My idea of a good programming language is heavily focused on making it hard to write
by eternityforest 4y ago
I think it's the other way around.
The lack of expressivity is a strength. My idea of a good programming language is heavily focused on making it hard to write bugs.
The more flexible the language, the harder it is for the compiler to understand it, and the more you encourage random tinkering over bog standardness.
Great for academic language, but in production, the ideal language tries it's best to keep you from doing anything clever.
Core language features tell me that the designers said "This is common, let's provide this one way to do it and not bother with enabling any other ways".
- lmm 4y agoI do agree with making it easy to constrain what you write. But I don't think having lots of core language features is a good way of doing that. A core language feature is generally an ad-hoc special case that breaks the rules of the language, almost by definition. Which means it probably interacts poorly with other language features. (For example, if you use a language which has keywords for async and keywords for exceptions, they will probably interact badly; if you use a language that encourages ordinary functions for async and error handling, they will probably play nice together).
- metadat 4y agoAny concrete examples of what good looks like?
- lmm 4y agoHaskell, TCL.
- eternityforest 4y agoHow do you do the equivalent of static typing in TCL?
- ncmncm 4y agoA sufficiently expressive language enables the library author to constrain its usage to prevent bugs. This is why sufficiently modern C++ programs have no memory usage errors. It would be extra work to code them.