The Ages of Programming Language Creators : r/programming Skip to main content

Get the Reddit app

Scan this QR code to download the app now
Or check it out in the app stores
r/programming icon
r/programming icon
Go to programming
r/programming

Computer Programming


Members Online

The Ages of Programming Language Creators

Share
Sort by:
Best
Open comment sort options
u/miyakohouou avatar

It makes sense to me. Too young and people won't have had time to develop the skills (both technical and social) to build a language. It seems like it takes about a decade for most languages to get popular if they are going to, and most people who build a popular language tend to stick with it for the rest of their career, or apply what they learned to working on other already popular languages. Very few people build multiple popular languages.

In other words, there are less 40 year olds who can build a popular language, because some of them already built their popular language in their 30's. There are even fewer 50 year olds who can build a popular language, because some of them built their language in their 30's, and of the rest a lot of them built their language in their 40's. It's not so much a matter of older people being less skilled or able to build a language, and more about the fact that most people stop after their first one.

Everyone tries to write a compiler once, because once is enough lol

u/caltheon avatar

Honestly, a naive compiler was trivial to write for a simple instruction set list. Making it performant and covering edge cases is another ball of wax. Doing it in hardware is even more fun

u/imnotbis avatar

Everyone should try everything once. Especially in programming or mathematics, where stakes are very low.

u/miyakohouou avatar

I’ve never actually written a full compiler, although I’ve written several interpreters and DSLs (and even worked on a couple professionally). It’s on my list of things to do one day, but only for fun. I’ve been at this long enough to know I want know part of the 99% perspiration it takes to make a language popular and success- but I’m quite grateful to the people who do.

u/ShinyHappyREM avatar

If you don't want to write a full compiler you can also try an interpreter with JIT functionality.

More replies

I've done it twice and didn't complete them both times. Does this count?

If at first you don’t succeed try failing again

More replies
u/ysustistixitxtkxkycy avatar

ROTFL, thank you for that laugh, this was spot on :)

More replies
u/Mysterious-Rent7233 avatar

There are actually quite a few second and third languages on the list. Oberon, Raku, TypeScript, Go, C#, M4, ... So there's nothing preventing you from doing it at 30 and then again at 50.

u/psaux_grep avatar

The set sizes hardly matters if you only subtract the people who’ve already built a programming language.

In fact it’s statistically negligible.

I would offer qualitative reasoning, not quantitative. And more likely from branches of social science.

When you start a job/move somewhere, if something bothers you do something about it within six months or you’ll get used to it being that way.

Older developers are more likely to have gotten used to what they know.

Younger developers are more likely to think “I can do this better” than those who’ve been around for longer.

There’s likely a whole lot of “having the time”. As people grow older they’re much more likely to settle down and have a family which takes time.

u/renatoathaydes avatar

Excellent point. I would add that in many other fields, large contributions can come from "prodigies", i.e. extremely young people who just happen to be geniuses on some topic. I am not sure we have seen any prodigies yet in the Programming Language space, but I would bet there will be one - the combination of highly intelligence, not being too stuck on a local maximum, and the lower barrier to entry since nearly all compilers became open source and most programming guides are free... all combine to make it a fertile ground for young people to experiment.

Aaron Schwartz being high on the list but sadly never getting a chance to make his full contribution.

More replies
More replies

How do you write a new language before you know what is out there? Granted, some young languages were not tainted by main stream ideas. I like scheme.

Scheme is a 49-year-old language, based on a 64-year-old language. What counts as an "old" language for you?

I meant the author age in this context. A language created by a fresh mind, untainted by enterprise. Looking to explore math. For example the 6502 by Charles Ingerham Peddle (40 years) and its machine language was created by an old, experienced guy, who knew what would have applications. john hennessy of MIPS was 30 and his ISA feels fresh.

More replies
More replies
More replies
u/honest_arbiter avatar

While interesting data, this article sure has a bizarre definition of "programming language". Emacs? JQuery? JSON? None of those are programming languages.

u/breck avatar

Emacs has emacs lisp? JQuery is tagged as a library. JSON as a dataNotation.

I agree with you though. For this post, I had to sacrifice a little precision for brevity. But the full dataset includes the nuances.

But they all certainly are "computer languages". (For example, the query selection lang inside jQuery is a lang of its own).

I kept those ones in b/c I thought they were interesting: jQuery/eMacs creations of early 20's. JSON at 46.

All 3 are creations that have had huge impact in the day to day lives of programmers around the world.

The full dataset is here: https://pldb.io/download.html and you can also explore it here (https://pldb.io/lists/explorer.html) and make any custom lists as you want.

Emacs has emacs lisp?

Emacs in 1974 (when rms was around 21) used TECO, and it's only in the mid-1980s that GNU Emacs came about with Elisp. Other variants of Emacs used Lisp or (James Gosling's) Mocklisp.

u/breck avatar

Ah, you are right (https://pldb.io/concepts/emacs-lisp.html) - emacs lisp was 1985.

Thanks for the info!

More replies
u/jessepence avatar

jQuery's "selection lang" is just CSS. It's a pretty egregious inclusion. 

I understand why you included it, though. Great work.

u/breck avatar

I understand why you included it, though. Great work.

Thanks! And I agree with your point. And think the next pass at this will focus more on programming languages, and exclude libraries, editors, and other things.

More replies

Okay but all languages on the computer aren’t all programming languages. It’d be like having a list of fine dining places and putting McDonald’s on the list just because they serve food. The precision completely matters!

u/breck avatar

matters!

What matters more is I share all my work public domain, with all the source code.

I explained my reasoning above. I agree, it would have been nicer to filter more precisely on the "tags" measure in our database. Anyone else is welcome to do that. Again, all the source code is there.

If I do another version of this in the future, I'll most likely not make the same mistake.

More replies
More replies

I love programming in UTF-8....

More replies

JQuery?! Wtf

u/breck avatar

JQuery is tagged as a library in our scrollset.

If I do another version of this post I should really just be more strict with my criteria if I'm going to use "Programming Language" in the title. I found it interesting to keep things like jQuery and JSON in, but then that sort of causes conflicts with the title. I should have just kept them in in my own versions, and then for the chart with "Programming Language" in the title, been more strict.

(My joke answer was that jquery selectors might be turing complete ;) )

More replies

"eMacs", eh? Those cheap Macs that Apple made for school use back in the 1990s shortly after Jobs came back?

I'm pretty sure Stallman would be appalled at the association.

u/breck avatar

The typo has been fixed https://github.com/breck7/pldb/blob/main/posts/ageAtCreation.scroll and the person responsible has had his paycheck lowered like his e's.

Thanks!

u/campbellm avatar

This is a weird but common auto-correct; I THINK on Apple. I've seen it in r/emacs quite a bit.

u/agentoutlier avatar

Also it is debatable if Stallman is actually even the creator of Emacs. The irony is two of the possible creators James Gosling and Guy Steele went onto create a top language (aka mainstream): Java.

More replies
u/RumbuncTheRadiant avatar

Now do one by length of beard!

https://www.wired.com/2012/06/beard-gallery/

u/breck avatar

Hah! That's awesome. And maybe the most relevant prior art out there. Thanks!

https://archive.fo/8Spqi

More replies
u/agentoutlier avatar

It does not surprise me that Aaron Swartz was the youngest. I met him very briefly in the Boston area as well as remember reading some stuff about RSS as I was into XML in the late 90s early 2000s. I was shocked at his age. I'm six years older than Aaron but he was lightyears ahead of me.... lightyears.

There is some videos of him reading at like 3.

What a terrible loss to the world.

u/CreepingCoins avatar

json isn't a programming language.

u/imnotbis avatar

WTF

u/imnotbis avatar

yes, that's what the site is called

More replies

Tom indeed was a genius. A mad genius, but still, it counts. Not just anybody can come up with that stuff.

More replies

You havent met my work code base, wicked choas shit

Exactly

Try to tell Ansible that.

Okay, Ansible is YAML, not JSON, but they're damn-near orthomorphic to each other.

u/droptableadventures avatar

YAML literally is a superset of JSON - so you could just write the playbook in JSON...

Eurgh, that's so bad (from here)

[
  {
    "name": "My first play",
    "hosts": "myhosts",
    "tasks": [
      {
        "name": "Ping my hosts",
        "ansible.builtin.ping": null
      },
      {
        "name": "Print message",
        "ansible.builtin.debug": {
          "msg": "Hello world"
        }
      }
    ]
  }
]
u/Halkcyon avatar

YAML 1.2* is a superset. Most parsers are not 1.2-compliant.

u/droptableadventures avatar

Yeah, that's true, YAML 1.2 fixed up some minor differences that made it not a strict superset. Though most JSON is YAML 1.1 compliant.

However I just checked Ansible more carefully, and it officially supports JSON, specifically using the actual JSON parser if it looks like JSON...

More replies
More replies
u/larsga avatar

You can make programming languages in JSON and in XML, but that doesn't make JSON and XML programming languages.

Python is written in ASCII (or whatever), but that doesn't make ASCII a programming language.

u/campbellm avatar
u/larsga avatar

Just like XSLT, Jelly is a subset of XML. Jelly may be a scripting language, but that doesn't mean XML is.

In the same way, Python is a subset of ASCII.

More replies
More replies
More replies
More replies
u/thunderbong avatar

Javascript!

What's on the y-axis? Edit: oh, "rank".

u/campbellm avatar

Weren't there like... dozens of people involved in Perl6?

RMS didn't create Emacs. Emacs isn't a programming language.

u/breck avatar

Here is our info on Emacs: https://github.com/breck7/pldb/blob/main/concepts/emacs-editor.scroll

If there's info wrong pull requests are appreciated!

The 'info' is incredibly wrong.

More replies
More replies

Why is BASIC and Dartmouth BASIC listed as they have the same year of release and developer...

Why isn't say BBC BASIC (developed by Sophie Wilson (of ARM fame and who wrote an ARM simulator in BBC BASIC to prove it would work) in 1981 and who was 23 at the time) listed as it's still a viable language 43 years later (look up BBC BASIC).

Surprised that OCCAM a parallel processor language isn't listed either (developed by David May who also developed the Transputer in 1983 aged 32).

u/breck avatar

Thanks for that info! Added https://github.com/breck7/pldb/commit/16e03a0e34c6b105a946be7f3b535add0cda8580

I havent regenerated the chart or post but the data is ready for next time.

More replies

The amount of people getting hung up on what is and isn’t a language is wild. The conclusions that u/breck draws don’t actually change if you remove or even change those data points. The cascading style sheet language was first proposed by a 29 year old. A dialect of a language (eMacs lisp) is still a language, just like clojure is a language (lisp dialect) and ocaml is a language (ML dialect).

My fav tho is the argument that markdown languages aren’t languages. Sorry, what? The formal mathematical definition of a language does not include Turing completeness. Turing complete languages are a subset, not a superset of programming languages. I mean Christ people, it’s even in the name. I’m sorry to inform you, but the guy who told you that the L in XML/HTML stands for Ligma, was playing a cruel prank

u/campbellm avatar

A dialect of a language (eMacs lisp) is still a language

True, but emacs lisp/elisp is a language. emacs the editor is not.

This is my point. All you’re doing is nitpicking the naming. It is the least useful critique you could make of the data. If he had two entries, one for “eMacs lisp” and the other for “eMacs”, then I’d say something is wrong, but that’s not what it is. The meaning is clear and the critique does not change the implications of the analysis in any way. Y’all are bike shedding and it’s painful to watch

u/campbellm avatar

Well, if you want to call a car a horse, I guess that's your right.

More replies
More replies
More replies
u/librasteve avatar

Larry Wall was 33 when he wrote Perl - which ranks at #7. Would be cool to label that data point (somewhere in the Rust, HTML, PHP zone. That way it would be clearer that Raku (aka Perl6) was not his first rodeo.

u/breck avatar

You are right, that would have been a good one to highlight.

Anyone can fork the chart and edit as they wish: https://app.datawrapper.de/river/_/rT0yG

More replies
Edited

Here are some related blog posts and notebooks with statistical plots:

u/breck avatar

Wow! This is awesome. I especially like this one: https://mathematicaforprediction.wordpress.com/wp-content/uploads/2024/05/07al2nyvyc0f8.png

It might be fun to run that again with more data (we can probably easily add a few hundred more creator names and ages to the dataset). It definitely is close to being a very interesting and beautiful chart.

Thank you!

I was expecting, say, at 55% probability my "second system effected" conjecture to be confirmed. I decided to program the corresponding statistics because I thought they should be somewhat of interest regardless...

More replies
More replies

I use old people languages. Meaning ?

In the case of Raku I say: made by old people for old people.

More replies
u/ImNotHere2023 avatar

Several of those aren't turing complete programming languages - e.g. JSON is a serialization format. Markdown is text formatting shorthand.

u/breck avatar

You have a valid point made by others. If I do an update, I will filter with more precisions.

That being said, it does not change the shape of the chart at all to exclude those. And Markdown, JSON, etc are interesting, and are used by programmers in their work.

I recommend exploring the data, and not getting hung up on nits.

u/ImNotHere2023 avatar

It undermines the point when you talk about outliers (Crockford, Aaron Swartz), but they don't even fit the common definition of a language inventor. If those contributions count, then why not other significant pieces of software, which might reveal more outliers?

More replies
More replies

What is rank based on?

u/breck avatar

I think there are some issues with the way you present the data: Your algorithm doesn’t say which “broad categories” relate to which variable; That initial 5x multiplier is a magic number with no explanation; last, though you present the data, there’s no description of your collection methods. That last one is especially important, since they are all based on estimates how are we supposed to assume that the underlying data is correct? Looking at the raw rankings, i think it does probably come out looking more or less like I would expect, but it would give more confidence to speak on the data collection methods somewhere

More replies
More replies

The dataset is featured in this video:

J

u/tonefart avatar

List of potential new languages that would be developed by young developers nowadays.

  1. Diver-C-ti

  2. Safe-Sp

  3. Prolog-Noun

  4. The Cis programming language

  5. Non-Binary language.

  6. W-Guilt language.