Back

The $LANG Programming Language

267 points24 days

This afternoon I posted some tips on how to present a new* programming language to HN: https://news.ycombinator.com/item?id=46608577. It occurred to me that HN has a tradition of posts called "The {name} programming language" (part of the long tradition of papers and books with such titles) and it might be fun to track them down. I tried to keep only the interesting ones:

https://news.ycombinator.com/thelang

Similarly, Show HNs of programming languages are at https://news.ycombinator.com/showlang.

These are curated lists so they're frozen in time. Maybe we can figure out how to update them.

A few famous cases:

The Go Programming Language - https://news.ycombinator.com/item?id=934142 - Nov 2009 (219 comments)

The Rust programming language - https://news.ycombinator.com/item?id=1498528 - July 2010 (44 comments)

The Julia Programming Language - https://news.ycombinator.com/item?id=3606380 - Feb 2012 (203 comments)

The Swift Programming Language - https://news.ycombinator.com/item?id=7835099 - June 2014 (926 comments)

But the obscure and esoteric ones are the most fun.

(* where 'new' might mean old, of course - https://news.ycombinator.com/item?id=23459210)

chuckadams24 days ago

For a moment I thought there was actually a new language called $LANG, which would have been wonderful.

trollbridge24 days ago

I was thinking how it would be odd to have a programming language called en_AU.UTF-8.

mixmastamyk24 days ago

  echo “G’day World!”
trollbridge24 days ago

The localisation guide for IBM VisualAge C++ went through an example of defining a new language called “Texan”, and then replacing “Hello World” with “Howdy”.

anotherevan24 days ago

drawl “G’day mate.”

dghf24 days ago

All error messages begin "Strewth!"

edoceo24 days ago

*G'day mate

Lammy24 days ago

There's a language called SLang inside Goldman Sachs used for their SecuritiesDB, and that's how I read it at first glance even with the dollar sign lol https://en.wikipedia.org/wiki/Michael_Dubno#SecDB

snthpy24 days ago

That's what I thought too. The $ sign seemed quite appropriate given Goldman's line of business.

wahern24 days ago

See also https://en.wikipedia.org/wiki/S-Lang (https://www.jedsoft.org/slang/index.html), a (stack-based) scripting language implementing a terminal UI toolkit. Mutt can use use S-Lang instead of ncurses.

dang24 days ago

I wonder what a program written in that language looks like.

rayxi27182824 days ago

Slang? The IDE looked like Turbo C++ of old (blue, text based interface). Shortcuts are weird, so you need to remap keys to get sane defaults.

Probably the most unique feature is that the language supports spaces in identifiers. So you'd have variables like "Option Portfolio Risk" or functions like "Calculate Estimated PnL". Visually obviously different from Python, but it gave me Pythonic vibes.

It's also nice that it supports preconditions, so you can specify the valid range of arguments etc. It has some kind of OOP support but tbh it felt bolted on (understandably).

But the most value adding, IMHO, is the DevEx and deep integration with SecDb. Say what you want about the DOS-like IDE and the old (20+ years old for sure, maybe 30+) language, but you can deploy your code SO easily into production, with guardrails in place.

Out of curiosity, I implemented a toy language (thanks to Robert Nystrom's Crafting Interpreters) that supports spaces in identifiers (https://github.com/rayfdj/gaul-lang) as well. Makes for an interesting weekend coding project, and it helps me understand more the tradeoffs that Slang designers must have gone through.

+1
andrekandre23 days ago
charleszw24 days ago

See also the Slang shader language, it's a pretty recent development! https://shader-slang.org

dang24 days ago

Want to submit to HN and email us (hn@ycombinator.com) so we can put it in the SCP? (https://news.ycombinator.com/item?id=26998308)

Radle24 days ago

Same! My first thoughts: "Is this language pronounced Lang or Slang? Slang is actually a cool name for a new programming language..."

hmry24 days ago
jcynix24 days ago
fermigier24 days ago

There was a Linux distribution (briefly) called "$DISTRO". Known today as "Ubuntu".

librasteve24 days ago

well Raku has the Slangify module https://raku.land/zef:lizmat/Slangify

null_onset24 days ago

The $LANG programming language, where the keywords are all just in-jokes that change from week to week.

lproven24 days ago

    darmok := jalad[talaka]
benj11124 days ago

When(walls == fell)

hashmush24 days ago

I use that every day at $WORK!

blumenkraft24 days ago

Goldman Sachs does have a language called Slang

cvoss24 days ago

Likewise. Thought it'd be pronounced "slang", and thought the semantics would be you define LANG=<name of a language> at the top of the file (like a hashbang) and then write in whatever language you please. $LANG is a neato language because it has all the coolest features rolled into one unified design: polymorphic lifetime borrowing, endofunctor monoid monads, (stacked) coroutines, and even quantum data types.

johnfn24 days ago

This is a fun false positive :) https://news.ycombinator.com/item?id=34675259

_false24 days ago

Not because it's not a PL, but because:

> This article doesn't use the name "Lisp" enough. The language with the best chance of lasting a long time is the one with the simplest syntax. That is Lisp...

dang24 days ago

Whoops! I tried to catch those but yes.

sjosh24 days ago

Another false positive: https://news.ycombinator.com/item?id=13252407

Thanks for making this!

dang24 days ago

Not sure if I should remove those or leave them in for color!

I did remove "The Perfect Programming Language" and "The Enterprise Programming Language" and a few others that weren't real languages. "Enterprise" is a great name for a programming language though.

hiccuphippo24 days ago

> Enterprise

A language to go where no language has gone before.

+1
rchard2scout24 days ago
Animats24 days ago

See "The Your Name Here Story" (1960) [1] It's a generic industrial film.

[1] https://archive.org/details/YourName1960

dang24 days ago

Yikes, I tanked HN's performance by posting this! Probably because of loading all those old threads over and over.

I've moved the URL out of the link at the top, which seems to be helping for now.

(now I have to decide whether to go down another rabbit hole and fix that)

_false24 days ago

https://news.ycombinator.com/showlang is the first time I've seen a direct URL that adds an element to the navbar. Did you make this HN feature just for showlang or are there any other similar links?

dang23 days ago

See https://news.ycombinator.com/lists, linked from the footer. Those are the main ones.

I won't add /thelang and /showlang unless we have a way of keeping them up to date, which we don't (for now) have.

clusmore24 days ago

There is also shownew and highlights at least, I think maybe a few others still

almusdives24 days ago

Just wanted to say this post has caused a huge spike in traffic to my language's website: a dizzying ~40 visitors per day up from ~0 haha!

wizzwizz424 days ago

So these are just static pages, not new entries for https://news.ycombinator.com/lists?

dang24 days ago

Alas, yes, at least for now. Seems like an LLM could be good at finding them though. A regex is probably too crude.

wizzwizz424 days ago

The old lesson from the Wizard of Oz experiment says that a regular expression probably isn't too crude, if you're willing to take the time to design it. Though you could probably get away with running a regex golf algorithm (e.g. https://nbviewer.org/url/norvig.com/ipython/xkcd1313.ipynb) over the list of matching titles, and the union of some list of non-matching-but-close titles (chosen to get good discrimination) with some list of way-off titles (to avoid overfitting). (You could treat the whole HN title database, other than the ones you've identified, as losers, but that risks hardcoding the absence of a post you accidentally missed, and would also take slightly longer – though Peter Norvig's first algorithm takes time linear in the number of losers, so it might not be too expensive. I don't know how expensive his improved versions are, given large lists of losers: https://nbviewer.org/url/norvig.com/ipython/xkcd1313-part2.i.... Better algorithms are surely available.)

dredmorbius24 days ago

That was going to be my suggestion as well.

gabrielsroka23 days ago

My "Pith" programming language didn't make the cut

https://news.ycombinator.com/item?id=32681150

Webpage using Pith instead of JavaScript to fetch HN Polls using the HN Search API

https://gabrielsroka.github.io/hnpolls_pith.html

Source

https://github.com/gabrielsroka/gabrielsroka.github.io/blob/...

dang23 days ago

Added now!

gdotdesign24 days ago

Thanks for putting these lists together. When Mint reaches 1.0 I'll use the same format to present it here.

dang24 days ago

Ah I missed the previous threads about your language, because they didn't follow the title convention I was searching for. I've put https://news.ycombinator.com/item?id=17161533 (the first one) in there now. It would be better if it just said "The Mint Programming Language" though (and I'm not above fudging that retroactively!)

Mint – language created for writing single-page applications - https://news.ycombinator.com/item?id=36914888 - July 2023 (11 comments)

Mint: A programming language for writing single page applications - https://news.ycombinator.com/item?id=22246615 - Feb 2020 (194 comments)

Mint-lang: a language for the front-end web - https://news.ycombinator.com/item?id=17161533 - May 2018 (106 comments)

gdotdesign14 days ago

Thanks :)

I didn't make those threads, so the title choices were mine. I'll do a proper Show HN with 1.0 sometime, maybe with can switch it with that then.

gdotdesign14 days ago

*weren't

nozzlegear23 days ago

I've used Mint in one of my apps, I'm a fan! Looking forward to that 1.0 release whenever it happens.

zahlman24 days ago

That reminds me, I really should blog my design ideas for my spiritual successor to Python....

fsckboy24 days ago

the headline made me think somebody else came up with my idea. I wanted to a create a language whose name was langlang. to understand how to parse it, that would be the equivalent as a name to C, and the equivalent to clang would be langlanglang.

I considered the shorter name lang, but lang already has a meaning and I thought then in that world langlang might confuse people as to the actual name of the language, whereas since langlanglanglang is clearly needless overkill in a name, langlang and langlanglang would provide just the right amount readability and reinforcement as to the actual name of langlang.

oecumena24 days ago

'The Lobster Programming Language (strlen.com)' is duplicated.

dang23 days ago

IIRC there are quite a few cases in there where the same language got more than one thread. That's fine as long as they're (a) interesting, and (b) a year or more apart! (https://news.ycombinator.com/newsfaq.html)

middayc24 days ago

What are these /thelang and /showlang?

Are these like permanent urls that we can use to filter posts?

This makes me thing about what other permanent urls/filters there are. Is there a list somewhere?

dang23 days ago

They're static lists that won't get updated unless we add to them manually. I'd love to make them auto-update (see https://news.ycombinator.com/item?id=46610744) but that might be too much to expect for now.

macintux24 days ago

I feel like there’s an Advent of Code challenge lurking here.

GaryBluto24 days ago

Very useful! Thanks for the addition.

big-chungus424 days ago

where can I check out the language?

dang24 days ago

Maybe someone will make one!

jeswin24 days ago

I did a Show HN for a language called Tsonic yesterday, which is a variant of TypeScript (all tsonic is valid typescript) requiring stronger typing which compiles to x64/ARM native code via .Net/NativeAOT. https://news.ycombinator.com/item?id=46604308

It didn't appear in Show HN at all. Perhaps because another user posted it as a regular topic just a few minutes earlier, which drops off very quickly (within minutes) - but I think the issue is wider.

For a while now, I've felt that the new topics stream requires you to promote the topic outside of HN to be seen on HN - sometimes by adding a "Discuss on HN" link in the blog, or on social networks etc. The problem is quite fundamental: the "Show" link gets a small fraction of clicks. The "Show New" (two clicks away) probably gets tinier, miniscule fraction of clicks. The intersection of people who are interested in the project and those who have clicked "Show New" would be very nearly null. So upvotes will have to come from outside.

dang24 days ago

That's great! It didn't make the /show page because some of the upvotes were dropped by our software. We can re-up it, but first can you add some text to the post, explaining the background and what's different about it? If you look at what I told the Lax guys earlier (https://news.ycombinator.com/item?id=46608577), that might give some ideas.

Also, if you're ok with changing the title to "Show HN: The Tsonic Programming Language" then I could add it to https://news.ycombinator.com/showlang :)

lassejansen24 days ago

I did a Show HN for the language "hyTags" yesterday, too. It's a language embedded in HTML, using tags as syntax. It quickly dropped of the new page:

https://news.ycombinator.com/item?id=46599403

Could you add that too to showlang?

dang24 days ago

Sure! But I tried to restrict it to threads that got (interesting) comments, and there aren't any yet in that one. So let's put it in the SCP* as well :)

* https://news.ycombinator.com/item?id=26998308

lassejansen24 days ago

Thanks dang!

jeswin24 days ago

Hi dang, done. Thank you!

Your feedback on the other thread was very helpful - just the right thing to add, irrespective of HN visibility.

lingying24 days ago

The MoonBit Programming Language - https://news.ycombinator.com/item?id=37174619 -Aug 19, 2023 (152 comments)

dang24 days ago

As with https://news.ycombinator.com/item?id=46618769, that one didn't make it into the list because the title didn't fit the convention. I've added it now. It would be better if it just said "The MoonBit Programming Language" though!

MopAmine24 days ago

[flagged]

MopAmine24 days ago

[flagged]