6 ms·
Lots of later follow-up research has been published. I am proposing to fund a secure parallel operating system, GUI, applications and hardware from scratch in
by morphle 2y ago
Lots of later follow-up research has been published.
I am proposing to fund a secure parallel operating system, GUI, applications and hardware from scratch in 20 KLOC for the European Community to gain computational independence from the US. I consider it the production version of the STEPS research.
We are in the signing up stage of the researchers, programmers and chip designers and have regular meetings and presentations [1].
Half a trillion Euro's is the wider funding pool, several hundred million for European chips and operating systems, billions for European chip fabs, dozens of billions for buying the secure EU software and chips for government, schools and military.
An unsolved problem is how to program a webbrowser in less than 20 KLOC.
I think that the STEPS research was a resounding succes as was proven by the demonstration of the software system in Alan Kay's talks[2] and confirmed by studying the source code. As mentioned before in my earlier HN post, I have a working version of Frank and most other parts of the STEPS research.
[1] https://www.youtube.com/watch?v=vbqKClBwFwI https://www.youtube.com/watch?v=vbqKClBwFwI
[2] https://www.youtube.com/watch?v=ubaX1Smg6pY https://www.youtube.com/watch?v=ubaX1Smg6pY
- kragen 2y agoThat's pretty exciting!
- morphle 2y agoIt is exciting. The life's work of a dozen people. Imagine proving the entire IT business field, Silicon Valley and computer science wrong: you can write a complete operating system and all the functionality of the mayor apps (word processing, graphics, spreadsheets, social media, WYSIWYG, browsers) and the hardware it runs on in less than 20000 lines of (high level language) code. They achieved it a few times before in 10000 lines (Smalltalk-80 and earlier versions), a little over 20000 (Frank) and 300000 lines (Squeak/Etoys/Croquet) and a few programmers in a few years. Not like Unix/Linux/Android/MacOS/iOS or Windows in hundreds of millions of lines of code but in orders of magnitude less.
- kragen 2y ago> They achieved it a few times before in 10000 lines, 20000 and 300000 lines and a few programmers in a few years. Did they?
- ruyvalle 2y agoyou can see for yourself, e.g. by looking at the Smalltalk emulators that run in the browser, reading Smalltalk books, etc. I think it's the "blue book" that was used by the Smalltalk group to revive Smalltalk-80 in the form of Squeak. it's well-documented for instance in the "back to the future" paper. I haven't had the fortune of studying Squeak or other Smalltalks in depth but it seems fairly clear to me that there are very powerful ideas being expressed very concisely in these systems. likewise with VPRI/STEPS. so although it might be somewhat comparing apples to oranges, I do think when, e.g., Alan Kay mentions in a talk that his group built a full personal computing system (operating system, "apps", etc) in ~20kLOC (iirc, but it's the same order of magnitude anyway), that it is important to take this seriously and consider the implications. similar when one considers Sutherland's Sketchpad, Engelbart's mother of all demos, Hypercard, etc. and contrasts with (pardon my French) the absolute trash that is most of what we use today (web browsers - not to knock the people who work on them, some of whom are clearly extremely capable and intelligent - generally no WYSIWYG, text and parsing all over the place, etc etc) like, I just saw a serious rendering glitch just now while typing this, where some text that came first was being displayed after text that came later, which made me go back and erase text just to realize the text was fine, type it again, and see the same glitch again. that to me seems completely insane. how is there such a rendering error in a textbox in 2025 on an extremely simple website? and this all points to a great deal of things that Alan Kay points out. some of his quips: "point if view is worth 80 IQ points", "stop reinventing the flat tire", and "most ideas are mediocre down to bad".
- kragen 2y agoYour comment doesn't seem relevant to my question. I'm familiar with that work, although I haven't finished reading Engelbart. Some of what I've written about these topics can be found at https://dercuano.github.io/topics/steps.html https://dercuano.github.io/topics/steps.html https://dercuano.github.io/topics/sketchpad.html https://dercuano.github.io/topics/sketchpad.html https://dercuano.github.io/topics/smalltalk.html https://dercuano.github.io/topics/smalltalk.html https://dercuano.github.io/topics/self-sustaining-systems.html https://dercuano.github.io/topics/self-sustaining-systems.ht... https://dercuano.github.io/topics/small-is-beautiful.html https://dercuano.github.io/topics/small-is-beautiful.html https://dercuano.github.io/topics/hypertext.html https://dercuano.github.io/topics/hypertext.html You are likely to be particularly interested in my "Commentaries on reading Engelbart’s “Augmenting Human Intellect”", https://dercuano.github.io/notes/augmenting.html https://dercuano.github.io/notes/augmenting.html.
- linguae 2y agoI’m very fascinated by this, and I hope that your proposal gets approved! I’m a community college instructor in Silicon Valley, and my plan this summer (which is when I have nearly three months off from teaching) is to work on a side project involving domain-specific languages for systems software. I’ve been inspired by the STEPS project, and I dream of systems being built with higher levels of abstraction, with very smart compilers optimizing them.
- morphle 2y agoWhy not collaborate, it will help you avoid reinventing some wheels. For example make a 3D version of the 2.5D graphics Nile/Gezira. You could do it in less than 500 lines of code and within 3 months. Other system software could be a new filesystem in 600 lines of code or a TCP/IP in 120 LOC. I also think a SPICE or physics simulator could be around 600 lines of code. I'll do the parallelizing optimizing adaptive compilers and autotuners (in Ometa 2). I intend to target a cluster of M3/M4 Macs with 32-core CPU, 80-core GPU and 32-core Neural Engine cores with an estimated 80 trillion TOPS and 800 Gbps memory bandwidth each. A smaller $599 base model M4 Mac mini would do between a fifth and a third of that performance. Together we could beat NVDIA's complexity and performance per dollar per Watt in a few thousand lines of code.
- e12e 2y ago> ... studying the source code. As mentioned before in my earlier HN post, I have a working version of Frank and most other parts of the STEPS research. Are the sources published?
- morphle 2y agoYes. Some need to be ported from 32 bit to 64 bit. I have most of it in working condition or recompiled.
- EgoIncarnate 2y ago>> Are the sources published? > Yes Where?
- eterps 2y agoIf you've managed to get most of it working or recompiled, please consider writing a detailed blog post documenting your process. This would be an invaluable resource for the people who are interested in the results of the STEPS project, showing your methodology and providing step-by-step instructions for others to follow. I don't think you realize how many people have attempted this before and failed.
- andrewflnr 2y ago> An unsolved problem is how to program a webbrowser in less than 20 KLOC. Can you even specify a modern web browser in under 20k lines of English? Between the backward compatibility and huge multimedia APIs, including all the references, I'd be surprised.
- x-complexity 2y agoGiven the absolute behemoth of scope laid out in the W3C specs, I don't think that's even possible. https://codetabs.com/count-loc/count-loc-online.html https://codetabs.com/count-loc/count-loc-online.html Using LadybirdBrowser/ladybird & ignoring the following folders: .devcontainer,.github,Documentation,Tests,Toolchain,Libraries ...Yields about 36k lines of C++. With the libraries, the LOC count balloons to 310k. If a still-in-alpha browser already has 300k lines of code to deal with, there's very little chance that a spec-compliant browser will be able to do the same within 30k lines.
- andrewflnr 2y agoI mean, the point of STEPS is in fact to do things in orders of magnitude less code than languages like C++. 310k is almost encouraging. :D
- mlajtos 2y agoI have never understood why nobody wrote a web browser on top of SmallTalk.
- xkriva11 2y agoNever? There is a web browser named Scamper.
- mlajtos 2y agoI know about Scamper, but it is dead. I've been thinking about SmallTalk web browser 4 years ago, more in-depth here: https://www.reddit.com/r/smalltalk/comments/jnigzb/native_web_browser/ https://www.reddit.com/r/smalltalk/comments/jnigzb/native_we... Since then, a lot have changed. One dedicated SmallTalker with LLM-infused Squeak might do wonders.
- andrekandre 2y ago> An unsolved problem is how to program a webbrowser in less than 20 KLOC. that would be amazing if possible, but i wonder since "the web" is so full of workarounds and hacks would it really be usable in most scenarios of done so succinctly...
- mlajtos 2y agoI propose a different lens to look at this problem. A neural net can be defined with less than 100LoC. The knowledge is in the weights. What if we went from source code of the web (HTML, CSS, JS, WASM) directly to generated interactive simulation of the said web? https://gamengen.github.io https://gamengen.github.io What if this blob of weights could interpret way more stuff, not just the web?
- 01HNNWZ0MV43FF 2y agoThen I would need a thousand dollar GPU to run the simplest JavaScript or decode one image?
- mlajtos 2y agoNo, GPUs are not needed for efficient inference. https://arxiv.org/pdf/2411.04732 https://arxiv.org/pdf/2411.04732
- ptx 2y agoYes, what if instead of the computer being an Internet Communications Device (as Steve Jobs called the iPhone), it would just pretend to allow us to communicate with other humans while actually trapping us in a false reality, as if we were all in the Truman Show? It might work, as indicated by the results in your link ("Human raters are only slightly better than random chance at distinguishing short clips of the game from clips of the simulation."), but the result would be a horrific dystopian nightmare, so why would we do this to ourselves? Anyway, there is one aspect where the STEPS work is similar to this idea, in that it tries to build a more concise model of the system. But it does this using domain-specific languages rather than lossy blobs of model weights, so the result is (ideally) the complete opposite of what you proposed: A less blobby, more transparent and more comprehensible expression of what the system does.
- beagle3 2y agoFree (liber) software is already independent of the US by virtue of being open source and free. In what way would your solution offer more/better independence ? I am all for a production 20K trusted free+open computing base, but … I don’t understand the logic.
- crabbone 2y agoIt's humanly impossible to know what a program does when it grows beyond the size anyone can read in reasonable amount of time. For comparison, consider this: I'm in my late 40s and I've never read In Search of Lost Time. My memory isn't what it used to be in my 20s... All eight volumes are about 5K pages, so about 150K lines. I can read about 100 pages per day. So, it will take me about two month to read the whole book (likely a lot longer, since I won't be reading every day, and won't read as many as 100 pages every time I do etc.) By the time I'm done, I will have already lost some memories of what happened two months ago. Also, the beginning of the novel will have to be reinterpreted in the light of what came next. Reading programs is substantially harder than reading prose. Of course, people are different, and there is no hard limit on how much of program code one can internalize... but there's definitely a number of lines that makes most programmers unable to process the entire program. If we want programs to be practically understandable, we need to keep them shorter than that number.
- beagle3 2y agoYou have just given the rationale for STEPS, which I am aware of and agree with. But the claim was that the EU should embark and find this to “gain independence from the US”, even though free software already gives you that independence. So, my question is: in what way would this project make the EU less dependent? North Korea reportedly has a Linux distribution, for example.
- crabbone 2y ago> even though free software already gives you that independence. No, not in the way I'd want (and probably not in the way parent wants). For all the same reasons. If you are given something you cannot understand, you depend on the provider for support of the thing you cannot understand. Even if your PC were to be shipped with the blueprints for the CPU, you'd still depend on the CPU manufacturer to make your PCs. The fact that you can sort of figure out how the manufacturer made one doesn't help you to become the real owner of the PC (because of the complexity of the manufacturing process that will make it prohibitively expensive for you to become the PC true owner). But, let's move this back into software world, where the problem is just as real (if not more so). Realistically, there are only two Web browsers, and the second one makes every effort to alienate its users and die being forgotten and irrelevant. Chrome (or Chromium and Co) are "free", but they are so complex that if you wanted a substantial change to their behavior, you, alone wouldn't be really able to effect that change. (Hey, remember user scripts? Like in Opera before it folded and became Chromium clone? Was super useful, but adding this functionality back would be impossible nowadays without a major team effort.) So... the Chromium and Co aren't really free. They are sort-of free. There are, unfortunately, many novel and insidious ways in which software freedom is attacked, subversion attempts come in a relentless tide. Complexity is one of the enemies of software freedom.
- bobajeff 2y ago>An unsolved problem is how to program a webbrowser in less than 20 KLOC. How about instead of a full web runtime you change the problem to be implementing (or inventing) server and client protocols for common web services? (Vblogging, Q&A forums, micro blogging, social bookmarking, wiki's etc.)
- mikedelfino 2y agoThis is something I often think about — if I understood you correctly. It sounds like an evolution of Gopher, with predefined structures for navigation, documents, and media. When we browse, we care more about the content than the presentation. There’s no real need for different layouts for blogs, documentation, news, forums, CRUD apps, streamings, emails, shops, banking, and so on. If the scope were tightly restricted, implementing clients and servers would be much simpler. But it's just something I wonder about...
- bobajeff 2y agoYeah, that's right. Though, it needs not be just one protocol. Many sites already have clients. It's just that the APIs are typically controlled by the site and are not client neutral and require credentials as opposed to something like an RSS feed.
- beagle3 2y agoThe reason the web won is that it does NOT need specific clients for every single thing. Essentially every kind of service (e.g. email, blogging, q&a, live news) is available without JavaScript, thus, using a pure html through http interface. The problem with a-standard-protocol-per-service is that new uses arrive in a distributed, unplanned manner. Looking at instant messaging history is instructive: there were 3 protocols in major use (aim, msn, icq) about 20 other in common use. The “standard” committee was sabotaged by the major players for years and eventually disbanded, culminating in the only open option in some use (not major use, just some use) - XMPP - to win by default, except the providers explicitly chose to NOT interop (Facebook, WhatsApp when it was independent, Google chat).
- sph 2y agoI am definitely interested, as someone that has been doing independent research on the work of STEPS and particularly Piumarta and Warth for the past few years — I'm not sure how to get in contact with this initiative. Any pointers? Honestly I think the focus should move farther than Smalltalk; it has shown what computers could be like in the 80s, but in the age of multi-core and pervasive networking, some of its ideas do not map well. My research these days is on L4-type microkernels, capabilities which are an improvement over "basic" object-orientation, and RISC-V processors with CHERI technology: incidentally I just learned there is a European company working on this integration (Codasip), which would finally allow one to write distributed and secure systems starting from simple primitives such as message passing. If you know where to contact people working on this kind of problems, EU-based, I am most interested. Email in profile.
- renox 2y agoA resounding failure you mean: they just demoed their SW and didn't provide them in a way where people could build on their research. And I didn't see much following research, do you have links? You're the third person (at least) who claim to have Frank working but as the other there's nothing concrete.. I wonder why? Maybe it's a copyright issue..
- vendiddy 2y agoI feel that it's worth mentioning that Kay and others believe the web browser has a fundamental flaw: you send data formats that the browser interprets rather than self contained "objects" that know how to execute themselves. This is why we've been stuck with tech like CSS, JavaScript, and HTML and it's so hard to break out. Their version of a browser would likely be an address bar with the ability to safely run arbitrary programs (objects) in the space below. HTML, CSS, and JS would be special cases of this.