[HN Gopher] The Siren Song of Little Languages
       ___________________________________________________________________
        
       The Siren Song of Little Languages
        
       Author : Qem
       Score  : 44 points
       Date   : 2025-01-10 13:50 UTC (3 days ago)
        
 (HTM) web link (www.wilfred.me.uk)
 (TXT) w3m dump (www.wilfred.me.uk)
        
       | recursivedoubts wrote:
       | _> The problem seems to be languages with a small, well written
       | specification._
       | 
       | that's why I'm making my language as big and poorly specified as
       | possible:
       | 
       | https://hyperscript.org
        
         | emmanueloga_ wrote:
         | I think it is a problem of incentives: programming languages
         | with small, elegant specs are often created by academics, and
         | academia and the software industry have fundamentally
         | incompatible incentives.
        
           | Vampiero wrote:
           | People in academia know enough computer science to appreciate
           | that everything can be reduced down to unification and
           | function application (+ side effects) and they advocate for
           | expressiveness in the same sense that a manager on a team of
           | people working with an industrial language advocates for
           | simple and readable code (because he wants to streamline the
           | onboarding process, and because he's constantly hiring
           | juniors instead of seniors).
           | 
           | Common patterns in functional languages are considered "too
           | clever" in most workplaces. Because they leave new hires
           | dumbfounded and no one has got the time to explain them how
           | to do their job. It's not that they're too "clever" but
           | rather that the average coworker is too "dumb". But that's
           | not a jab at anyone in particular, it's a consequence of our
           | work culture -- and "clever" and "dumb" are not statements
           | about intelligence, but about experience and team
           | composition.
           | 
           | Basically the incentives are actually opposite to each other.
           | It takes a long time to wrap your head around languages like
           | Haskell because you actually have to know some theory, you
           | can't just wing it. Javascript however...
           | 
           | On one side of the spectrum there's imperative languages and
           | on the other end there's declarative ones. So this dichotomy
           | creates friction and inertia.
        
             | adamc wrote:
             | Here's a different take: Languages like Haskell aren't
             | solving the problems companies actually experience (for the
             | most part). High on that list of real problems is "how do I
             | get effective work out of these <relatively inexpert>
             | programmers?" And often the domain that the programmers are
             | being asked to work in strongly constrains viable languages
             | as well. (Web browsers and JavaScript would be an example.)
             | 
             | I love Lisps, but for most companies, it's not the right
             | investment. People don't leave school knowing lisp, its
             | flexibility can be a downside with inexperienced
             | developers, and it doesn't have the kind of ecosystem
             | something like JavaScript or Python or Java or even C++
             | have. Nor can you easily hire contractors to help you on a
             | project or to help clean up a mess.
             | 
             | Businesses like solutions that can be planned for, that are
             | easy to hire for, that one can get help with if things go
             | badly.
        
             | discreteevent wrote:
             | When I started programming most of the world that I
             | encountered seemed to be written in C++. I don't think
             | Haskell and C++ are hugely different in terms of how long
             | it takes to become proficient in them. The programmers I
             | come across nowadays don't seem to be much different in
             | terms of their ability from those C++ programmers. I think
             | that if Haskell hasn't succeeded then the idea that workers
             | are too dumb (or don't have the time) is not the cause.
             | There are many smart people in industry who know about
             | Haskell but do not find it attractive.
        
       | tptacek wrote:
       | I'm not sure I understand the cryptography analogy.
        
         | LegionMammal978 wrote:
         | "Some crypto primitives can be small and elegant, but to
         | provide practical security they generally need extra layers on
         | top of them," is what I understood. I'd compare it to simple
         | textbook RSA vs. the whole ceremony of PKCS #1 padding. It fits
         | into the broader theme that the simplest thing to implement is
         | rarely the best thing to use.
        
       | oddity wrote:
       | It's a fun observation, but the causality in this feels off.
       | There are tons of esoteric programming languages that are
       | difficult to write in and no one talks about because they have no
       | other value. BF is not very useful for writing things in, but it
       | has some value in being easy to implement. Would anyone sane
       | genuinely encourage others to write something nontrivial in BF?
       | What person looks at BF and says "ah, yes, this is a language I
       | might like to write my next spreadsheet app and networking
       | library in, let me play around in it for a bit to see if it might
       | work", much less follow up with "oh no, I got distracted
       | reimplementing it instead"? On the other hand, if I'm
       | implementing an interpreter for fun, I'm going to pick something
       | with a nice spec and my ability to actually use it is irrelevant.
       | BF is great for implementing a spec exactly such that all
       | existing tests and benchmarks _just work_.
       | 
       | I think the more likely scenario in a counterfactual world where
       | Shen and Forth are difficult to implement is not that we have
       | more things written in Shen and Forth, but that we have strictly
       | fewer reasons to talk about Shen and Forth.
       | 
       | I am not convinced that the group that builds implementations and
       | the group that builds the kinds of things that beget ecosystems
       | for anyone other than compiler developers actually have much
       | overlap. I do, however, think there is a strong overlap between
       | the group that builds implementations and terminal-stage new-
       | language addicts. An ecosystem for other things will maybe happen
       | later if there's some other value to the language.
       | 
       | Where I think the article _does_ hit on something is slightly
       | less direct: users are more tolerant of a messy specification
       | than implementors. C, C++, Python, Java and all the other
       | languages that people actually use are ugly as sin at a semantic
       | level, and yet we get by with copious handwaving. There are many
       | problems, of course, with some of the handwaving users do to
       | reason about these languages (hello, many warts of C), and
       | generally, a preference for spec a user can keep in their head is
       | a big productivity win, but if you want a language that people
       | can use, you can afford to make your language a bit more
       | complicated.
       | 
       | TL;DR: idk, make your pretty language with a beautiful spec if
       | you want. Most languages are unused anyway. But there probably
       | are diminishing usability returns for maximal spec beauty. If you
       | care about that kind of thing, that is.
        
       | eternityforest wrote:
       | It's so easy to get wrapped up building tools and frameworks and
       | protocols and never do anything with them, or do anything else
       | with your life, so I think it's important to have reasonable
       | expectations.
       | 
       | Understanding what kind of things people will build with you
       | language would probably help, so you don't waste time trying to
       | please people who will not use your language anyway.
        
       | noelwelsh wrote:
       | Being popular is not the only goal of a programming language.
       | Scheme is very successful language, not because it's much used
       | but because it's small and elegant it's often used as a teaching
       | tool and hence it has come to influence many of the designers of
       | more popular languages.
        
         | adamc wrote:
         | Successful in academia. Not at all successful in terms of real-
         | world use.
        
       | red_admiral wrote:
       | My take is that, for productive work, language is much less
       | important than everything around it. I need at the very least
       | some kind of package management and dependency resolution system.
       | Sometimes I want to read a CSV file, turn some of the content
       | into JSON and serve it over HTTP. In an environment with sensible
       | libraries, that's just a case of glueing stuff together. The
       | problem is not little languages, it's little ecosystems.
        
         | poulpy123 wrote:
         | There was 3 reasons for python success : it's easiness, it's
         | price and the most important the number of libraries
        
           | lblume wrote:
           | What do you mean by "price"? The language and its interpreter
           | are free, but so are most languages from its time, so what
           | are you referring to exactly?
        
             | red_admiral wrote:
             | That's the point of the joke. If it had cost money, it
             | would never have become as popular.
        
             | poulpy123 wrote:
             | yeah I mean the price of 0$/EUR/any currency. And not all
             | languages were free, especially one of the main place where
             | python encountered first the success that made it so big
             | was in the universities and in research, were software like
             | matlab, mathematica, IDL or maple were (very expensive)
             | kings before.
        
       | machinestops wrote:
       | I struggle to take such an article seriously when it cites
       | Brainfuck as an example. A common use of Brainfuck isn't to write
       | programs, but rather to prove that it is possible to write
       | programs. This isn't exactly comparable with small Lisps or
       | Forth.
        
         | rausr wrote:
         | I work in the same building as Urban Mueller (creator of BF).
         | He told me the point of BF was to implement a compiler ;)
        
           | InDubioProRubio wrote:
           | He told me its there to import geometry from standard formats
           | into marching cubes and then octrees.
        
           | jhonsrid wrote:
           | You can write a program that takes BF code as input and
           | outputs valid C source that would execute it in less than 20
           | lines of well formatted ANSI C using nothing more than
           | putchar, getchar, while, pointer inc/dec and dereference, so
           | I can imagine a full compiler for it would be super simple
           | too.
           | 
           | (Though I bet an optimising compiler would be a _little_ more
           | complicated) ;)
        
       | tmtvl wrote:
       | This reminds me of Guy Steele's talk on Growing A Language (<http
       | s://archive.org/details/GrowingALanguageByGuySteeleAhvzD...>).
       | The conclusion being that what's important isn't whether a
       | language is large or small but whether it can grow.
        
       | whatsakandr wrote:
       | Actually using the language is something Jon Blow is definitely
       | getting right with Jai, if it ever releases.
        
       | pyrale wrote:
       | The author seems to miss that many people don't write their lisp
       | (or their game, or their code-golfing one-liner, or their befunge
       | program) for it to be used, they write it because they enjoy
       | writing a lisp.
       | 
       | As for those who believe their language of choice can actually
       | become mainstream, it's a long, soul-crushing and miserable road.
        
       | demetrius wrote:
       | I don't see why it's a "siren song". Being lured by sirens is
       | deadly. Implementing a small language is a fun hobby and can be a
       | useful learning experience.
        
         | baruz wrote:
         | It's an issue with all metaphorical language. You want to
         | compare it with one thing (irresistibility of the call, as TFA)
         | and some non-zero percentage of your audience makes a different
         | association (lured to their doom, as your interpretation).
        
       ___________________________________________________________________
       (page generated 2025-01-13 23:03 UTC)