People arguing about programming languages are like people who focus more on cameras than on the art of taking good photographs.
Those of us defending JS or PHP or VB (in discussions which aren't about programming languages) aren't suggesting we should take a point-and-shoot (or a leica) to an action game.
> People arguing about programming languages are like people who focus more on cameras than on the art of taking good photographs.
Hmm... just to play on that metaphor: there are certainly camera choices that can make the process of learning to take good photographs easier or harder. Isn't that a relevant point?
ingent learning a few things about composition and picking an interesting place to take your first pictures than it is making sure you have the best camera.
You don't need to have the best camera, it's true. But you do need to have an adequate camera, where adequacy relates to the purposes you have.
For example, i used to have a little digital compact. It had autofocus; the autofocus wasn't perfect, or even particularly great, and there was no way at all to focus manually. I have countless pictures which were ruined by being out of focus, and there was nothing i could do about it. I now have a camera which lets me focus manually, which means that a picture's being in focus or not is now entirely in my hands. The former camera was not adequate for the photographs i wanted to take; this one is.
An interesting point is that a 40-year-old film camera would also have been adequate, although much less helpful in other ways.
This feels like it could be a good metaphor. C is a 40-year-old SLR covered in dials and switches, enormously capable but a nightmare to work with to anyone but a master; JavaScript is a digital compact which automates everything whether you like it or not. Java is a modern dSLR, capable and more automated than C, but still clunky. Rust is a Leica M9, still manual but modern in other respects. Go is a bafflingly-horrendous-to-outsiders Lomo camera. PHP is a Fisher-Price toy camera. Clojure is a Lytro, weird but capable of amazing things (but weird). Scala fans think their language an E-M5, but it's really an EOS M.
> The former camera was not adequate for the photographs i wanted to take; this one is.
Right, but that doesn't necessarily comment on its effectiveness as a tool to assist in learning how to take good photographs.
> An interesting point is that a 40-year-old film camera would also have been adequate, although much less helpful in other ways.
This is more in line with what I'm getting at. There are perfectly good (even great) cameras out there, but there are cameras that are better suited to helping you get up to facilitating the learning process, and others that will hamper it. While perhaps not the most essential component of the learning process, they still kind of matter and are a perfectly reasonable aspect for someone to discuss.
The language shape the minds, define the boundaries and the kind of solutions that can/can't be done in a reasonably time.
Look as pretending enlightenment to say that languages not matter, that only matter the man behind them. Well, is that is true, the mans behinds the languages mean nothing? Is only the work that create the ones using the languages that matter but not the work that make THAT possible?
The tool matter. You can build a city with only a hammer. But is stupid. Some languages ARE better than others. Some ARE faster. Some ARE more legible. Some ARE more performant. Some ARE safer. Some ARE more productive.
Maybe two languages too close in his objective give small returns, but surely exist order of magnitude improvements between different groups...
People arguing about programming languages are like people who focus more on cameras than on the art of taking good photographs.
Those of us defending JS or PHP or VB (in discussions which aren't about programming languages) aren't suggesting we should take a point-and-shoot (or a leica) to an action game.