If I could sue a language I'd sue bash. I know it'd be futile but there is a reason that so many replacements exist but maybe a better reason why none of them have supplanted bash.
Silicon Knights sued Epic claiming that they were promised advanced features of the Unreal Engine that allegedly did not exist or were not supported in the way SK were led to believe. They allegedly ended up having to build their own engine for the game on top of the cost of the UE3 license. Epic discovered that the new engine was using source code from SK's licensed copy of the UE3 engine and counter-sued for breech of contract. The claims against Epic were thrown out because the judge felt SK was asking for unreasonable amounts of money. As far as I know, the matter of whether or not Epic filled their end of the bargain was not answered. That's the real shame.
why none of them have supplanted bash.
Same reason C is still popular despite more advanced and modern languages. It's not as widely supported. Bash and C are everywhere. Bash and Perl are awful, awful languages that are awful, awfully unfortunately useful.
So instead I'll disagree with you on Perl which I thought was one of those saner replacements for bash, especially when it comes to one liners. So what languages did you think I meant?
> Same reason C is still popular
I think the reasons behind C and bash staying power are different. Bash is here to stay because it is ingrained, literally embedded in the system and has a large user base. It doesn't offer anything unique that isn't available somewhere else. C is here to stay because it offers what other languages don't. There are new projects with no legacy concerns that still choose C.
Also, another vote for CSS. Mostly because its so hard to debug and figure out what exactly is making your page look like shit. Add to that varying browser support. Its hell.
Besides a gotcha with weird bugs when I called the superclass dealloc method before releasing members, I had a really smooth experience.
I remember at CMU, the sophmore level programming language theory course (the name escapes me, it was 15-212) was wildly different than anything I had done before. All programming courses one took up to that point were the normal intro level courses that most passed out of and a data structures/algorithms course. Sitting down the first day and being introduced to SML along with language constructs with no analogue in the programming languages I knew was tough. I struggled for about a month, much like I imagine many do when learning about pointers: you may be able to do some of the work, but you don't have a proper conceptual model to be able to reason about it. All of a sudden, after re-reading the material from the beginning, everything just clicked. It was probably my favorite undergraduate CS course from then on.
The hardest that I gave up on was Groovy. The language itself seems really nice, it was just hard because of the lack of documentation that I was able to find so I just switched to Scala since I had to learn it for a class anyways.
The hardest that I still use is Haskell. While there documentation is phenomenal compared to other languages, I have found that it isn't something that you can just pick up and start using and be able to write idiomatic programs without studying theory. For me, when I get to monads I struggled a bit. Then I get to the monadic bind and other operators like $ and . and I find I have to keep going back to tutorials to see when and how to use them properly.
More generally, I find it hard to learn how to do GUIs and pretty web pages.
If you abstract away the browser differences in event handling and DOM, it's pretty straight forward to build GUI:s.
Other contenders have been:
1. Bison ( tokens, parsing, syntax, was all difficult the first time around).
2. OpenGL because remebering function names for the api is RIDICULOUS! ahh glDrawElementsInstancedBaseVertexBaseInstance now what are the args again?
It is deceitfully simple at a glance, but to make a useful design with it is hard. There are so many hacks to get it to do what you want and hacks to work around bugs.
Ask me to write a simple web page and I'll have ~10 tabs open to w3schools.
Something about CSS prevents me from really grasping it and using it with any real skill. I mainly live off of designer friends and things I can cobble together with the help of google.
most difficult to learn for an OO-guy: Erlang (and most interesting as well)