[HN Gopher] The Economics of Programming Languages [video]
       ___________________________________________________________________
        
       The Economics of Programming Languages [video]
        
       Author : satvikpendem
       Score  : 208 points
       Date   : 2023-10-06 02:11 UTC (2 days ago)
        
 (HTM) web link (www.youtube.com)
 (TXT) w3m dump (www.youtube.com)
        
       | baron816 wrote:
       | A talk on "the economics of programming languages" could go a
       | number of different ways. I'd like to see a talk (or maybe a
       | whole book) on how the evolution of programming languages over
       | the last 50 years has made it possible for multiple trillion
       | dollar companies to form and reshaped the whole global economy.
       | Like, these things wouldn't be possible if we were stuck with
       | Fortran.
       | 
       | I think there's an interesting discussion to be had about why all
       | these programming tools (languages, frameworks, version control,
       | other infrastructure) have made the job of software engineers so
       | much easier, and many more people have entered the profession as
       | a result, but the wages of software engineers has continued to
       | rise.
        
         | armchairhacker wrote:
         | > I think there's an interesting discussion to be had about why
         | all these programming tools (languages, frameworks, version
         | control, other infrastructure) have made the job of software
         | engineers so much easier, and many more people have entered the
         | profession as a result, but the wages of software engineers has
         | continued to rise.
         | 
         | More demand. As you've stated, we probably just wouldn't have
         | services like Google Docs if we were still writing code in
         | Fortran. But with the advent of better languages and tooling,
         | people replace old tasks (e.g. spreadsheets copywriting) with
         | automation, and create new types of software (video games,
         | social media, ads). Software engineers have become more
         | efficient but there's a need for more software engineers,
         | because there's a need for much more programming.
         | 
         | It's the same reason people still work a lot despite having
         | more and more automation: our expectations for a decent quality
         | of life (housing, shopping choices, machines) have increased.
         | Workers have become more efficient but there is much more work
         | to be done.
         | 
         | A lot of it is inefficiently too. I believe there are a lot of
         | "bullshit tech jobs" (see: ad creators), and software produced
         | with real money which really just isn't necessary. Similarly,
         | there are bullshit jobs in other fields (see: call centers);
         | things like huge houses and shopping choices which aren't
         | necessary, and there's a lot of waste (food, old stuff,
         | products designed to fail), which all cause society as a whole
         | to work much more than we really need to.
         | 
         | But it's not just inefficiency. There are a lot of problems we
         | simply couldn't tackle with old technology (be it software,
         | hardware, chemical manufacturing, healthcare) which we can
         | tackle now. So, better tools don't reduce jobs, they just
         | change how the jobs are done and what they're for.
        
       | 1-more wrote:
       | Brutal ending. Let me kick the tires on Elm types stored in
       | Postgres!
        
         | refset wrote:
         | I'm extremely keen to see what the SQL<->Elm experience might
         | be (assuming something like that is part of the deal too).
         | Simplifying how we interact with databases is arguably even
         | more important/$valuable than simplifying UIs.
        
           | 1-more wrote:
           | I strongly endorse having some fun with Lamdera then. Your
           | frontend and your backend are written in Elm. Your backend
           | state is the state of the world, and it is stored in a DB.
           | You write migrations that force you to have a safe
           | translation between versions. They answer the question of
           | "given a state of frontend and backend models and in flight
           | messages, how do we construct new versions of these things?"
           | And they can include "throw out that message" if you really
           | want.
        
           | carapace wrote:
           | FWIW, I'm about to try integrating Elm and Tau Prolog
           | (Prolog-in-JavaScript). I have a toy language that uses Elm
           | for the interpreter and Prolog for the type inference and I
           | want to make one of those nifty "try this language right in
           | the browser" things.
           | 
           | The "relations" in Prolog and SQL ("relational model") are
           | the same thing, and Prolog is arguably "nicer" than SQL?
           | 
           | https://en.wikipedia.org/wiki/Relational_model
        
         | iamwil wrote:
         | That part of the talk surprised me. It implies that you can
         | compile Elm into C? I wasn't aware that was in its
         | capabilities.
         | 
         | It seemed like a good idea worth exploring. I can see how he'd
         | get Jeff'd there.
        
           | 1-more wrote:
           | it's certainly not in the 0.19.1 compiler, but yeah you can
           | compile anything into anything when you're the compiler
           | writer (and he's a not bad compiler writer).
           | 
           | Lamdera, fwiw, is storing Elm states in a database right now.
           | It's a closed source fork of the Elm compiler. It's honestly
           | amazing, and it may be what Jeffs the official Elm on the DB.
           | IDK.
        
           | marcosdumay wrote:
           | You can compile almost anything into C. And if you can't, you
           | can always compile it to machine code with a C compatible
           | interface.
        
       | abdellah123 wrote:
       | Another very successful way to go about building a language is
       | Imba.
       | 
       | Build a successful product with new lang https://scrimba.com,
       | make sure the product's very hard to Jeff and take VC money.
       | 
       | Now you can work on the language as you please, and they can't
       | Jeff you since nobody else can build something similar (not in a
       | reasonable amount of time anyway)
       | 
       | P.S: taking VC money is optional. Scrimba is profitable so it
       | wasn't necessary.
        
         | otteromkram wrote:
         | Your product is a bootcamp with a Javascript abstraction and
         | you think Amazon can't replicate that?
         | 
         | How do you sell people on enrolling for a course that uses a
         | language that isn't used by any other company, which makes it
         | pretty useless outside of possibly teaching some high level
         | concepts?
        
         | tcbawo wrote:
         | What does "Jeff" mean in this case?
        
           | dcre wrote:
           | In the talk it's short for getting Jeff Bezos'd, i.e.,
           | someone with deep pockets easily replicating what you've
           | built on top of their own infrastructure (often cheaper for
           | them because of that infrastructure) after you showed there
           | was a market for it.
        
       | AndyKelley wrote:
       | If you want to dig into the economics of the "donation" model,
       | here's a talk I did at FOSSY in September:
       | 
       | Case Study: Zig Software Foundation by Andrew Kelley
       | 
       | https://archive.org/details/fossy2023_Case_Study_Zig_Softwar...
        
       | KolmogorovComp wrote:
       | Tangential: those slides are very slick, does someone know which
       | software was used?
        
         | refset wrote:
         | Almost certainly https://prezi.com/
        
           | deathtrader666 wrote:
           | Prezi was where Elm was conceived / sponsored.
        
             | lrx wrote:
             | Why did Prezi take Elm off the payroll?
        
               | timinou wrote:
               | He mentions it in the video. They couldn't rely on Elm,
               | which was too young at the time, for their migration away
               | from Flash. The scale of creating a language was too big
               | for Prezi's immediate needs back then
        
       | pjmlp wrote:
       | Great talk, and a good overview why having a better grammar and
       | semantics on their own doesn't matter, unless the rest is also
       | taken care of.
        
       | cloogshicer wrote:
       | The sad thing about this is:
       | 
       | Imagine how amazing our languages and tooling could be if there
       | was a happy path for talented people to work on this.
       | 
       | For example, the error messages in Elm are just insanely better
       | than in any other language I know. Like, it's not even in the
       | same ballpark. Why doesn't every language have this?
       | 
       | But that's just an example. In general, I think we under-invest
       | in tooling.
        
         | CSSer wrote:
         | Oh, absolutely. This came up in a conversation I had with a
         | friend last night about antitrust in tech. Not only do we
         | underinvest in tooling but only the largest companies have the
         | spare time and resources to do so.
         | 
         | I think this has led to many modern open innovations only
         | realistically being useful for solving the problems of very
         | large companies.
         | 
         | On a cynical day I might even accuse certain tools of being
         | designed that way for job security. Or at least it looks that
         | way because the majority of people who are using the tool could
         | only dream of getting approval from management to make a better
         | alternative.
         | 
         | The priorities of many of the tool maintainers, no matter how
         | honest, just don't match like they used to, and this is in an
         | ecosystem awash with telemetry.
        
         | vlovich123 wrote:
         | Can you give an example? I find Rust's error messages to be
         | also very good in most cases, but I've been in C/C++ land so
         | long I don't know what the state of the art actually looks
         | like. Also, do you think Elm's error messages come from a
         | simpler language design? For example, some of Rust's ability to
         | provide better error messages come from the language
         | improvements relative to C/C++ itself I think.
        
           | mbStavola wrote:
           | Fun fact, Rust's human readable errors were inspired by
           | elm[1].
           | 
           | [1]: https://blog.rust-lang.org/2016/08/10/Shape-of-errors-
           | to-com...
        
           | [deleted]
        
           | diggan wrote:
           | I'm fairly sure I read somewhere that Rust error messages
           | were inspired by the great error messages popularized by Elm.
           | 
           | And in most cases, it's just a matter of sitting down and
           | really thinking about what is the best error message you
           | could provide in that specific scenario, what context is
           | needed any so on. Instead of just writing down the first
           | thing that comes to your mind, and never iterating on it ever
           | again.
        
       | bbkane wrote:
       | I find the "state of Elm" over the past couple of years
       | absolutely fascinating. Some folks reasonably claim the language
       | is dead and absolutely not suitable for production due to
       | scarcity of updates, public roadmap, or bug fixes. Others run Elm
       | in production and reasonably claim it's perfect/stable already.
       | There's a steady stream of blog and forum posts on this argument.
       | I read them all.
        
         | dartos wrote:
         | There are only 2 kinds of tools.
         | 
         | Tools people complain about And tools nobody use.
        
           | pcstl wrote:
           | Yeah, I don't think this quote fits here.
           | 
           | Elm had a massive shot at making the big time circa
           | 2015-2016. If they hadn't blown that shot, yeah, they'd be
           | the kind of tool a lot of people use and complain about. But
           | what I see when it comes to Elm is a lot of people who _don
           | 't_ use the language shaking their heads in frustration at
           | what they see as missed potential, while a handful of people
           | who _do_ use the language insist that it 's perfect and
           | unchangeable and that Evan could never ever make a bad
           | decision, all the people who disagree must just be short-
           | sighted.
        
           | satvikpendem wrote:
           | As the sibling comment implies, the fact that we see fewer
           | and fewer complaints compared to a few years ago leads me to
           | believe that Elm usage is dying.
        
         | noelwelsh wrote:
         | Agreed. It's amazing how much history is determined by small
         | decisions. As another commenter said, Elm completely blew their
         | chance, which is essentially down to the actions of one guy
         | making what seem, from the outside, obviously bad decisions. At
         | a meta level, there has long been demand for a modern ML but
         | all the contenders have fumbled the bag in various ways. E.g.
         | OCaml was "nah, multi-core isn't important" for at least a
         | decade.
        
           | pharmakom wrote:
           | F# is the most popular ML derivative now. If it had a few
           | more of the type system features in OCaml it would be
           | perfect.
        
         | xtian wrote:
         | It's because the only people left in the Elm community are
         | those who are content with its current state and aren't
         | interested in having a stake in the future direction of core
         | components or in even knowing whether there is a direction.
        
       | davidw wrote:
       | I wrote about this subject a while back. I'd be curious to read
       | an 'article version' of his talk.
       | 
       | https://www.welton.it/articles/programming_language_economic...
        
         | layer8 wrote:
         | Your article is more about the economics of using a language,
         | while Evan's talk is about the economics of developing a
         | language.
         | 
         | Your choice of examples also dates you as being roughly 20
         | years older than Evan. ;)
        
           | davidw wrote:
           | Well, yeah, I wrote the article nearly 20 years ago. I still
           | think the fundamental forces at work are pretty similar
           | though.
           | 
           | The economics of creating a programming language are similar
           | to most other open source software economics, although even
           | proprietary languages need a way to get an initial user base.
           | In some cases that's easier, as a large company can force a
           | language for some important environment like writing iOS
           | apps.
        
             | layer8 wrote:
             | Ah, I missed the date, and "a while back" sounded more
             | recent to me.
             | 
             | I think your article and Evan's talk are largely
             | complementary.
        
       | satvikpendem wrote:
       | Interesting, I posted this a couple days ago but it now seems to
       | have gotten into the second-chance pool.
       | 
       | I used to use Elm, but after all of their hostility to their own
       | users (which you can see with a cursory search online) and the
       | growing popularity of TypeScript, I stopped using it, even though
       | TS is in some ways worse. But sometimes, worse is better, and
       | sometimes, you just want to get things done.
        
         | continuational wrote:
         | I don't know what to search for - can you elaborate?
        
           | satvikpendem wrote:
           | If you search on HN for Elm, you'll find several articles: ht
           | tps://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
           | 
           | The one that's most talked about is the top one as of this
           | writing, Why I'm Leaving Elm. You'll find some examples in
           | there.
        
             | bbkane wrote:
             | Also head to the Elm subreddit or the Elm discourse forum
             | and sort by "top all time"
        
               | jpcfl wrote:
               | Tbf, Reddit is pretty hostile in general.
        
               | nyssos wrote:
               | That's not the sense in which Elm is hostile. It's
               | hostile as in 1990s Microsoft. There are lots of little
               | things, but the big ones are:
               | 
               | - the compiler detects whether it's compiling core
               | libraries and disables some features if it's not
               | 
               | - you can't choose your own package set, even locally
        
               | foobiekr wrote:
               | That doesn't make the top posts unfair or valueless.
        
       | poidos wrote:
       | I was lucky enough to be in attendance for this one. Loved the
       | energy in the room during this fantastic talk.
        
         | ad404b8a372f2b9 wrote:
         | The presenter is hilarious! I've rarely seen an engineer with
         | such charisma.
        
       | zoogeny wrote:
       | I love this talk for a lot of reasons. Mostly because it
       | crystalizes a lot of feelings I have been having about "Open
       | Source" as a general concept. His conclusion that Open Source is
       | for big companies and not small developers is a really compelling
       | conclusion (IMO). The fact that a lot of open source projects
       | support massive corporate rent-seeking (directly or indirectly)
       | is a great example.
       | 
       | My spiciest take for 2023 is that the development community is
       | going to start waking up to the realities of asymmetry between
       | the kind of open source models made possible by the largess of
       | massive billion dollar corporations and the kind of open source
       | made possible by individual developers working on passion
       | projects.
       | 
       | It probably helps that I am aligned with what Evan is saying in
       | some meta sense. We really need to zoom out from the viewpoint of
       | being the benefactors of seemingly "open" projects like Chrome. I
       | even see in these comments some pot-shots at the Elm community
       | and leadership for being extremely protective of their project
       | when faced with unwanted and undesirable intrusions.
       | 
       | It is also interesting that this comes not long after I ran into
       | Golang debating an updated json library for its stdlib [1]. What
       | I want to say about that is, there is almost no universe I would
       | be willing to put up with that community feedback. Any human with
       | the stamina to respond to aggressive and persistent haranguing
       | and nitpicking has more patience than I will ever have. So if the
       | majority of criticism of Elm is that they exclude those kinds of
       | people from their community then I totally understand it. Even if
       | you paid me a 300k TOC FAANG salary there is no way I'm dealing
       | with those kind of people, forget about it for a project of my
       | own passion. Thank you for your interest, but please take your
       | "help" anywhere else.
       | 
       | His conclusion is bleak and a bigger warning than most realize.
       | How many people have amazing ideas on their laptops in a proof-
       | of-concept state right now but they don't know what to do? One on
       | hand is the specter of entitled expectation from a legion of
       | idiots who have been conditioned on the open source models made
       | possible by huge corporations. On the other are the corporations
       | salivating at Apache, MIT and BSD licensed free software they can
       | host for almost no cost. And as he points out - the current
       | alternatives for funding are totally inadequate.
       | 
       | 1. https://github.com/golang/go/discussions/63397
        
         | pcstl wrote:
         | I don't think it's very charitable of you to assume that the
         | massive amount of people who have left the Elm community are
         | all, and I quote: "a legion of idiots who have been conditioned
         | on the open source models made possible by huge corporations".
         | 
         | I get the point you're trying to make here, and I agree that
         | funding from big corporations has fundamentally distorted the
         | open-source landscape in ways that might not be the most
         | desirable, but we can acknowledge that without invalidating
         | people who believe that the Elm project has been mismanaged by
         | just assigning them to some "those kinds of people" bin.
        
           | zoogeny wrote:
           | I'm not above using inflammatory language when I want to and
           | I don't subscribe to tone-policing in general. But in the
           | context of the paragraph you quoted, "a legion of idiots"
           | refers explicitly to a _specter_ in the mind of any person
           | with code written that's considering releasing it open
           | source. It does not refer to any specific individual,
           | situation, project, etc. It is a fear of the mob and of the
           | dog-piling we so often see in open source communities.
           | 
           | But to continue on the topic you brought up - I am also not
           | interested in calling out people who decide a project is not
           | for them and decide to walk away. I am calling out people who
           | jump into discussions about the core fundamentals of projects
           | that they are not currently contributing to and turn those
           | discussions in a hostile direction. Once they realize that
           | their technical contributions are not wanted they turn to
           | character and reputation attacks against the project owners
           | and core contributors. Even if one out of one hundred users
           | matches this description, you end up with a situation most
           | sane individuals want to avoid at all costs.
           | 
           | So there is no invalidation of people who believe Elm went in
           | the wrong direction. There isn't invalidation of people who
           | wish to express that opinion publicly and even on project
           | hosted forums, chats, bug-lists, etc. It is against those who
           | go the "extra mile" and persistently push for changes even
           | after they have been rejected and who resort to attacks on a
           | person's character or reputation when they fail to get their
           | way. And it is against those who defend such behavior by
           | invoking some unspoken rules of open source development.
        
             | xtian wrote:
             | > There isn't invalidation of people who wish to express
             | that opinion publicly and even on project hosted forums,
             | chats, bug-lists, etc
             | 
             | This was and I believe still is disallowed on any
             | communication venues controlled by the Elm core team. Any
             | discussion of alternative designs or workarounds was shut
             | down and deleted, regardless of tone.
        
             | pcstl wrote:
             | That is fair enough. And sorry if I seemed like I was
             | policing your tone, I was actually just disagreeing with a
             | certain characterization of the situation.
        
               | otteromkram wrote:
               | [flagged]
        
               | pcstl wrote:
               | Are these "woke SJWs" in the room with us right now?
        
         | pjmlp wrote:
         | Recently someone made a quote on twitter asserting that trying
         | to live from open source without a proper business plan, is
         | like hoping people listening for free music radio will actually
         | buy the record.
         | 
         | Or as I like to point out, living as street artist.
         | 
         | Sure one does get some money out of it, yet on its own its
         | isn't going to pay all the bills.
        
           | waveBidder wrote:
           | both of these people are making non-exclusionary public
           | goods, so yeah, the parallel is valid. Lots of non-physical
           | goods fit in the same category (when we haven't hamfistedly
           | tried to make them exclusionary), our mechanisms for getting
           | creators rewarded for their efforts suck.
        
             | aksss wrote:
             | We often think the critical skill is being able to create
             | something of value, but unless it's charity (which has
             | value, dgmw) the critical skill is being able to create
             | something of value to others and then to protect the
             | potential returns. Specifically, this means protecting it
             | from thieves, absconders, seizures, penalties, etc. It's
             | like people saying that good ideas are a dime a dozen, the
             | important thing is execution. Well, one level beyond that
             | is that "execution/schmexecution" - the important thing is
             | capturing a return.
             | 
             | To that end, it's worth asking why our "mechanisms for
             | getting creators rewarded for their efforts suck". Is it
             | because copyright is too weak/too strong? Is it because
             | patent process is overly burdensome/costly/a joke? I don't
             | know, but I empathize with your points entirely and think
             | it's worth thinking about.
             | 
             | Personally, I think there's room for more nuance in the
             | commercial/non-commercial licensing dichotomy.
             | Specifically, instead of using that as a breakpoint for
             | charging licensing fees, maybe having some revenue
             | threshold after which payments need to be made. I was about
             | to say into a general fund to support open-source
             | developers generally, but that would be ripe for
             | corruption, rent-seeking, and self-dealing (like union
             | administration). Better to go straight back to sponsor the
             | project, IMO. Some products do this - free for
             | organizations with less than x revenue. I've not really
             | seen it much in open source though. Some tooling to make
             | this "10 times easier" could be the next github.
             | 
             | But this problem has plagued inventors/creators of all
             | eras. It does seem like we have better tools than ever to
             | deal with it - telemetry, micropayments, etc.
        
         | skybrian wrote:
         | A more optimistic take would be that open source is one way
         | that big companies indirectly and somewhat inadvertently
         | support small ones.
         | 
         | This means the code might be tackling problems that small
         | companies don't have, though. It might be more complicated than
         | you need.
         | 
         | Maybe it's bleak if you care about control issues (governance)
         | or you want to make money off open source? But as a source of
         | free, possibly useful stuff, it's pretty good.
        
       | brabel wrote:
       | About Dart: it only got several people working on it and given
       | proper attention because of Flutter... before Flutter, it was
       | really close to die after the bet on replacing JS in browsers
       | didn't work out.
       | 
       | Flutter seems to be a revenue maker for Google (which should
       | explain why it has gained so much attention - just look at the
       | StackOverflow tag for Flutter, or their Youtube Channel - it's
       | really, really active and the pub.dev package manager has grown
       | immensely lately, to the point there's packages to do nearly
       | anything in Dart/Flutter), but I am not sure how exactly given
       | both Dart and Flutter are open source! Are the big users of
       | Flutter giving Google big money?? Or how does that work?
        
         | zigzag312 wrote:
         | I would guess easy integration with Google's cloud services
         | like Firebase and promotion of these services within Flutter's
         | docs, brings more costumers these services.
        
           | [deleted]
        
         | danielvaughn wrote:
         | I'm curious why Dart was chosen over Go, seeing as Google
         | created both, and Go has far more interest and activity.
        
           | chairhairair wrote:
           | https://docs.flutter.dev/resources/faq#why-did-flutter-
           | choos...
           | 
           | Lots of other links you can find that explain the choice.
        
         | skybrian wrote:
         | I worked on the Dart team at around that time. After
         | integrating Dart into Chrome was cancelled, the team got moved
         | from Chrome to Ads, because Ads was migrating all their
         | websites from GWT to Dart. This isn't something anyone outside
         | Google cares about, but it meant that it was consistently
         | staffed as they looked for other big customers.
         | 
         | Also, the ads codebase is enormous, so there are plenty of
         | technical challenges from getting language infrastructure to
         | scale to their needs. (Consider getting a language server for
         | an IDE to scale up as a codebase grows, or making the language
         | tools generate efficient JavaScript that's not unreasonably
         | slow to download, or loading and displaying large tables in the
         | browser.)
         | 
         | I have no idea whether Flutter generates revenue directly. I'd
         | guess not, but internal usage of Flutter is likely enough to
         | justify having a team devoted to maintaining and improving it.
        
       | alexashka wrote:
       | The talk is a nice combo of informative and entertaining.
       | 
       | I liked the ending of 'now that I've proven myself to be capable
       | and likeable, someone give me money for this new thing I've been
       | working on'. Very shrewd 'self marketing'.
       | 
       | For all this talk of free markets and whatever, we still live in
       | a world of rich but bored and creative but poor.
        
       | anotherhue wrote:
       | Anyone have any bright ideas as to how we can change these
       | economics? Zig foundation is interesting.
        
         | sseagull wrote:
         | I'll be kinda honest here, but one thing that pops into my head
         | is to stop developing so many new languages and workflows. It's
         | hard to build any sort of critical mass (paying or not) around
         | hundreds or thousands of tiny communities.
         | 
         | I'm not saying there needs to be only one programming language
         | out there, but I get overwhelmed at the fragmentation. I am
         | someone who programs to get things done not to sit back in awe
         | at the beauty of programming languages, and there have been
         | small projects that I have wanted to do that were impossible
         | because my dependencies were spread across different languages
         | (some of which I was not familiar with).
        
           | dfee wrote:
           | Not an interesting take.
           | 
           | You want to benefit off the work of others, and bear zero
           | cost. What if you just built those libraries yourself, or
           | paid someone else to do it for you?
           | 
           | And on language creation and development, why should we stop
           | exploring, discovering and innovating? To make _you_ more
           | productive? What a joke.
        
             | sseagull wrote:
             | > You want to benefit off the work of others, and bear zero
             | cost. What if you just built those libraries yourself
             | 
             | No one can do that to any large scale. That is all there is
             | to say about that.
             | 
             | And all my projects are open source. I give back to the
             | community and to science (see below).
             | 
             | > To make you more productive?
             | 
             | There's intent, and then there's reality.
             | 
             | I work in scientific programming, and scientists are
             | absolutely _struggling_ with software development. Not
             | programming, but everything related to package management,
             | version control, distribution, different languages,
             | incompatible ecosystems, etc.
             | 
             | There is complexity in the boundaries of packages,
             | languages, and ecosystems. That is unsolved and no one
             | seems to care about it as long as you can do this cool
             | things with your own language.
             | 
             | Someone's intent could be to make python package management
             | easier. The reality is that having only a few people adopt
             | that can make the entire community suffer.
        
           | corinroyal wrote:
           | This. So many languages I run across would have been better
           | off as a domain-specific language hosted on top of Common
           | Lisp. Instead of learning a new language, we could grow our
           | vocabulary.
        
           | pcstl wrote:
           | Fragmentation is a problem that solves itself, though. People
           | tend to preferentially attach to larger communities and small
           | communities tend to evaporate into a "hard core" of very
           | dedicated people. If you look at the market as a whole, Java,
           | JS, C# and other mainstream stuff is still most of
           | everything. Whether that's good or not is a different issue.
        
           | foobiekr wrote:
           | You're getting downvoted but I agree with this. Fragmentation
           | tends to become a pathological situation where the ecosystem
           | ends up consisting of mostly promising but half baked
           | solutions and h th is gets dominated by big, boring, awful
           | but corporate financed solutions.
           | 
           | I know a lot of people like Java but Java is exactly that.
        
         | carapace wrote:
         | If I may stand on your soapbox for a moment, changing economics
         | is the whole point of computers and software.
         | 
         | We have Turing's _Universal Machine_ , we have _transistors_.
         | Science and capitalism have delivered technology and wealth. We
         | won history.
         | 
         | The obvious thing to do is apply our technology and resources
         | to provide a basic level of quality of life to everyone (i.e.
         | knockout the lower levels of Maslow's hierarchy.) Build a
         | simple and efficient regenerative machine to provide food,
         | shelter, clothing, some medicines, building material, etc. It
         | would look like a neighborhood.
         | 
         | Then people like Evan Czaplicki could just do whatever they
         | wanted to without having to worry about making money. Also
         | everybody else.
         | 
         | We do this because: A) We can. B) Not to do so is cruel.
        
         | brabel wrote:
         | Zig is a really interesting case... it seems Andrew Kelly has
         | been able to get from a small Patreon donation model to support
         | his own modest salary, to a Foundation that is sponsored by
         | several big names and has enough funds to pay several people to
         | work on Zig full time.
         | 
         | I've watched Elm for many years from a distance, and I think
         | that with a little more "social skills", Evan could've probably
         | done the same as Elm had quite a lot of hype a few years ago...
         | notice that even though Andrew may be a bit more charismatic
         | (though I find Evan really nice too) he also has a bit of a
         | hardline regarding features, specially requests by sponsors are
         | not treated specially in any way - there's a talk from an Uber
         | employee where he mention that after getting Uber to sponsor
         | Zig, they asked about some issues they'd created and were told
         | very, very clearly that sponsorships don't come with "perks"
         | like having your issues given priority!
        
           | foobiekr wrote:
           | That's wrong though. Sponsorships that do come with perks low
           | negotiating a mutually beneficial position. A valid take
           | would have been to work out some kind of NRE scheme or
           | contracting scheme.
        
         | dustingetz wrote:
         | build a killer app (web browser) build scripting language into
         | app (javascript)
         | 
         | corollary: if no killer app, not killer language
        
       | hardwaregeek wrote:
       | I got to see this talk irl and it was definitely one of the
       | highlights of the conference. It did make me feel a little bad
       | for how many times I've ragged on programming languages for
       | having poor UX/tooling, even though it's pretty unrealistic to
       | expect a community driven project to invest the thousands of
       | developer hours. I do wonder if there are ways to lower that
       | burden, although that still doesn't help with the cost of support
       | and developer relations.
        
         | sbergot wrote:
         | The Language Server Protocol is a newish thing that allowed
         | some languages to gain more tooling for cheaper. I have a ton
         | of respect for MS for doing this. They didn't need to do it
         | that way. Tooling is still a ton of work and the protocol seems
         | to have issue but looking the adoption it seems that a lot of
         | project are finding value in it both on editors and language
         | sides.
        
           | hardwaregeek wrote:
           | Yeah I've written about what I call "Tooling for Tooling",
           | stuff like the LSP or tree-sitter that make it easier for
           | language authors to build out their tooling ecosystem. I wish
           | people invested more into these sorts of projects so we could
           | raise the standard of tooling for everyone.
        
             | 1-more wrote:
             | I felt like a danged genius when I got a competent Rust
             | writer at work to help me put the Elm LSP or tree sitter or
             | whatever it was to work in Difftastic. Standing on the
             | shoulders of a few giants at the same time.
        
             | danielvaughn wrote:
             | Yeah, as someone who's actively building a language right
             | now, I can attest that the process is rough. Rough in the
             | sense that I need to invest heavily into putting together
             | my own set of tooling. It's a non-trivial exercise, to say
             | the least.
        
               | otteromkram wrote:
               | Why are you creating a language? There aren't enough good
               | ones out there to cover your use case(s)?
        
               | danielvaughn wrote:
               | Yep, I'm trying to build a language that allows UI
               | designers to express their design decisions:
               | https://matry.design
        
               | throwaway17_17 wrote:
               | Not who you asked, but for me (I use a custom language
               | for work) it was a matter of being able to do what I
               | wanted, in the way I wanted. The other added benefits
               | were I could ensure that code I wrote for clients and for
               | my employer met the ethical and professional obligations
               | that I incur as an attorney. The only downside (according
               | to others) is that my language implementation belongs to
               | my employer, the theoretical foundation and language
               | definition are owned by me. Overall, I feel more
               | productive and I feel like the value I deliver is greater
               | than it would be in another language.
        
               | danielvaughn wrote:
               | Please tell me you called it legalese.
               | 
               | Jokes aside, that's a really interesting use case. I've
               | often wondered how laws, and changes to them over time,
               | are recorded. It seems like the kind of thing that could
               | be made more efficient with a formal syntax along with
               | version control.
        
               | throwaway17_17 wrote:
               | I now regret that I didn't have that thought myself. As
               | to the encoding of laws formally, I know there are some
               | existing attempts to achieve that, but that type of thing
               | doesn't really apply in my line of work. I do however
               | have a database version of the statutes that keeps the
               | textual history and is searchable implemented.
        
               | cinntaile wrote:
               | Looking at his Github he seems to be creating a
               | programming language for UI designers.
        
               | danielvaughn wrote:
               | Thanks, yeah that's what I'm doing. I've called it a
               | programming language as a colloquialism. But it's not
               | strictly speaking a "programming" language as it's only
               | meant to spec out UI designs, not implement functional
               | behavior.
        
               | hardwaregeek wrote:
               | Why not? It's fun and a cool exercise. It's like writing
               | songs. They may not be hits but they can still be fun to
               | make.
        
           | tester756 wrote:
           | There's also Debugger Adapter Protocol iirc.
        
           | owlstuffing wrote:
           | LSP is a double-edge sword. Indeed, it offers a quicker path
           | from a zero IDE support position, which is a boon not only to
           | language authors but also to the hosting IDE. MS I'm sure
           | recognized the leverage potential of the latter. For them
           | faster onboarding meant all the difference, and it worked.
           | 
           | The downside is the nature of LSP, which is to say it is
           | necessarily a common denominator API. As a result a tool
           | built on LSP-based API tends to be significantly inferior
           | compared with similar tools built on comprehensive,
           | proprietary APIs. For instance, the IntelliJ IDEA Open API
           | illustrates this advantage quite well.
           | 
           | Thus, the economically rich tool authors maintain a clear
           | advantage _if dev experience is the key differentiator_.
        
             | adonovan wrote:
             | True, but I guess the amount of work that goes into a
             | proprietary bespoke IDE is on another order of magnitude.
             | For example our team maintains an LSP server for Go with
             | only about 3 FTE, but I guess JetBrains has a much larger
             | team devoted to Goland (a bespoke IDE), and benefits from
             | common infrastructure with their IDEs for Java and other
             | languages.
        
         | citruscomputing wrote:
         | Also got to see it live, agreed. Sat with my friend who gave a
         | talk earlier about developing programming languages, and who
         | was hoping for answers on how to get paid to do it. Funny how
         | the talk ended.
         | 
         | I think I get the Clojure guy now.
        
           | gtani wrote:
           | I'm always rooting for projects like zig, odin, vale, nim,
           | even jai. I think some killer apps are JS runtimes and
           | defensive security, making eBPF more straightforward (and
           | whatever tigerbeetle does... )
        
         | mike_hearn wrote:
         | There are projects that try to do this, but you do have to use
         | them.
         | 
         | LLVM is one. That's pretty successful.
         | 
         | The JVM is another. That's very successful, there are lots of
         | languages that build on the JVM to reduce their tooling costs.
         | Java, Kotlin and Clojure are examples of that.
         | 
         | GraalVM is another. If you use their Truffle framework then you
         | get JIT compilation, debugging, tracing, instrumentation,
         | different kinds of interpreters, advanced strings, some LSP
         | support, language interop and FFIs and more.
         | 
         | But what you see, generally, language authors tend to start by
         | hacking together a compiler and standard library starting from
         | a C hello world program. Not that many survey the landscape and
         | look for ways to reduce the costs.
        
           | chriswarbo wrote:
           | Racket, PyPy and Parrot (RIP) are also designed to host
           | multiple languages. BEAM is another interesting VM (fault-
           | tolerance, distributed systems, live updates, etc.). GNU has
           | a bunch of projects to help language implementers, like
           | Lightning, Jitter, libjit, superopt, etc. Eclipse's Xtext
           | lives in the same space as tree-sitter and (to some extent)
           | LSP.
        
           | hardwaregeek wrote:
           | Yeah part of the issue is that language designers by
           | definition have not-invented-here syndrome. So it takes a lot
           | to convince them to not write it themselves. LLVM has solved
           | a sufficiently hard problem that it's gotten over this
           | barrier, but other meta-tools will likely struggle to achieve
           | that
        
       ___________________________________________________________________
       (page generated 2023-10-08 23:00 UTC)