4 ms·
I'd interpreted Blub not as any specific language, but rather any language has the capability to become Blub when a developer falls into a particular mindset.
by cubicle67 17y ago
I'd interpreted Blub not as any specific language, but rather any language has the capability to become Blub when a developer falls into a particular mindset.
To me, a language becomes Blub when the developer using it loses all inclination to look beyond it; to them there's no other language that could offer anything more. They can see language A that is obviously inferior as it doesn't offer feature X, yet at the same time there's no point in learning language B because they see no use in feature Y. After all, they've managed fine for years without it.
- tel 17y agoThat's how I interpret it as well, but in order for Blub to be an interesting thing experiment it makes the assumption that languages form some sort of continuum of power/ease/abstraction/usefulness. Generally, the only one of those four people can agree upon (sometimes) is abstraction and that's not even necessarily the most important of the four. I personally think one of the most interesting dimensions to analyze a language would be in how quickly one could prototype a problem. Lisp often is said to score well here; the Cs are thought to fall short; Arc was more or less designed to optimize this technique in online apps; and Haskell somehow manages to perform here despite a lot of criticisms in its design. So there's a hypothetical contiuum. Prove to me it exists and then you can pick your Blub.
- silentbicycle 17y agoPeople 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.