I wasn't going to jump into this thread, but the last 2 posts are heading in the direction I would have gone so I'll add a tiny bit.
In the countless "this language or that language" threads that pop up on here, I think the same common mistake flows through them all. It's a way of looking at the problem differently than is done in other subjects, and I'm not entirely sure why.
I can already tell my example may not "hit home" quite how I want, ROFL, but lets assume we're talking to a young kid who wants to purchase a set of markers for drawing. Cheap Crayola markers are easy to grab at the store and use, but someone speaks up and says that serious artists only use Prismacolor brand. Another jumps in and speaks in favor of Blick studio markers, citing examples of fantastic artwork they've seen them used on. Back and forth everyone goes, comparing examples of fantastic pieces of art, and examples of crap that could have been drawn by young children.
In this colored marker example, as a group we would all quickly realize it was crazy to go about it in this way. An amazing piece of art relies very little on the brand of markers used to draw it. A skilled artist will have a preference, and some markers will make certain tasks easier or harder to do, but in no way will a brand of marker make a bad artist good. The differences between the brands are something that only the skilled artists are even going to notice. To a novice or casual drawer of notebook doodles, a red marker is just a red marker. They simply do not have the expertise to unlock the differences one marker may have over another.
This example could translate into musical instruments. Hmm, in this community perhaps I should have led with this instead of colored markers. Aprone what were you thinking?! I don't know guitar brands, but a quick internet search showed a lot of hate for a brand named Squier. So lets say we have someone, just starting to learn how to play the guitar, trying to decide between buying a Squier or a Gibson. Similar to the previous example, people chime in and try to recommend a guitar based on what was used in different songs they listen to on the radio, and whether or not those songs were good or bad.
There is a cost difference between the 2 guitar brands, and in programming we could consider learning curve and development time using that language to be their cost difference. Even if the cost were ignored, will this new guitar player play better songs if he picks the right one? Will it be any less torture for his family while he plucks away in his room, following along in his "Learn to play the guitar in 31 days" book? Many years down the road he may be one of the small few who gains enough skill that he can unlock and actually benefit from the differences between guitar brands. The average player is either not going to notice a difference, or it's going to be a psychological one.
The vast majority of programmers never get good enough to unlock the true power of their respective programming languages. They claim they do, because any programmer will tell you they are essentially god. Even people with practically No programming ability will throw around every buzz word and phrase they can get from wikipedia to seem like experts online. Like the markers and the guitar, giving a programming novice a different language is not going to improve the quality of their work. If it does it will be by sheer accident, not because one tool was actually superior to the other (in general terms). Time and time again we hear about how powerful and fast C, C++, and C# is as a language, but I would shocked if even 1 person from all of those such conversations, started learning one of those languages and got their skills high enough to use any of that aforementioned power/speed.
It's basically a room full of people so stuck on picking out the right colored markers and guitar brand, that they don't realize they won't grow up to be famous artists or musicians anyway. That sounds terrible, but we look at the examples of the tiny tiny few who make it to the top, and then assume we can get there with the same tools. Those tools are specialized for the people way up there, and for us regular people (or especially for people just starting out), the differences don't mean much. The differences are worn like a badge of honor more than anything else. It's status symbol crap, like people who have to convince themselves and everyone else that their overpriced jeans are superior because of the fancy company logo on the pocket.
ROFL, I have to include a side example that I just remembered. I remember when I was in high school a few kids on the swim team shaved off their eyebrows. They looked like complete idiots, but they were convinced that it would give them better times in the pool. Well of course it's been shown that shaving off hair cuts down on the drag from the water, but unless you're one of the select few swimming in the olympics, that difference isn't going to matter. A kid in a high school swimming pool is not going to benefit from shaving 0.01 seconds off of his lap time! ROFL! A handful of us just could not explain this to these kids, who were so stuck on their idea of being faster, that they had lost reality of why it didn't apply to them. Programming language conversations, to me, are basically talking to kids that shaved off their eyebrows to swim faster.
- Aprone
Please try out my games and programs:
Aprone's software