3 ms·
People seem to assume that there's a linear continuum with a "best" language, rather than thinking that certain languages' designs make them better suited to ha
by silentbicycle 17y ago
People seem to assume that there's a linear continuum with a "best" language, rather than thinking that certain languages' designs make them better suited to handling certain kinds of problems.
For example, sometimes lazy evaluation greatly simplifies problems, and sometimes it makes them vastly more difficult to reason about. The language is just a tool to help clarify and solve your problem, and a language that doesn't fit can make it worse.
- tel 17y agoWithin some problem spaces might it not be true the some languages are somewhat definitively better than others on average? Knowing many languages definitely operates as a toolbelt for different problems, but there's a reason languages die out. Could that same reason not still apply, at least slightly, in the languages still alive?
- silentbicycle 17y agoOh, of course. Within specific problem spaces, there are many languages that are laughably inappropriate. The constraints over languages have also changed over time, though. For example, in _Coders at Work_, a couple people mention logic programming as an idea worth digging into again now that computers have gotten orders of magnitude faster. I think they're onto something. I just take issue with how some particularly vocal Lispers have been sitting on the sidelines going, "Our language is THE BEST LANGUAGE" for decades. ("Sick of being a blub programmer and working in Blub? Try our Language For Smart People.") They're so used to being smug because their language was thirty years ahead of its time, fifty years ago.
- tel 17y agoThere is undoubtedly specialization, but I also believe in a linear continuum across efficiency. Any programming problem, at some level, ends up including solving a constraint problem: how do you fit your solution elegantly into an initially unknown problem space? Greater expressive freedom and abstraction are often heralded as wins in programming languages perhaps because they both promote though toward elegant solutions and then provide the structure necessary to easily build them. I think that this kind of test is not so different from testing something like Sapir-Whorf. Does using language X by itself help someone to solve problems more quickly/elegantly/efficiently/effectively? So, instead of considering specialization to be multidimensional and therefore impossible to quantify, I'm thinking of it as something you'd "just" need to control for. Randomization across a large number of programming problems could possibly get a handle on that control.