frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Ask HN: The government of my country blocked VPN access. What should I use?

695•rickybule•8h ago•398 comments

Fuck up my site – Turn any website into beautiful chaos

https://www.fuckupmysite.com/?url=https%3A%2F%2Fnews.ycombinator.com&torchCursor=true&comicSans=t...
129•coloneltcb•3h ago•40 comments

Python: The Documentary

https://lwn.net/Articles/1035537/
24•chmaynard•1h ago•2 comments

My startup banking story (2023)

https://mitchellh.com/writing/my-startup-banking-story
155•dvrp•5h ago•65 comments

Some thoughts on LLMs and software development

https://martinfowler.com/articles/202508-ai-thoughts.html
173•floverfelt•5h ago•159 comments

Uncertain<T>

https://nshipster.com/uncertainty/
236•samtheprogram•7h ago•49 comments

Death by PowerPoint: the slide that killed seven people

https://mcdreeamiemusings.com/blog/2019/4/13/gsux1h6bnt8lqjd7w2t2mtvfg81uhx
44•scapecast•3h ago•8 comments

Expert LSP the official language server implementation for Elixir

https://github.com/elixir-lang/expert
46•pimienta•3h ago•8 comments

RSS Is Awesome

https://evanverma.com/rss-is-awesome
58•edverma2•1h ago•12 comments

Building your own CLI coding agent with Pydantic-AI

https://martinfowler.com/articles/build-own-coding-agent.html
102•vinhnx•6h ago•21 comments

TuneD is a system tuning service for Linux

https://tuned-project.org/
27•tanelpoder•3d ago•7 comments

Are OpenAI and Anthropic losing money on inference?

https://martinalderson.com/posts/are-openai-and-anthropic-really-losing-money-on-inference/
430•martinald•14h ago•414 comments

AI adoption linked to 13% decline in jobs for young U.S. workers: study

https://www.cnbc.com/2025/08/28/generative-ai-reshapes-us-job-market-stanford-study-shows-entry-l...
166•pseudolus•10h ago•259 comments

Rupert's Property

https://johncarlosbaez.wordpress.com/2025/08/28/a-polyhedron-without-ruperts-property/
19•robinhouston•2h ago•1 comments

Launch HN: Dedalus Labs (YC S25) – Vercel for Agents

43•windsor•8h ago•11 comments

A forgotten medieval fruit with a vulgar name (2021)

https://www.bbc.com/future/article/20210325-the-strange-medieval-fruit-the-world-forgot
65•ohjeez•1d ago•27 comments

Bad Craziness

https://www.math.columbia.edu/~woit/wordpress/?p=15191
13•jjgreen•1h ago•2 comments

You no longer need JavaScript: an overview of what makes modern CSS so awesome

https://lyra.horse/blog/2025/08/you-dont-need-js/
82•todsacerdoti•3h ago•28 comments

Thrashing

https://exple.tive.org/blarg/2025/08/26/thrashing/
12•pch00•1d ago•1 comments

Speed-coding for the 6502 – a simple example

https://www.colino.net/wordpress/en/archives/2025/08/28/speed-coding-for-the-6502-a-simple-example/
18•mmphosis•3h ago•7 comments

Dependent types I › Universes, or types of types

https://www.jonmsterling.com/01ET/index.xml
6•matt_d•1d ago•0 comments

Will AI Replace Human Thinking? The Case for Writing and Coding Manually

https://www.ssp.sh/brain/will-ai-replace-humans/
108•articsputnik•10h ago•89 comments

VLT observations of interstellar comet 3I/ATLAS II

https://arxiv.org/abs/2508.18382
44•bikenaga•6h ago•32 comments

Optimising for maintainability – Gleam in production at Strand

https://gleam.run/case-studies/strand/
87•Bogdanp•9h ago•21 comments

Web Bot Auth

https://developers.cloudflare.com/bots/reference/bot-verification/web-bot-auth/
38•ananddtyagi•6h ago•37 comments

Show HN: SwiftAI – open-source library to easily build LLM features on iOS/macOS

https://github.com/mi12labs/SwiftAI
51•mi12-root•10h ago•11 comments

RFC 8594: The Sunset HTTP Header Field (2019)

https://datatracker.ietf.org/doc/html/rfc8594
24•aiven•5h ago•9 comments

I researched every attempt to stop fascism in history. The success rate is 0%

https://cmarmitage.substack.com/p/i-researched-every-attempt-to-stop
9•rbanffy•35m ago•5 comments

In Search of AI Psychosis

https://www.astralcodexten.com/p/in-search-of-ai-psychosis
82•venkii•2d ago•48 comments

That boolean should probably be something else

https://ntietz.com/blog/that-boolean-should-probably-be-something-else/
84•vidyesh•12h ago•94 comments
Open in hackernews

The Lobster Programming Language

https://www.strlen.com/lobster/
81•klaussilveira•3d ago

Comments

tines•7h ago
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.

xscott•6h ago
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.

benrutter•6h ago
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?

nobleach•6h ago
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.

scotty79•6h ago
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.

pklausler•6h ago
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.
scotty79•5h ago
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.
recursivecaveat•5h ago
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.
baranul•5h ago
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.

FredPret•6h ago
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•5h ago
YAML with Go templating (like you'd find in Helm Charts) was enough to push me over the edge.
tzot•4h ago
Was there any reason not to use flow collection style, which would free the templates from significant whitespace?
bobbylarrybobby•6h ago
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.
Night_Thastus•5h ago
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.
adiabatty•5h ago
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.

mdasen•5h ago
Yea, in the 90s significant whitespace seemed great because it meant that you got readable code. The amount of code that you might see copy/pasted with terrible formatting/indentation in other languages could make you want to scream.

Now, when you paste code and things are wrong, an auto formatter cleans it up for you. Before, you'd just end up with an unreadable codebase.

It's definitely an odd choice to make now.

cb321•3h ago
GNU indent was already at version 1.9.1 by 1994: https://ftp.gnu.org/gnu/indent/

If you grab that version and unpack it and look at /OChangelog then it seems to date back until at least 1989, same as Python itself.

That was for C source, of course. I expect there were pre-GNU indent variants, perhaps posted on comp.sources.unix and maybe some commercial things as part of very expensive compiler packages.

I would say that running autoformatters in any kind of routine way was pretty rare. EDIT: but I think ascribing the language design to commonality or not is probably ahistorical. Even today it's a rather passionate debate. And even at the time, Lisp - the poster child of copy-paste friendly PLangs - was routinely autoformatted within Emacs', but that was not enough for people to not find Lisp code "ugly".

nialv7•5h ago
Was coming here to comment the exactly same thing. Significant indentation makes me shudder.
yoyohello13•5h ago
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.
tzot•4h ago
> 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.

Convert your YaML into JSON and save it in your YaML file. There is probably an online converter, but writing one in your language of choice should be less than ten lines of code.

Do the same YaML→JSON for the “source” configuration you want to copy from, and copy-paste the parts you want. Leave them as JSON.

Complaining about Python's significant whitespace, I get it. I don't mind it personally, but it's obligatory and you can't overcome it (unless you do `coding: with_braces` tricks, of course). But why one would complain about YaML's whitespace? It is not obligatory.

    some_key:
      attr1: val1
      attr2: 12312
is equivalent to

    {some_key: {attr1: val1, attr2: 12312}}
is equivalent to

    {"some_key": {"attr1": "val1", "attr2": 12312}}
is equivalent to

    {"some_key": {
    "attr1":
    "val1", "attr2": 12312
    }
    }
and they're all valid YaML (and on the plus side you can leave dangling commas at the end of sequences, but it won't be valid JSON anymore).
esrauch•4h ago
> But why one would complain about YaML's whitespace? It is not obligatory.

The problem (as felt by me and also as identified by the person you replied to) is that you can't copy-paste/munge some stuff into the right spot and then just let the formatter to fix the indentation. It's not a problem that the format "at rest" has whatever certain indentation to be correct, its that while being actively editing your formatter cannot automatically set the correct indentation.

The flow that you're talking about of converting yaml to json and then putting it into yaml could work in some cases but thats very much a kludge. It will have numerous bad side effects unavoidable, including that it would discard comments in the middle since JSON doesn't allow for comments at all, theres no timestamps in JSON, there's no octal numbers, etc.

tzot•4h ago
> The problem (as felt by me and also as identified by the person you replied to) is that you can't copy-paste/munge some stuff into the right spot and then just let the formatter to fix the indentation.

That problem I undestand, and that is why I suggested to convert both into JSON —or YaML with default_flow_style=True which would preserve datetimes and other non-JSON stuff— and copy-paste without the hassle of having to indent/unindent correctly. Of course that doesn't help with copying comments. That would need extra copy-paste operations, but still one hasn't the hassle of significant whitespace. The following is also valid YaML:

    {"some_key": {
    "attr1":
    # an intermittent comment
    "val1", "attr2": 12312  # more comments!
    }
    }
dgfitz•4h ago
My gripe with json is the lack of support for comments. Whenever I come across a config file that has comments about what the config line(s) mean, I am so grateful.

Whenever I come across a json config file, I kind of despair a little and start poking at the code in hopes there are comments about what the config means.

tzot•4h ago
I totally agree with your gripe about JSON's lack of comments. There were people AFAIK who tried to write a spec with comments (and maybe dangling commas? was it called JSON5?) but by then it probably was too late.
tracker1•3h ago
My biggest issue with JSON5 is as far as I'm aware, if you update settings programmatically, you tend to lose comments... not sure of any implementation that preserves them.
harikb•2h ago
+1 white space significance brings back whole tab vs space preferences and make it much harder for automatic re-formatting as well
rurban•6h ago
One of the few light excellent C++ projects
nathan_compton•6h ago
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•5h ago
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.

0cf8612b2e1e•6h ago
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.
adiabatty•5h ago
To be fair, there’s a programming language out there already with a cuddly-lobster mascot. A decidedly un-cuddly lobster just maximizes product differentiation.
shayway•5h ago
What language is that?
jibal•5h ago
They mean Rust, but its unofficial mascot is a cuddly crab, not a lobster (both are crustaceans).
jibal•5h ago
It's a crab, not a lobster.
lagniappe•3h ago
Can I interest you in a rat named Keith, with its foot blown off?
0cf8612b2e1e•1h ago
At least it has personality. Not a generic, noncommittal blob.
dang•5h ago
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)

jibal•5h ago
.
joemi•5h ago
Surely you don't mean Quake the 1996 video game, so what is "Quake" in this context?
jibal•5h ago
I was mistaken ... not the author: https://quake.fandom.com/wiki/Wouter_Van_Oortmerssen_(Aardap...
zawaideh•3h ago
Feels like it’s taking the best of Rust and Ruby (with Python style whitespace)

Admittedly it’s just a first impression

harikb•2h ago
> Flow-Sensitive Type-Inference

imho, I don't consider Type-inference as a good thing when it happens from 50 lines ahead/below. How would regular people follow along?

Good case

x = "hello" // infer type as string - good thing.

Bad case

var/declare x;

50 lines later

if (....)

     x = "world" // infer type as string - this is bad
alain_gilbert•2h ago
For case like this, I'd say your text editor should definitely just be able to tell you right away that this variable is a "string" when you mouse over it.
harikb•2h ago
It shouldn't require a fancy forward-lookup-capable editor / language-server to show type. That is the point I am trying to make

var/declare x;

25 lines later

call f(x); // ** Reader has no idea what x is ... even though compiler has **

25 lines later

if (....)

     x = "world" // infer type as string - this is bad
vovavili•2h ago
This feels like a scripting companion to Rust with Python-like syntax, nice one. I definitely could see it being using as a Lua replacement in embedded contexts.
araes•1h ago
Looks like a cool language. Like the short syntax. Impressed they implemented so much of OpenGL natively in the language. Lot of work to implement OpenGL.

With such a focus, be nice to have a few more OpenGL examples. Took a bit of looking, yet found a longer example for a 2D shooter. https://aardappel.github.io/lobster/shooter_tutorial.html

However, the real test, from personal perspective, especially with a custom framework for shaders, would be implementing one of the medium difficulty LearnOpenGL 3D examples, such as the Multiple Lights example. https://learnopengl.com/Lighting/Multiple-lights

With how much goes wrong with OpenGL and shader development, wary of delving very much into an OpenGL centric language, and then finding out there's a bunch of gotchas in the part that tends to be desirable (3D rendering). "Whoops, one of a zillion hidden flags doesn't get set properly for some reason."

Texture loading seems like its there, and it says it actually uses "stb_image.h" internally. Plus, it apparently does cubemaps.

Lights seem implemented, although not sure what that does "sets up a light at the given position for this frame."

Model Loading is also another, from the built-ins it looks like it does .ply and .iqm? (Inter-Quake Model) files.

Matrice math has a few although seems like a LookAt and Perspective matrix creator in the 4x4 category would be needed that return a matrix you can apply to a shader uniform. gl.perspective looks weird, just says "changes from 2D mode (default) to 3D right handed perspective mode"

Either way, looks cool, would just like to have more examples in the target demographic, OpenGL game development. Even if they're simple. That's part of why the LearnOpenGL examples are so useful. Simple. Implementing even a significant subset would go along way toward selling me on game development in an unknown language.

babo•1h ago
Running some of the samples feels like those old SGI Iris GL demos, but implemented with a way nicer and concise language. I'll try to port some of my old code from that era.