Having read the following article about programming language sacred cows, I was reminded of being annoyed in the past.
I can really sympathise with points 7 and 8 (Compiled vs Interpreted. Static vs Dynamic & Garbage collection is bad).
It’s nice to be able to chuck a Java/C# “executable” to anyone and have a fairly good idea it will work, but there are many times when I know exactly where the “executable” is going.. My production environment! Why the hell can’t I just compile it there and then with all the optimisations in place. I know there are lots of people who say JIT compilers run just as quick etc, but there is inevitably that “first time” lag, why do I need to suffer that when I don’t need to.
Having spent a day twonking about with strings in C++, I can remember why everyone gave a sigh of relief when string manipulation was made so easy in Java (I know you could get the C++ boost libraries and have similar functionality, but I didn’t know about that at the time, which is kind of the point). When I want to concatenate a few strings together and write out the result, I really don’t want to have to deal with memory allocation and the fear of the impossible to find memory leak. However, if I’m making an ant simulation where there are thousands of entities being created and destroyed, I want really tight control of when they go away. I don’t want the dead ants to hang around just because I once referenced a parameter in the wrong place (JavaScript, you know who you are).
The other points, while I can see the advantage of not storing things as text, trying to get people to standardise around another format. It’s bad enough with text, with my .Net code, I feel rather locked into Windows (I know there’s Mono) because the code works so tightly with Visual Studio. I think maybe the popularity of JavaScript comes from the fact that you just throw around plain text, so you can edit it on your mac or Windows laptop with equal ease, it’s the shared execution environment that provides the unification.