Haskell as a language is far more advanced and your "feel" might actually be right: You are now programming in the 80'es rather than the 70'es which most C-descendants really are programming in :)
Really? This implies you have some knowledge of what would have happen if C/C-descendants did not exist.
It also implies that C/C-desc adoption was a historical accident, or an idiotic move, instead of something based on very pragmatic decisions. To write a performant program until at least 1990, from a word processor to a game, you needed not only C-level speed but also lots of tricks and twists to your code (ingenuity), most of which were only possible because of the low-level access C provides and the programmer's knowledge of the program's state (so a higher level compiler couldn't easily derive and do the same optimizations for generic programs). And sometimes you even have to drop in assembly. Remember all those 80's games (like Prince of Persia) written in assembly?
So, even if C didn't exist, it would have to be invented (or something much like it). Worse case scenario, we would be using assembly.
After the 90's, with 486's etc, the situation got better, in the sense that we could even afford garbage collection. Still, our expectations got bigger too. Whereas 256 graphics and SID sound on a largely uni-tasking system was good for the eighties (at best you have some expensive Unix workstation and you run X with 4-5 programs loaded, X-eyes included), we now want millions of color, multiple CD-quality sound streams playing, 10-20 heavy programs loaded at once, GPU compositors, streaming audio and video, anti-aliased fonts, etc etc.
So, still, a high level solution feels slow compared to C/C++ when it does today's state of the art (for 10-years ago or yesterday's state of the art, even Python or Javascript is sufficient). Same for UIs (where waiting for the user's actions is the largest slowdown).
As long as you get into the "cpu intensive" or "memory bound" issue, anything but C/C++ seems slow.
(C descendant's like Java/C#/Go etc are also slow --not arguing that. Any multimedia app done in Java, for example, is like a relic from the 90's).
Haskell's operators are wonk:
[0,1,2,3]!!2
versus:
[0,1,2,3][2]
Clearly !! is a logical array indexing operator.
There are legitimate gripes you can have about Haskell syntax, but this is just trolling.
And I don't want to define my own operator. I can define my own words in English as well, but I'd rather use the same words everyone else is using so it will be easier to communicate with them.
If Haskell were as great of a language as you say, it would be more popular.
> I'd rather use the same words everyone else is using so it will be easier to communicate with them.
Would you be happier if C was the only language, and everyone just had to use C?
> If Haskell were as great of a language as you say, it would be more popular.
This is completely non sequitur. Popularity has little to do with the advantages offered by a language. At one time, C was not so popular.
I like C's syntax, but I also like Lisp's and Scala's and SQL's.
> Would you be happier if C was the only language, and everyone just had to use C?
If C were as powerful as a modern programming language (JavaScript) and had the standardization of a libraries that Perl or PHP has, then I'd be okay with writing C. The only reason I don't is because C has been improved upon. Haskell is a step back.
> This is completely non sequitur.
Of course it isn't. Popularity has a huge amount to do with the advantages offered by a language. If a language was crap, no one would use it.
At one time, C was not very popular, but in the last 20 years almost all of the most popular languages, year after year, have been C or its descendants.
If you don't want to use Haskell, that's fine. Don't use it. If you have legitimate criticism, I'd like to hear it.
I'm pretty sure that it has an "odd" shape, because indexing a list in Haskell is potentially O(n). The operator itself is essentially a warning...
Surely, you were talking about the comments syntax. They really make it horrible to express anything.
You've never read a Lisp thread with non-Lispers, have you? :-) The amount of whining about parentheses is incredible.
If WordPress was written in Lisp, I'm sure many more people would use it. It's sort of a chicken and egg problem, I guess.
Some even says that the number of programmers available on the market for a language is important. I don't think it is a good reason but a related one is: your existing user base is composed of companies and consultancies with their own programmers; you can't abruptly choose a different programming language than the one they know.
I agree with you about the 'platform' of a language, though. That's one of those things that you can't get away from.
Most languages today offer the same semantics - first class functions, objects, namespacing. Apart from that core, there isn't really a huge variance except for fringe languages that, generally, have severe syntactical limitations as a result.
The Haskell designers identified the main sources of errors in code as mutable state and side effects (network communication, writing to disk, etc), and then constructed a language that enforced isolation of that code into specific containers, monads.
All code outside monads is guaranteed to be purely functional, referentially transparent, immutable, and side-effect free. It's an idea that seems simple in hindsight, but is rather brilliant.
Add to that Haskell's green-thread concurrency and multicore/cpu parallelism is probably one of the best kept secrets in programming these days, and you've got an amazing language and platform for anyone who takes the time to shift to its paradigm.
There's a reason that eight out of the ten top programming languages in use today are C or C descendants - C is a great language to read and write, and for 90% of programming tasks (and 99.9% of business programming tasks), how easy it is for the programmer to comprehend and express himself in the language is the biggest factor in productivity.