The Lobster Programming Language
28 comments
·August 25, 2025nobleach
bobbylarrybobby
Never understood how putting up roadblocks for developers trying to copy-paste code was deemed acceptable, or GVR (and others) thought the solution to poorly formatted code was making formatting carry semantics instead of just writing an auto formatter.
adiabatty
To be fair to GvR, autoformatters weren’t commonplace in the late 80s and early 90s. Were there even any?
Ever since Go got big, though, everyone else is discovering how fantastically nice they are, and that’s a good thing.
Night_Thastus
I agree. Autoformatters are everywhere and easy to use. I'd far rather do that (plus maybe a pre-commit hook) than have to deal with whitespace in the language.
yoyohello13
I get everyone has their thing, but I've been writing Python professionally for years and I can't even remember the last time significant white space was an issue. You just get used to it, like everything else.
FredPret
YAML has given me eye-twitching ever since I went on an ill-considered quest of setting up wifi on a Debian server years ago.
I never figured it out by the way - just bought a really long LAN cable.
nobleach
YAML with Go templating (like you'd find in Helm Charts) was enough to push me over the edge.
nialv7
Was coming here to comment the exactly same thing. Significant indentation makes me shudder.
scotty79
I'm automatically going to be interested in any language with significant white space because there are very few mainstream ones and I hate the visual clutter that block delimiters create. Pretty much there's just Python. Scala 3 can happily do both.
I think we'd be better off if text editors just had option of representing braces and such as consistent indentation. Block delimiting tokens should optionally have semantics of non directly printable characters like new line or tab.
baranul
A language that can do both Python and C "styles" is Ring. It is possible. But the issue is people have such a strong preference for one or the other, that they force the language and developers to permanently choose.
Even Allman versus K&R or tabs versus spaces are huge battles, without even going into significant white space.
pklausler
You'd love Haskell, which uses curly braces for many constructs, but also has rules by which they are implied by indentation -- so in practice you only ever see them on records.
recursivecaveat
I love python syntax overall, absolutely despise Haskell. Wastes my time constantly and gives me incomprehensible compiler errors when you screw it up. Expression oriented languages are really poorly suited for whitespace imo, unless they're hyper-regular like s-expressions: I could imagine a decent whitespace-based version of those.
scotty79
I'm not sure. The semantics is too wild to care about indentation or delimiters. I love Scala 3 though. Very rich and flexible language.
dang
Related. Others?
The Lobster Programming Language - https://news.ycombinator.com/item?id=44051841 - May 2025 (6 comments)
The Lobster Programming Language - https://news.ycombinator.com/item?id=31453822 - May 2022 (14 comments)
The Lobster Programming Language - https://news.ycombinator.com/item?id=25498005 - Dec 2020 (4 comments)
The Lobster Programming Language - https://news.ycombinator.com/item?id=19567160 - April 2019 (164 comments)
The Lobster Programming Language - https://news.ycombinator.com/item?id=15557060 - Oct 2017 (2 comments)
xscott
I had seen Lobster before, but not really looked closely. Seeing it again now, I think I was wrong to dismiss it. Just at the syntactic level with semantics described in the link, it looks like it really might be "Python done right". The link mentions lots of features, but the following bits caught my eye.
The let/var declarations for constants/variables is much better than implicit declaration, which silently hides typos and necessitates ugly global/nonlocal declarations. (Mojo offers this improvement too.)
I don't know for sure, but it seems like it's embraced block arguments comparable to how Ruby or SmallTalk does it. So you can add your own control flow, container visitors, etc. I think of this as another syntax for passing a lambda function as an argument, and I'm curious if Lobster's optimizer flattens it to a basic block when possible.
I think I'll try to learn more about it. I wonder if the name is a nod to Accelerando.
0cf8612b2e1e
Well, it has an animal mascot logo. Which is my personal yardstick for if a project is destined for success. So, off to a good start, but the lobster could be more cuddly.
nathan_compton
One thing I hate about Generative AI is that it has flipped the value prop of making your language similar to an existing popular language. This helps new programmers but it really messes with generative AI. I can feel the era of fun new programming languages that might break big ending.
scotty79
I'm afraid about that too, but I hope that AI will get significantly smarter faster than it takes for any new language take popularity among humans. That it will be smart enough to not be so language sensitive.
Who knows. Maybe some new fun language will pop up that's hard to write for humans, but easy to write for AI (because it can work in millisecond loop with language server, think borrow checker to the moon) and also exceedingly easy to read for humans. Because humans will, I think stil for a long time, need to debug ever shrinking corner cases where AI generated something subtly but spectacularly wrong.
benrutter
This is a really nice looking language. Feedback in case the creator sees but it wasn't obvious to me at first that it was targeting game development. The first mention is in features:
> Features have been picked for their suitability in a game programming language
Would be fun to see some basic games like tetris, pong etc in Lobster in case anyone has an example floating round?
tines
Nice! So it looks like polymorphism is done via C++ template-style ad-hoc polymorphism? Are there any restrictions on it?
Also, is there any kind of sophisticated pattern matching? I feel like for me a language without pattern matching is a non-starter these days.
rurban
One of the few light excellent C++ projects
jibal
.
joemi
Surely you don't mean Quake the 1996 video game, so what is "Quake" in this context?
jibal
I was mistaken ... not the author: https://quake.fandom.com/wiki/Wouter_Van_Oortmerssen_(Aardap...
Obviously some will find this a silly opinion but the one thing that turned me off the most about the Nim programming language was its use of significant whitespace. The same is true with F# (and of course Python). Having had apps with YAML for config, and having had nightmares trying to copy/paste config directives from various sources, I just find whitespace to be unwieldy.
Now that's a strong opinion, (weakly held - as a language can't be judged based on this design decision). But it does sour my interest a bit.