1. 3
  1.  

  2. 7

    Replying here because his blog would need Google Auth to comment..

    First off, author seems to have been around as a ‘hacker’ for well over a decade (blog goes back to 2004) so he likely hawks from a time when one could witness most (lasting, long-term impactful) computing innovation being driven almost entirely by enthusiastic hobbyists in their unpaid own free time. The same goes for most any “new language invented” even today! Is what was good for the goose back then, now bad for the gander?

    One example is library ecosystems. Every new language needs a set of libraries for commonly used functionality. Some of those libraries can be bindings to existing libraries in other languages, but it’s common for new languages to trigger reimplementation of, e.g., container data structures, HTTP clients, and random number generators.

    This is the main reason I’m even commenting.. I was pondering this: imagine most “language creators” converge on utilizing LLVM initially, so they won’t need to implement their own high-perf interpreter and/or JIT and/or lang-to-asm compiler and can focus on their languages’ semantics and designs. Why shouldn’t a common set of “standard libs in LLVM-IR” to be shared by all these (and future) custom langs evolve? And if so, why hasn’t it happened yet? (Or has it?)

    (edit: figured I’d ask at https://www.reddit.com/r/LLVM/comments/9kov47/are_there_or_have_there_been_any/ )

    If the new language did not exist, that effort could have been spent on improving existing libraries or some other useful endeavour.

    Yes, and if people didn’t spend their own free time on Candycrush, Farmville, Instagram, Netflix, Youtube, Steam, sportsball, their families, literature etc they could .. mine bitcoins for you (or me), drive down your (and my) food prices by growing edibles or raising lifestock, or indeed improve the existing libraries you (or I) use. Guess it wasn’t meant to happen?

    Another example is community support. Every new language needs an online community (IRC, StackOverflow, etc) for developers to help one another with questions. Fragmenting users across communities makes it harder for people to find answers.

    What happened to the old hacker mindset? Are you truly optimizing for people who get substantially slowed down by “harder to find answers”? Remember when all we had was library books, magazine source-code print-outs, and trial-and-error?

    However, I hope people consider carefully the social costs of creating a new programming language especially if it becomes popular, and understand that in some cases creating a popular new language could actually be irresponsible.

    There’s probably some 7.5 billion “perfect languages” (each molded to one individual’s unique brain) that haven’t been written. But let’s draw an arbitrary line at this exact moment in time and say “we have enough now, just take what you find already existing, mold and bend your mind around it instead, and shut down your current favorite hobby”. Or maybe we should go back in time and tell the Guido van Rossums, Larry Walls, Brendan Eichs, Yukihiro Matsumotos what you wrote here. In fact, what you wrote has been as “true” 10, 20, even 30 years ago as today — comparing the scales between programmer numbers and languages. Consider this: the number of programmers has ~doubled every ~five years for some ~4-6 decades now. If the same was true for new-language-projects, it might feel insane but also might be quite natural. In fact would be a good sign, indicating that we continue to win ‘true enthusiasts’ rather than “bootcamp’d mere-jobbers”.

    TL;DR: well, overall sloppy/incomplete thinking AFAICT in OP but it was really the “LLVM-IR stdlib?” ponderings that had me reply here =)

    1. 3

      What happened to the old hacker mindset?

      It is at risk of being drowned by cries for the collective conformist good.

      1. 1

        Why shouldn’t a common set of “standard libs in LLVM-IR” to be shared by all these (and future) custom langs evolve?

        Well, it has happened before, for another language. We call it libc.

      2. 3

        I don’t buy into the argument. If I start an application in rust I am already set up with an ecosystem and a dependency resolution mechanism that is more accessible than c++. Sure if you know your way around c++ you might know where to find what library. But a moderately sized community with the typical infrastructure is already providing enough infrastructure.

        Then we have a lot of languages that cross-compile onto a platform like java, .net, JavaScript. Which means you have another syntax, some idioms ay your fingertips and you are standing on the shoulder of giants in terms of infrastructure backup.

        I even would refute the notion that fragmentation is a recent phenomenon. Developers consolidating on c, java, vb and c++ is kind of 90ish, 2000ish. Before we had a large heterogeneous language and dialect situations with all kinds of different systems. Think about these Pascals, basics, smalltalks, lisps.

        1. 1

          Quite a disappointing article from a talented individual, both in ethic and work output.

          I’ll talk only from my own perspective. I’m possessed by a vision of computing that is a bit simpler than the full-on crazy that we experience now. I want it all: the type safety of Haskell, the fluency of Lisp/Smalltalk, the runtime of Erlang. I cannot shake it fully; I walk away from it sometimes to get a breath of fresh air but am back to dreaming/sketching/searching for it within a few weeks. Apparently, I’m happy to get lost in the enormous world of PL looking for something I cannot quite put words to.

          I’ve spent my whole career looking for something meaningful and significant to work on. I’m sick of industry cheering on people to build shoddier and shoddier bikesheds when all I want to work on are cathedrals. And I don’t have the luxury of corporate megacorps to pad my resume with so people fall over themselves to give me jobs that let me work on PL.

          So, no, I’m not going to stop working on new PLs, even if no one uses them.

          1. 1

            I’m possessed by a vision of computing that is a bit simpler than the full-on crazy that we experience now.

            You’re not alone in this sentiment and a lot of people have been searching for “ways out of the mess” and looking for the tipping points in the past that allowed for these dynamics to unravel up til today. You might enjoy some older articles of a rather outspoken blogger at loper-os.org — not wholly sharing all his judgments but haven’t encountered many others who “kept digging” quite so stubbornly and took off not just their first outermost layer of rose-coloured glasses but all the lower ones, too =) he was/is quite enamoured with the old Lisp machines and while I find them a bit simplistic / overhyped with regards to the typical real-world end-user ‘requirements’/‘needs’/wishes/whims, his core message also applies to the old 80s home computers with nothing but Basic on them: users both had to (but also were enabled and empower to) become the “master of all they survey”.

            I’m sick of industry cheering on people to build shoddier and shoddier bikesheds when all I want to work on are cathedrals.

            I shared the above mostly just because you mentioned cathedrals, which he also very intelligently referred to in some comments (not Search-able it seems right now, though). You might find quite a few inspiring strands of thought over there — among quite a bit of noisy ranty pointless flamewars too, admittedly. There’s gems in there wrt your standpoint.

            (Fair word of warning, his final conclusion was that von-Neumann is fully hostile to devising a humane and sane computing landscape, and eyed https://en.wikipedia.org/wiki/Dataflow_architecture as a way out.. he might be right but I’m not suffering enough from / still enjoying programming against affordable, ubiquitous von-Neumann consumer hardware too much to follow down that hole!)