There are plenty of ways to show your disagreement and juvenile rants only serve to vent the spleen, nobody is going to come away from an exchange like that with a changed mind, in fact they might start to associate the tool of choice of the 'ranter' with the ranters behaviour.
Real Programmers (TM) can do their work in any environment, they will have their preferences but for the most part they'll be language agnostic because they have learned over the years that the tool is less important than he or she that wields it.
I realize this goes against the grain here, PG is very strongly of the opinion that the tools matter a great deal, but I've seen mediocre people with great tools fail miserably and I've seen people with nothing but edlin and an assembler written in BASIC (of all things) make a small fortune by building some very elegant stuff.
The more interesting fact about this bashing is that the closer the languages are to each other the more fanatical the bashing.
A python programmer will not get nearly as excited about some perceived shortcoming in COBOL as they'll get about one in perl or php because those languages are being used in the same 'domain' that python is used in (for the record, Python advocates are amongst the ones doing the best job for their language of all the ones named here).
I think the assumption that all writing is or should be an attempt to change someone's mind is misplaced. Despite the contortions to equate it to high art or some form of self-actualization, programming is mostly work and work, along with its rewards, involves a fair amount of frustration. Writing and reading about those experiences can be quite interesting and informative and the spleen vented also serves as good reminder not to take oneself (and one's tools) excessively seriously. Tastes vary but I know I'd rather read, say, a chapter in the Unix Haters Handbook than yet another wide-eyed post about the inimitable ecstasy of being within 12 feet of a Rails app.
I agree, but would note that high art and self-actualization are also mostly work. And, in fact, there are lots and lots of Haters' Handbooks for high art and self-actualization as well.
To pick an example at random: I am given to understand that one of the routine tortures of classical musicians is to play Pachelbel's Canon, a thoroughly tedious earworm that is requested at nearly every chamber-music gig. One of my friends in college ran a classical music radio program called Anything but Pachelbel. And there's a very fun section of Robert Greenberg's lectures, How to Listen to and Understand Great Music, which could easily be retitled The Pachelbel Haters' Handbook.
And one could definitely write The Science Haters' Handbook. The author of Piled Higher and Deeper is doing a marvelous job.
Have you ever seen or used the bellcore 'mgr' windows manager ?
Besides the plan 9 stuff I thought that was one of the most elegant attempts at making a window manager, all the interaction was through stdin / stdout.
In the middle of a conversation about, among other things, not taking things too seriously, someone downvotes a comment of obviously lighthearted intent (comes with a convenient emoticon!). Sometimes I suspect there's a secret HN Cabal dedicated to the smushing of any hint of levity.
"I think the assumption that all writing is or should be an attempt to change someone's mind is misplaced."
I'm more fond of writing that seeks to get people thinking and talking about things than proving this or that is The Truth.
A problem with limiting writing to persuasion is that it requires you to first pick a side or figure enough out to know when something is better or worse than something else. But what if you can't? Often what's needed is more discussion, more people kicking around more ideas.
Sometimes getting people rattled is what's needed to provoke interesting responses to move things forward.
I agree with your (Jacques's) larger point, but I think this is a bit of a mountain out of a molehill especially this bit - "It's just a good old hanging party in disguise." Really? .
Every community in the world has fierce discussions about the comparative merits and demerits of the various tools used.
I know martial artists who have fierce debates about which martial art styles are "best" while agreeing that it is the fighter not the style that is ultimately important.
I disagree with this bit of your argument too.
"Real Programmers (TM) can do their work in any environment, they will have their preferences but for the most part they'll be language agnostic because they have learned over the years that the tool is less important than he or she that wields it."
The best programmers I know are not language agnostic at all. They have marked language preferences to the point where they will go out of the way to work with the "best" languages they know. The tool is less important than the wielder, sure but the best wielders try very hard to use the best tools, which is hardly "agnostic".
If this were true, PG could have written HN in PHP. PHP is perfectly adequate for the functionality of HN. The best programmers go for their preferred tools (to the point of buildig new ones if necessary) rather than "agnostically" select whatever will do the job. I suspect COBOL would "suffice" for most business apps, for e.g. and perl for most web apps. If one thinks all langauges are "equal" ins some abstract sense, why bother inventing new ones.
Now if you are saying that one shouldn't actively going about criticizing/putting down other people (as distinct from the languages/tools/ etc they use), than I agree. I hope we never come to a politically correct era where all of us mumble pious homilies about how all languages are Turing Equivalent etc.
All that said, I think your frame of "features from other languages that i would like in my favorite language" is brilliant. Good thinking.
> I disagree with this bit of your argument though.
Good, let's see if we can both learn something :)
> The best programmers I know are not language agnostic at all.
I agree with that, it is just that they will be capable of doing the job in any language, it is their preference to do it in the one that they think is suited best for the job.
> They have marked language preferences to the point where they will go out of the way to work with the "best" languages they know.
Absolutely.
> The tool is less important than the wielder, sure but the best wielders try very hard to use the best tools, which is hardly "agnostic".
Ok, point taken. What I meant with agnostic is that it is a point of personal preference, not dogmatic. I'm not sure which word fits better there than agnostic.
> f this were true, PG could have written HN in PHP. PHP is perfectly adequate for the functionality of HN.
Who knows, it might even be better suited than arc :)
(side note, HN seems to be crashing an awful lot lately, in spite of reduced length of the lists for the new, home and submissions pages).
"What I meant with agnostic is that it is a point of personal preference, not dogmatic."
I wonder if even this is true though. Very strong personal preferences for one tool or language over another can look like dogma to outsiders. What makes something "dogma" is ignorant adoption of a view point or preference and then blindly parroting it and actively demonizing people who choose other tools.
The best programmers (the subset we are talking about) don't blindly adopt (or maintain) their preference for a specific language out of ignorance. Linus Torvalds, for example, has a very strong anti C++ bias [1]. That doesn't make him not part of the set of "best programmers".
Again I agree with your larger point of going around bashing other people because they have different tastes from yours being an unproductive exercise.
"I would hate to program in PHP (or even, I think PHP sucks as a programming language because of reasons x y z) and would much prefer to use Python (or arc or whatever) " is very different from "People who use PHP are idiots and should be burned at the stake".
Actually I am fine with that headline ("PHP must die").
I didn't bother reading the article, because I know all the arguments about what is broken in PHP (and also what is not) and it was unlikely I would learn anything new and I have better things to spend my time on. I just read it as saying something like "Shaolin Kung Fu should die" It is just an opinion about a tool, not necessarily a correct one.
Now if he had said "PHP programmers must die", then sure, I can see why that would bother people.
Maybe not everybody aspires to being a "real programmer", if that means merely being a tool that other people (MBAs) wield at their fancy. Those unreal programmers might have other desires, like working on beautiful things or in an aesthetically pleasing environment.
I just spun the thought further. When would be a situation where you wouldn't care about the language? If somebody hired you to do something, in the language of their choosing. I don't see another possibility?
You are interested in working in a particular area, where a language you didn't like was the best tool for the job.
from Arduino's website:
The environment is written in Java and based on Processing...
Want to play around with an Arduino? The best tool for the job is Java, not because Java is a particularly good tool but because all documentation and community is built around it.
Want to work on the Linux kernel? Feel free to ask them to rewrite it in something other than C because you dislike C.
If I were in a hurry and there would be one 'best' tool but I was already familiar with another.
If someone asked me to fix something for them in an environment that I'm unfamiliar with, maybe even do not like, but the price of asking them to switch is higher than my inconvenience.
In the case that there are serious constraints on the amount of computing power available, say I want to build a data acquisition device that runs of a solar cell and a small battery.
Real Programmers (TM) can do their work in any environment, they will have their preferences but for the most part they'll be language agnostic because they have learned over the years that the tool is less important than he or she that wields it.
I realize this goes against the grain here, PG is very strongly of the opinion that the tools matter a great deal, but I've seen mediocre people with great tools fail miserably and I've seen people with nothing but edlin and an assembler written in BASIC (of all things) make a small fortune by building some very elegant stuff.
The more interesting fact about this bashing is that the closer the languages are to each other the more fanatical the bashing.
A python programmer will not get nearly as excited about some perceived shortcoming in COBOL as they'll get about one in perl or php because those languages are being used in the same 'domain' that python is used in (for the record, Python advocates are amongst the ones doing the best job for their language of all the ones named here).