Principia Softwarica
33 points by runxiyu
33 points by runxiyu
The title is clearly a reference to ‘Principia Mathematica,’ but ‘softwarica’ is not Latin. It’s like someone writing a purportedly C function call as foo(bar; baz]. A better title might be ‘Principia Programmatum’ (The Principles of Programs) or ‘Principia Artis Programmatoriae’ (The Principles of the Art of Programming).
If we want to be pedantic, "Programmatum" does not exist either. The closest would be "Programmum" but it means "proclamation, edict", not program. There isn't any word in Latin to describe software or programming so it's fine to invent a new one.
It's true that "Programmum"/"Programmatum" sounds more correct because it's derived from the English "program" which is itself derived from French "programme", itself from Latin "programmum". But we can take one step closer to the original and use the French word "logiciel" ("programme" is also a valid word for software in French, but it comes from English), which comes from "logique" (logic) + "iel" from "matériel" (hardware / made of matter).
So, as "logique" comes from "logica" and "matériel" from "materialis" and the noun form of "materialis" is "materia" (matter), we could translate "program" to "logicia" and "programs" to "logicium".
(disclaimer: I don't really know Latin, only studied it for two year in high school)
Principia Softwarica is a series of books explaining how things work in a computer by describing with full details all the source code of all the essential programs used by a programmer. Among those essential programs are the kernel, the shell, the windowing system, the compiler, the linker, the editor, or the debugger. Each program will be covered by a separate book.
The operating system they target appears to be Plan 9
The operating system they target appears to be Plan 9
This is a very poor, inaccurate summary; did you actually read the page?
« Learn Here, Apply Everywhere
You do not need to use Plan 9. Understanding one small elegant OS gives deep intuition about Linux, macOS, and even Windows. »
I definitely do understand that, although I should have rephrased it as s/target Plan 9/use Plan 9 as the primary example/.
It does mean the codebase is marginally more familiar to me than the other OSes though.
Yet in the very first paragraph it states:
All the programs come from Plan 9 from Bell Labs,
So it appears that OP is correct. OP didn’t claim that it wasn’t transferable to other systems.
No, it is not correct. It specifically says, at some length, that the lessons are intended for users of all OSes but especially the C/Unix family of OSes, and spells out very clearly and explicitly that it uses Plan 9 because the code is exceptionally small, concise and clean.
It does not target Plan 9.
It explains Linux, FreeBSD, and all other Unix-like OSes using Plan 9 as its tutorial example. It is not "targetting" Plan 9. It is targetting people, and explaining Unix and C concepts using Plan 9 because the entire OS is half the size of Vim.
Saying it "targets Plan 9" is actively misleading.
The issue was mere word choice. Your opposite accusations (not having read it vs. being manipulative) are kinda over the top.
Initially I balked at the mention of Plan 9, but the detailed explanation of why the author chose Plan 9 (TLDR: it's small) is a great piece of writing – in itself an excellent advertisement for the books!
Why did you balk at the plan 9 mention? Just curious
Only because I have no Plan 9 experience, and I'm so time-poor that I instinctively flinch at the prospect of having a Whole New Thing to learn about! I (sadly!) don't actually have time to read these books right now, irrespective of the OS in question, so it was just a reflexive reaction rather than something more thought out.
I love how author ported OCaml to plan 9 and then rewrote large parts of userspace in OCaml and to better understand what happens in C.
In process the code also became runnable on Windows of all things :)
Curious who funds this.
This is an insane undertaking. 17 books over 6k+ pages. All seem to have been released last week?
Does anyone have any additional context or background on the author?
See this 9fans thread
https://www.mail-archive.com/9fans@9fans.net/msg45156.html
TL;DR: it started in 2014 and the author is going to present his work at IWP9 tomorrow 13:45 local (Victoria, BC, Canada) time: http://iwp9.org/#prg
Thank you, this is exactly what I was hoping for.
There is a bit of drama in the thread in regards to AI usage:
yes I started to use Claude Code in March this year to assist in writing. I started this project though in 2014 and spent almost 6 years full time on it since 2014 decomposing every programs in many parts and books.
Worth reading the thread before committing to reading the books, I think.
Wow, this looks very ambitious. I believe reading good code -- especially with explanations for design choices -- makes one a better programmer. Maybe particularly if that code is for a domain just outside one's own. This should be a great tool for learning.