So big ups to pud for his post and his peculiar stack. In its own way, it's a very cool and imaginative stack. And it works, which I think is the only thing that matters in the end.
So big ups to pud for his post and his peculiar stack. In its own way, it's a very cool and imaginative stack. And it works, which I think is the only thing that matters in the end.
Also, in your view, how is talking about data structures any better than talking about languages? Wouldn't that just be "indoctrinating me on the benefits" of your chosen data structure? If the only thing that matters is that the program works, then why does it matter what kind of balanced binary tree is in use behind the scenes, any more than the language matters?
Tools do matter. Maybe you're not interested in incremental improvements in your productivity as a programmer, but those who are will probably spend time talking about their tools (hopefully balanced by spending even more time actually using them).
Obviously not every software tool discussion is as exaggerated as that, but even if you're arguing Django vs Rails, there really are significant differences that could affect your work in dramatic ways (e.g. one framework has a plugin that would take you a week to write, while the other doesn't).
What you actually wrote (and what this article partially argues) is that the only thing that mattered was that it worked, which is a statement people can disagree over. Working isn't a binary switch that flips when you launch, any discussion of the value of something as complex as a piece of software has a lot of different dimensions. After all, bubble sort "works" too, but you'd be a pretty terrible computer scientist if that was as far as you investigated the issue.
I have a theory that people act this way because of evolution.
--------------------
Imagine you live in a tribe of 10 people, and there are 5 different ways the entire tribe can use to hunt animals for food. All 10 people must hunt together, and each of the 5 ways are equally successful.
After an animal is killed, the tribe determines who was most responsible for the kill, and he/she gets to pick and eat the tastiest meat before anyone else. Others' still get to eat, but it doesn't taste as good.
If all 10 hunters are equally skilled, each will get tasty meat 10% of the time regardless of the hunting method. But humans are not all equally skilled. Some can throw spears better than others. Some can run fast. Some can sneak up quietly. Some can climb trees. Some can wrestle a wild bore.
So what happens? Before a hunt, if you're a fast runner, you say "Let's chase after an animal!" If you can climb trees, you say "No, let's drive an animal up a tree, and climb up to kill it!" You push for the option which gives you the best chance eating tasty meat, and do everything you can to stop any other hunting methods.
Things get political. Someone says; "Running after animals is too much work! Lets climb trees instead!" You say; "Bullshit! Climbing up trees is for pussies. Real hunters run after their food! Plus, we have to see your nasty balls every time you climb up!" You support your cause, and do everything you can to demonize and discredit other options.
Through politics, arguments and fights, you might be able to sway the majority opinion of your tribe in your favor. "Yeah, I guess I don't really like climbing trees either; I'm sick of seeing that guys balls too. Let's run instead!" Now, your entire tribe runs for food, and being the fastest runner, you get tasty meat more than 10% of the time.
--------------------
So my theory goes, when you see someone arguing about something pointless like Windows is better than Linux, even though both are pretty good, what they're really trying to do is sway the opinion of the entire world in their direction. If every company dropped Linux in support of Windows, there would be a lot of Linux sys-admins and programmers out of work. Sure, they could learn Windows, just like a slow runner could learn how to run fast, but they would be at a disadvantage compared to seasoned Windows admins.
The same thing happens with programming languages and APIs. These can be very volatile, going from extremely popular and hot, to nobody wants to touch them in a few years.
When you see someone arguing about what color is better, they're using the same algorithm, only it's firing on something seemingly trivial. But is is? Perhaps if you convince enough people that red is better than blue, the next Macbook Pro you want to buy will end up red instead of blue. Unlikely, but possible...
Furthermore I doubt that the motivation behind arguing about 'pointless' topics is to sway the population to your side so that you can benefit.
Unfortunately, however, I do not have an explanation as to why people may argue over such topics though I suspect that it may be related/due to cognitive dissonance. There is a conflict between what they have concluded and what someone else has concluded. This could be for many different reasons such as different needs, different preferences, or different skills, but on the surface someone else has made a different choice for what seems like a similar task.
Actually, what this means is that you shouldn't hang out with douchbags, programmers or not. As I can guarantee you, there are just many non-techie douchbags as there are techie ones.