frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Rob Pike's 5 Rules of Programming

https://www.cs.unc.edu/~stotts/COMP590-059-f24/robsrules.html
129•vismit2000•2h ago•62 comments

JPEG Compression

https://www.sophielwang.com/blog/jpeg
246•vinhnx•4d ago•49 comments

Write up of my homebrew CPU build

https://willwarren.com/2026/03/12/building-my-own-cpu-part-3-from-simulation-to-hardware/
94•wwarren•2d ago•13 comments

Nightingale – open-source karaoke app that works with any song on your computer

https://nightingale.cafe/
83•rzzzzru•3h ago•11 comments

Mistral AI Releases Forge

https://mistral.ai/news/forge
528•pember•14h ago•120 comments

Ask HN: What breaks first when your team grows from 10 to 50 people?

30•hariprasadr•3d ago•26 comments

How the Eon Team Produced a Virtual Embodied Fly

https://eon.systems/updates/embodied-brain-emulation
29•LopRabbit•2d ago•7 comments

A Decade of Slug

https://terathon.com/blog/decade-slug.html
634•mwkaufma•17h ago•63 comments

Microsoft's 'unhackable' Xbox One has been hacked by 'Bliss'

https://www.tomshardware.com/video-games/console-gaming/microsofts-unhackable-xbox-one-has-been-h...
704•crtasm•20h ago•256 comments

Celebrating Tony Hoare's mark on computer science

https://bertrandmeyer.com/2026/03/16/celebrating-tony-hoares-mark-on-computer-science/
46•benhoyt•5h ago•5 comments

Show HN: Pgit – A Git-like CLI backed by PostgreSQL

https://oseifert.ch/blog/building-pgit
59•ImGajeed76•1d ago•23 comments

Judge orders restoration of Voice of America

https://apnews.com/article/voice-of-america-kari-lake-trump-cd6d1ef05272f842705da0ed38d3de24
25•geox•1h ago•5 comments

Python 3.15's JIT is now back on track

https://fidget-spinner.github.io/posts/jit-on-track.html
396•guidoiaquinti•17h ago•220 comments

More than 135 open hardware devices flashable with your own firmware

https://openhardware.directory
250•iosifnicolae2•4d ago•30 comments

The pleasures of poor product design

https://www.inconspicuous.info/p/the-pleasures-of-poor-product-design
142•NaOH•11h ago•48 comments

Ndea (YC W26) is hiring a symbolic RL search guidance lead

https://ndea.com/jobs/search-guidance
1•mikeknoop•5h ago

(Media over QUIC) on a Boat

https://moq.dev/blog/on-a-boat/
27•mmcclure•4d ago•2 comments

Get Shit Done: A meta-prompting, context engineering and spec-driven dev system

https://github.com/gsd-build/get-shit-done
355•stefankuehnel•15h ago•181 comments

Show HN: Sub-millisecond VM sandboxes using CoW memory forking

https://github.com/adammiribyan/zeroboot
187•adammiribyan•22h ago•47 comments

Have a fucking website

https://www.otherstrangeness.com/2026/03/14/have-a-fucking-website/
501•asukachikaru•8h ago•268 comments

OpenAI Has New Focus (On the IPO)

https://om.co/2026/03/17/openai-has-new-focus-on-the-ipo/
47•aamederen•1h ago•49 comments

Animation 10k Starlink Satellites

https://spaceweather.com/archive.php?view=1&day=18&month=03&year=2026
15•MeteorMarc•4h ago•19 comments

Unsloth Studio

https://unsloth.ai/docs/new/studio
305•brainless•20h ago•59 comments

Why AI systems don't learn – On autonomous learning from cognitive science

https://arxiv.org/abs/2603.15381
132•aanet•14h ago•67 comments

A tale about fixing eBPF spinlock issues in the Linux kernel

https://rovarma.com/articles/a-tale-about-fixing-ebpf-spinlock-issues-in-the-linux-kernel/
111•y1n0•11h ago•8 comments

Leviathan (1651)

https://www.gutenberg.org/files/3207/3207-h/3207-h.htm
89•mrwh•3d ago•32 comments

It Took Me 30 Years to Solve This VFX Problem – Green Screen Problem [video]

https://www.youtube.com/watch?v=3Ploi723hg4
254•yincrash•4d ago•100 comments

Electron microscopy shows ‘mouse bite’ defects in semiconductors

https://news.cornell.edu/stories/2026/03/electron-microscopy-shows-mouse-bite-defects-semiconductors
82•hhs•4d ago•21 comments

Ryugu asteroid samples contain all DNA and RNA building blocks

https://phys.org/news/2026-03-ryugu-asteroid-samples-dna-rna.html
256•bookofjoe•1d ago•137 comments

Launch an autonomous AI agent with sandboxed execution in 2 lines of code

https://amaiya.github.io/onprem/examples_agent.html
44•wiseprobe•10h ago•16 comments
Open in hackernews

Rob Pike's 5 Rules of Programming

https://www.cs.unc.edu/~stotts/COMP590-059-f24/robsrules.html
128•vismit2000•2h ago

Comments

embedding-shape•1h ago
"Epigrams in Programming" by Alan J. Perlis has a lot more, if you like short snippets of wisdom :) https://www.cs.yale.edu/homes/perlis-alan/quotes.html

> Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.

Always preferred Perlis' version, that might be slightly over-used in functional programming to justify all kinds of hijinks, but with some nuance works out really well in practice:

> 9. It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures.

Intermernet•1h ago
I believe the actual quote is:

"Show me your flowchart and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowchart; it'll be obvious." -- Fred Brooks, The Mythical Man Month (1975)

bfivyvysj•48m ago
This is the biggest issue I see with AI driven development. The data structures are incredibly naive. Yes it's easy to steer them in a different direction but that comes at a long term cost. The further you move from naive the more often you will need to resteer downstream and no amount of context management will help you, it is fighting against the literal mean.
andsoitis•40m ago
> This is the biggest issue I see with AI driven development. The data structures are incredibly naive.

Bill Gates, for example, always advocated for thinking through the entire program design and data structures before writing any code, emphasizing that structure is crucial to success.

neocron•28m ago
Ah Bill Gates, the epitome of good software
Intermernet•39m ago
Naive doesn't mean bad. 99% of software can be written with understood, well documented data structures. One of the problems with ai is that it allows people to create software without understanding the trade offs of certain data structures, algorithms and more fundamental hardware management strategies.

You don't need to be able to pass a leet code interview, but you should know about big O complexity, you should be able to work out if a linked list is better than an array, you should be able to program a trie, and you should be at least aware of concepts like cache coherence / locality. You don't need to be an expert, but these are realities of the way software and hardware work. They're also not super complex to gain a working knowledge of, and various LLMs are probably a really good way to gain that knowledge.

mosura•1h ago
Perlis is just wrong in that way academics so often are.

Pike is right.

Intermernet•32m ago
Hang on, they mostly agree with each other. I've spoken to Rob Pike a few times and I never heard him call out Perlis as being wrong. On this particular point, Perlis and Pike are both extending an existing idea put forward by Fred Brooks.
mosura•19m ago
Perlis absolutely is not saying the same thing, and as the commenter notes the functional community interpret it in a particularly extreme way.

I would guess Pike is simply wise enough not to get involved in such arguments.

jacquesm•23m ago
Perlis is right in the way that academics so often are and Pike is right in the way that practitioners often are. They also happen to be in rough agreement on this, unsurprisingly so.
hrmtst93837•11m ago
Treating either as gospel is lazy, Perlis was pushing back on dogma and Pike on theory, while legacy code makes both look cleaner on paper.
rsav•58m ago
There's also:

>I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

-- Linus Torvalds

mpalmer•48m ago
Was the "J" short for "Cassandra"?

    When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.
Hendrikto•22m ago
I feel like these are far more vague and less actionable than the 5 Pike rules.
DaleBiagio•19m ago
" 9. It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures."

That's great

mchaver•15m ago
I find languages like Haskell, ReScript/OCaml to work really well for CRUD applications because they push you to think about your data and types first. Then you think about the transformations you want to make on the data via functions. When looking at new code I usually look for the types first, specifically what is getting stored and read.
linhns•12m ago
Nice to see Perlis mentioned once in a while. Reading SICP again, still learning new things.
0xpgm•10m ago
Reminded me of this thread between Alan Kay and Rich Hickey where Alan Kay thinks "data" is a bad idea.

My interpretation of his point of view is that what you need is a process/interpreter/live object that 'explains' the data.

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

EDIT: He writes more about it in Quora. In brief, he says it is 'meaning', not 'data' that is central to programming.

https://qr.ae/pCVB9m

JanisErdmanis•10m ago
With 100 functions and one datastructure it is almost as programming with a global variables where new instance is equivalent to a new process. Doesn’t seem like a good rule to follow.
alberto-m•2m ago
This quote from “Dive into Python” when I was a fresh graduate was one of the most impacting lines I ever read in a programming book.

> Busywork code is not important. Data is important. And data is not difficult. It's only data. If you have too much, filter it. If it's not what you want, map it. Focus on the data; leave the busywork behind.

kleiba•1h ago
I believe the "premature evil" quote is by Knuth, not Hoare?!
swiftcoder•59m ago
Potentially its by either (or even both independently). Knuth originally attributed it to Hoare, but there's no paper trail to demonstrate Hoare actually coined it first
Intermernet•26m ago
Turns out that premature attribution is actually the root of all evil...
Bengalilol•23m ago
Every empirical programmer will, at some point, end up yelling it out loud (too).
bsenftner•1h ago
Obvious. Why the elevation of the obvious?
bazoom42•1h ago
Definitely not obvious to everybody.
DrScientist•57m ago
I think for people starting out - rule 5 isn't perhaps that obvious.

> Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.

If want to solve a problem - it's natural to think about logic flow and the code that implements that first and the data structures are an after thought, whereas Rule 5 is spot on.

Conputers are machines that transform an input to an output.

mosura•51m ago
> If want to solve a problem - it's natural to think about logic flow and the code that implements that first and the data structures are an after thought, whereas Rule 5 is spot on.

It is?

How can you conceive of a precise idea of how to solve a problem without a similarly precise idea of how you intend to represent the information fundamental to it? They are inseparable.

DrScientist•27m ago
Obviously they are linked - the question is where do you start your thinking.

Do you start with the logical task first and structure the data second, or do you actually think about the data structures first?

Let's say I have a optimisation problem - I have a simple scoring function - and I just want to find the solution with the best score. Starting with the logic.

for all solutions, score, keep if max.

Simple eh? Problem is it's a combinatorial solution space. The key to solving this before the entropic death of the universe is to think about the structure of the solution space.

praptak•55m ago
A good chunk of great advice is obvious things that people still fail to do.

That's why a collection of "obvious" things formulated in a convincing way by a person with big street cred is still useful and worth elevating.

pm215•43m ago
Also, "why these 5 in particular" is definitely not obvious -- there are a great many possible "obvious in some sense but also true in an important way" epigrams to choose from (the Perlis link from another comment has over a hundred). That Pike picked these 5 to emphasise tells you something about his view of programming, and doubly so given that they are rather overlapping in what they're talking about.
pjc50•55m ago
You've got to elevate some obviously correct things, otherwise social media will fill the void with nonobviously incorrect things.
mosura•47m ago
Better to have 100 comments on one topic than 10 comments on 10 topics.
HunterWare•43m ago
Can't be but so obvious if the first comment I saw here was that the first two rules didn't seem so important. =)
heresie-dabord•57m ago
See Tony Hoare:

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

tobwen•57m ago
Added to AGENTS.md :)
wwweston•42m ago
How good is your model at picking good data structures?

There’s several orders of magnitude less available discussion of selecting data structures for problem domains than there is code.

If the underlying information is implicit in high volume of code available then maybe the models are good at it, especially when driven by devs who can/will prompt in that direction. And that assumption seems likely related to how much code was written by devs who focus on data.

ozgrakkurt•37m ago
Would be cool to see the live reaction of Rob Pike to this comment
CharlieDigital•49m ago
I feel like 1 and 2 are only applicable in cases of novelty.

The thing is, if you build enough of the same kinds of systems in the same kinds of domains, you can kinda tell where you should optimize ahead of time.

Most of us tend to build the same kinds of systems and usually spend a career or a good chunk of our careers in a given domain. I feel like you can't really be considered a staff/principal if you can't already tell ahead of time where the perf bottleneck will be just on experience and intuition.

PaulKeeble•44m ago
I feel like every time I have expected an area to be the major bottleneck it has been. Sometimes some areas perform worse than I expected, usually something that hasn't been coded well, but generally its pretty easy to spot the computationally heavy or many remote call areas well before you program them.

I have several times done performance tests before starting a project to confirm it can be made fast enough to be viable, the entire approach can often shift depending on how quickly something can be done.

pydry•15m ago
The number 1 issue Ive experienced with poor programmers is a belief that theyre special snowflakes who can anticipate the future.

It's the same thing with programmers who believe in BDUF or disbelieve YAGNI - they design architectures for anticipated futures which do not materialize instead of evolving the architecture retrospectively in line with the future which did materialize.

I think it's a natural human foible. Gambling, for instance, probably wouldnt exist if humans' gut instincts about the future were usually realistic.

This is why no matter how many brilliant programmers scream YAGNI, dont do BDUF and dont prematurely optimize there will always be some comment saying the equivalent of "akshually sometimes you should...", remembering that one time when they metaphorically rolled a double six and anticipated the necessary architecture correctly when it wasnt even necessary to do so.

These programmers are all hopped up on a different kind of roulette these days...

relaxing•43m ago
Rob Pike wrote Unix and Golang, but sure, you’re built different.
andsoitis•37m ago
> Rob Pike wrote Unix

Unix was created by Ken Thompson and Dennis Ritchie at Bell Labs (AT&T) in 1969. Thompson wrote the initial version, and Ritchie later contributed significantly, including developing the C programming language, which Unix was subsequently rewritten in.

9rx•6m ago
Pike didn’t create Unix initially, but was a contributor to it. He, with a team, unquestionably wrote it.
Intermernet•28m ago
Rob Pike is responsible for many cool things, but Unix isn't one of them. Go is a wonderful hybrid (with its own faults) of the schools of Thompson and Wirth, with a huge amount of Pike.

If you'd said Plan 9 and UTF-8 I'd agree with you.

jacquesm•20m ago
Rob Pike definitely wrote large chunks of Unix while at Bell Labs. It's wrong to say he wrote all of it like the GP did but it is also wrong to diminish his contributions.

Unless you meant to imply that UNIX isn't cool.

HunterWare•41m ago
ROFL, I wish Pike had known what he was talking about. /s ;)
Bengalilol•27m ago
> you can kinda tell where you should optimize ahead of time

Rules are "kinda" made to be broken. Be free.

I've been sticking to these rules (and will keep sticking to them) for as long as I can program (I've been doing it for the last 30 years).

IMHO, you can feel that a bottleneck is likely to occur, but you definitely can't tell where, when, or how it will actually happen.

Mercuriusdream•48m ago
never expected it to be a single HTML file so kind of surprised, but straight to the point, to be honest.
andsoitis•34m ago
KISS
anthk•41m ago
9front it's distilled Unix. I corrected Russ Cox' 'xword' to work in 9front and I am just a newbie. No LLM's, that's Idiocratic, like the movie; just '9intro.us.pdf' and man pages.

LLM's work will never be reproducible by design.

piranha•37m ago
> Rule 5 is often shortened to "write stupid code that uses smart objects".

This is probably the worst use of the word "shortened" ever, and it should be more like "mutilated"?

andsoitis•34m ago
Syntactic sugar is cancer of the semicolon.
franktankbank•1m ago
Tide goes in tide goes out, can't explain that.
keyle•34m ago
Rule 5 is definitely king. Code acts on data, if the data is crap, you're already lost.

edit: s/data/data structure/

andsoitis•32m ago
… if the data structures are crap.

Good software can handle crap data.

keyle•31m ago
That is not what I meant. I meant crap data structures. Sorry it's late here.
DaleBiagio•20m ago
The attribution to Hoare is a common error — "Premature optimization is the root of all evil" first appeared in Knuth's 1974 paper "Structured Programming with go to Statements."

Knuth later attributed it to Hoare, but Hoare said he had no recollection of it and suggested it might have been Dijkstra.

Rule 5 aged the best. "Data dominates" is the lesson every senior engineer eventually learns the hard way.

elcapitan•18m ago
Meta: Love the simplicity of the page, no bullshit.

Funny handwritten html artifact though:

    <title> <h1>Rob Pike's 5 Rules of Programming</h1> </title>
doe88•14m ago
Great rules, but Rule 3.: WOW, so true, so well enunciated, masterful.
Devasta•11m ago
> "Premature optimization is the root of all evil."

This Axiom has caused far and away more damage to software development than the premature optimization ever will.