Did you like how we did? Rate your experience!

4.5

satisfied

46 votes

Why would programmers choose a syntactically cryptic language like?

If there were a language that had the depth of libraries of either C++ or Python, but had Python-like syntactic clarity (whitespace or not unlike many people, I dont care about that particularly) and the semantic capabilities of C++, Id be strongly advocating using it. It doesnt exist. Haskell has the depth and language capabilities (significantly more capable than C++ in many ways), but can too easily look like line noise, and goes just a bit too far on the modeling everything with category theory; cool trick, not very practical, leads to compiler errors that are incomprehensible. OCaml has the language capabilities but not the libraries. Go doesnt have the language capabilities, by deliberate policy, and also by policy the library depth will take a very long time, if it ever happens. One day, Rust may be that language. But it isnt yet. It goes further than C++ in capability of the language, which is quite an achievement, and it does have a significantly less busted syntax but, libraries. Python may one day evolve into that language; it might require a Python 4.0 to get there, and thats going to be a decade away, at a guess. Or something else may emerge and be that language. Pythons missing semantic capabilities are to do with very large scale programming and the ability for tools (including the compiler) to tell you what types are involved in a given place in the source, without actually running the program on real data in a debugger or test case. It is also a complete pain to deploy to production in a safe way, which is actually a related problem (if you can prove a type is not needed, you dont need to deploy it but you cant do that, not in general). The libraries are wonderful, and so is the documentation. If the type boundedness problem can be solved, then Pythons performance will be easily as good as Java and C++; we already know how to do that, pypy is all but there. C++ syntax is pretty horrible, but works. Lambdas are kind of awful, at least we no longer have to space out the angle brackets closing nested templates. There are libraries for everything, mostly very good ones. We know how to deploy and debug C++. In the end, it doesnt that much matter if code looks horrid so long as you can actually read it, practicality depends on so many more issues than just that.

100%
Loading, please wait...