7 comments

[ 3.2 ms ] story [ 23.5 ms ] thread
Peace is not as much fun as war.
Peace is not as much fun as war.

Why not a Middle Way :-) We can start off by acknowledging that you can write good code and bad code in any language; and different languages have different strengths (and weaknesses). However I don't see what's wrong about preferring certain languages out of personal inclination and want to advocate (politely) about the thing you love. You should be able to make a case for why language X really rings your bell without needing to say that language Y is crap.

It's like eating snails. I really don't want to eat snails, but I am perfectly happy to acknowledge that there are a lot of people out there who consider it the height of gourmandise and as far as I am concerned, they are welcome to keep eating them. The choice isn't either for me to eat snails, or for everybody else to stop eating them; the world is big enough for all of us.

De gustibus and all that.

> We can start off by acknowledging that you can write good code and bad code in any language

It would be nice if we could agree to this, but it is not true. For anyone who really believes this assertion: Go ahead and offer a sample of good Malbolge code. It may be possible to write better or worse Malbolge code, but it will all be slow and unreadable.

Obviously that's a pathological case, but once we accept that language affects code quality, we have to conclude that Language X's "good" and "bad" code may be better on an absolute scale than Language Y's, albeit with a smaller delta than Malbolge vs. anything.

Well that may be true in theory (and I used to think so too) but in practice I have only really seen two kinds of code in production: good code written by good coders and bad code written by bad coders. Yeah, it is true that some languages are by design bad choices in certain kinds of applications... But really, the quality of the programmer seems to be the dominant factor in most cases. YMMV and all that.
Bashing other languages is a lot like bashing other musical styles. People love what they emotionally connect with.
Programming languages is one of those topics which demonstrates the difference between online and offline discussions. In an online forum I don't mind reading a back and forth argument about languages especially if I can learn something from it. But in person I find it comes through as just completely pretentious, even if it is polite.
Yes, when using languages, there's really no reason to go to war (unless, like a developer fresh out of college, you only know a few, and they are thusly your de-facto "favorites.")

But the thing about programming languages, that's different from all the other things people have aesthetic preferences about (art, music, food...) is that (most) programming languages are also open for modification by their user communities. Saying "PHP is crap because it leaves its functions all over the floor" is just a mean way of saying "I vote that PHP should be changed so that it puts its functions back on the shelf before dinner time." Picture a toolbox where, if you complained enough about your screwdriver slipping too much, it would evolve a new head design right before your eyes. The toolbox analogy seems to break down there, doesn't it?

The closest thing I can think of to a programming language that regular people deal with is an apartment/office building. Just by getting the "user community" rallied around an issue, you can actually get large changes made to the product itself. Thus, people are always, always shouting about what's wrong with their building, hoping that someone will agree and a mob will amass to Get Things Done.