I've used Nim, for a period of a few months. I didn't feel it was semantically that clean, just extremely terse. It has an enormous number of features. Some make good advertisement but are not implemented in a comprehensible, well-documented way(e.g. "parallel"). I was able to trigger a compiler regression the first time I used Nim because my first code, as one might expect given the large featureset, strayed from the idiomatic path. Plus the community had developed a careless attitude towards each other where any nastiness got a pass. I saw several flame wars go down in that IRC, bitter arguments that my friends looked at and shook their heads at. One said, "somebody should have been banned long before it got there."
I do have one good thing to say about it, though: it made systems type stuff fun. It has a featureset of "gradual affordance" that lets you implement something now and optimize later. That part is admirable, and most like Python. The next time I feel inclined I'll be looking at D, though - it's a more mature ecosystem, in several respects.
Plus the community had developed a careless attitude towards each other where any nastiness got a pass. I saw several flame wars go down in that IRC, bitter arguments that my friends looked at and shook their heads at. One said, "somebody should have been banned long before it got there."
Thank you, it's good to be warned. My main reason for liking Python was that the community was so friendly; having used other languages where you say anything and get shot down it's a deciding factor for future choices.
Of course there are blunders in Python. It's an old language by now. But a great deal of what makes Python really easy to use is that a lot of thought has gone in to getting many of the essential details right.
For instance, take comparison operators - by having < and == work across all the built-in types (including sequences), it's really easy to compare and sort stuff. Which is essential to writing terse and efficient algorithms.
Comments
Python's syntax is simple and clear. But that's about it.
If you put the syntax on top of well-thought-out semantics, you get something like Nim ( http://nim-lang.org/ ).
I've used Nim, for a period of a few months. I didn't feel it was semantically that clean, just extremely terse. It has an enormous number of features. Some make good advertisement but are not implemented in a comprehensible, well-documented way(e.g. "parallel"). I was able to trigger a compiler regression the first time I used Nim because my first code, as one might expect given the large featureset, strayed from the idiomatic path. Plus the community had developed a careless attitude towards each other where any nastiness got a pass. I saw several flame wars go down in that IRC, bitter arguments that my friends looked at and shook their heads at. One said, "somebody should have been banned long before it got there."
I do have one good thing to say about it, though: it made systems type stuff fun. It has a featureset of "gradual affordance" that lets you implement something now and optimize later. That part is admirable, and most like Python. The next time I feel inclined I'll be looking at D, though - it's a more mature ecosystem, in several respects.
Thank you, it's good to be warned. My main reason for liking Python was that the community was so friendly; having used other languages where you say anything and get shot down it's a deciding factor for future choices.
Of course there are blunders in Python. It's an old language by now. But a great deal of what makes Python really easy to use is that a lot of thought has gone in to getting many of the essential details right.
For instance, take comparison operators - by having < and == work across all the built-in types (including sequences), it's really easy to compare and sort stuff. Which is essential to writing terse and efficient algorithms.