4 ms·
> Pick a language that most programmers consider weird but whose median user is smart I think this heuristic fails, with my poster-child counter-example being
by lisper 5y ago
> Pick a language that most programmers consider weird but whose median user is smart
I think this heuristic fails, with my poster-child counter-example being Nock and Hoon, the languages used to implement Urbit. Those languages are unquestionably weird, and I think their median user is pretty smart -- you have to be pretty smart to use those languages because they are intentionally designed to be difficult to use. But I don't see any merit whatsoever in Nock and Hoon, at least not with respect to giving you any leverage in programming. C++ is another example. It's not considered weird, but I think it would be if it were not so widely used. Again, to use C++ you have to be smart because you have to know the locations of a zillion and one hidden land mines. But the appeal of these languages is not the leverage they give you, it's the barrier to entry. Once you invest the time to learn them you become a member of an exclusive club. In the case of C++ at least, being a member of the club gives you leverage and opens up employment opportunities. But that doesn't make C++ a good language.
- PaulDavisThe1st 5y ago> But that doesn't make C++ a good language. TFA is about weird languages, not good (or bad) languages. It's about aspects of a programming language that are not part of the intersection of "95% of all programming languages".
- lisper 5y agoThe thesis is: > if you want to expand your concept of what programming can be, one way to do it is by learning weird languages. Implicit in this advice is that programming is actually a useful endeavor and not just a puzzle like sudoku that you engage in mainly to pass the time. And I'm saying that the weird-language heuristic is as likely to lead you to something sudoku-like, where you face a lot of interesting intellectual challenges, but at the end of the day you don't actually get any leverage towards doing anything that is actually useful, as it is to lead you to something with actual utility.
- PaulDavisThe1st 5y agoAbsolutely. However, I don't see a path from that to "XX is a (bad|not good) language".
- lisper 5y agoThere is no such thing as a good language or a bad language an an absolute sense. There are only languages that provide you with more leverage towards a certain goal and languages that provide you with less. Is brainfuck a good language or a bad one? If your goal is to write a high performance back-end for a web site, it's probably bad. If your goal is to pass some time trying to solve an intellectually challenging puzzle, it's probably good. But in general programming is viewed as something one does in order to achieve some practical purpose, not just to while away the hours. And with respect to that goal, "seek out weird languages" seems like a poor heuristic to me.
- PaulDavisThe1st 5y agoI was quoting you saying "But that doesn't make C++ a good language."
- jokethrowaway 5y agoBeing smart is not equivalent to "know the locations of a zillion and one hidden land mines". C and C++ were weird at the beginning and their median user was smart. They just become so mainstream that, for many, programming is programming in C-like languages. The majority of developers nowadays won't find new concepts, new ways of thinking by picking up C or C++, they're likely to have met those concepts already. If the majority of developers picked up Lisp or Haskell, they would likely discover new ways of thinking. This is changing, because popular features, abstractions and ways of thinking are trickling down from Lisp and Haskell to more mainstream languages.
- lisper 5y ago> Being smart is not equivalent to "know the locations of a zillion and one hidden land mines". That's right, and I never said they were equivalent. But I think being smart is a prerequisite to navigating C++. > If the majority of developers picked up Lisp or Haskell, they would likely discover new ways of thinking. Yes, I agree. But the problem is that the weird-language-with-smart-users heuristic is as likely to lead one to Nock and Hoon as it is to Lisp and Haskell, and I don't believe that you will discover new ways of thinking in the former. What you will discover (though it may take you a lifetime to realize this) is complex obfuscations of simple ideas that were discovered long ago.
- Ericson2314 5y agoBy the time you finish navigating C++, you have no smarts left over :D. Now, when I first modified Nix I saw some surprisingly readable C++, but this was all performance non-critical code where C++ wasn't needed. In situations where the use of C++ is actually justified, the weirdest is much more pronounced, and the cognative burden much worse. Definitely agree Urbit is a trap, though.
- caslon 5y agoC and C++ were never weird. In fact, C was criticized when it was new for being a "baby" version of better languages. Their median user was intentionally not smart; it aimed for an entirely different demographic of user, the common person.
- deleted 5y ago[deleted]