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.
> 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.
I 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.
Free (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.
I 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.
>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.)
> ... 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.
> 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...
I’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.
> VPRI closed because [the] STEPS [grant] ended and because Alan had to retire at some point. HARC and/or CDG Labs continued the work, but then closed as well.
I couldn't help but notice that the authors were credited "In random order" and am now wondering a) Why not alphabetical? and b) Did they just shuffle the order once or was it "Random until we found an order that happened to match some other criteria we had in mind"
This sort of program is always such a huge waste of time. The way progress is made is not by carefully studying all the ways something is currently done and then thinking "maybe we make it graphical". This is the sort of thing that happens when there is too much grant money available and no ideas, so they just put 20 mediocre grad students to work. That is just never going to produce anything that is going to resemble in any way what programming will actually look like when it is 'reinvented'.
Let me guess, they published a bunch of papers, did a bunch of experiments like "lets do X but gui" "what if you didn't have to learn syntax" and then nobody ever did anything with any of the work because it was a total dead end.
Look at how progress has moved in the past. It wasn't from some deliberate process. Generally technology improves in some way, and a person with early access to that advance just immediately applies it to some problem.
The instant computers got powerful enough, someone invented assembly.
The instant computers got powerful enough, they invented lisp and C. There wasn't even a gap of a year in most cases from some new capability being available and someone applying it. There wasn't some grand plan, it was just someone playing with a powerful new capability and using it for something.
This happens across all of human activity. The Wright brothers weren't special geniuses, they happened to be working on kites when engines with just enough power/weight ratio became available to keep a kite in the air on it's own power, and they slapped one of those engines on a kite. If they hadn't done it someone else would have done it a month later because once the technology was available, the innovation was obvious.
You don't make leaps from paying grad students to play around with "how can we make programming better", you get it from all of a sudden an AI can just generate code.
Perhaps you are aware of who Alan Kay, Bret Victor, Ian etc are, but... anyway, I just wanted to chip in with some context for those who are not aware. Alan Kay led the creation and development of Smalltalk at Xerox PARC, thus creating the first real GUI introducing all the UX elements we today take for granted (windows, buttons etc - yes, the same that Steve Jobs got a demo of), establishing OOP (some would argue Simula was first, but Smalltalk took it 10x further) and much, much more. So his legacy in the world of computing is... legendary I would argue, just google him.
Now, Ian has done truly brilliant VM JIT work in the Smalltalk community and I suspect that Ian did a lot of the DSL related stuff in STEPS, like the TCPIP stack etc.
So this is not just some "random folks" :) and.. some of the most brilliant work comes when you are really not sure where you are going. The original Smalltalk work that gave us OOP and modern GUIs came from Alan's life long task of making computers usable by children in order to amplify education. Most would argue we are still struggling with that task ;) but at least we got a lot of other things out of it!
> Let me guess, they published a bunch of papers, did a bunch of experiments like "lets do X but gui" "what if you didn't have to learn syntax" and then nobody ever did anything with any of the work because it was a total dead end.
This response is very confusing to me, and it seems you have a very different understanding of what STEPS did than I do.
In my understanding, the key idea of STEPS was that you can make systems software orders of magnitude simpler by thinking in terms of domain-specific languages, i.e., rather than write a layout engine in C, first write a DSL for writing layout engines and then write the engine in that DSL. See also, the "200LoC TCP/IP stack" https://news.ycombinator.com/item?id=846028
You seem to think they're advocating a Scratch-like block programming environment, but I'm not sure that's accurate. Can you point to where in their work you're finding this focus?
I too believe STEPS was basically a doomed project, but I don't think it's for the reason you've said (moreso just the extreme amount of backwards compatibility users expect from modern systems).
(--- edit: ---)
> You don't make leaps from paying grad students to play around with "how can we make programming better", you get it from all of a sudden an AI can just generate code.
I think this is a more compelling point, but it doesn't seem to explain things like the rise of Git as "a way to make programming (source control) better," and it's not clear how to determine when something counts as an "all of a sudden" sort of technology. They would probably say their OMeta DSL-creation language was this sort of "all of a sudden" technological advance that lets you do things in orders of magnitude less code than before.
Related:
VPRI - https://news.ycombinator.com/item?id=27722969 - July 2021 (1 comment)
Viewpoints Research Institute concluded its operations at the beginning of 2018 - https://news.ycombinator.com/item?id=26926660 - April 2021 (36 comments)
Final “STEPS Toward the Reinvention of Programming” Paper [pdf] - https://news.ycombinator.com/item?id=11686325 - May 2016 (64 comments)
A computer system in less than 20k LOC progress report - https://news.ycombinator.com/item?id=1942204 - Nov 2010 (3 comments)
A compiler made only from PEG-based transformations for all stages - https://news.ycombinator.com/item?id=1819779 - Oct 2010 (2 comments)
Steps Toward The Reinvention of Programming - https://news.ycombinator.com/item?id=141492 - March 2008 (12 comments)
I feel certain that there were other HN threads related to this project if anyone wants to dig around for some!
Alan Kay: Is it really “Complex”? Or did we just make it “Complicated”? didn’t get much love 10 years ago.
https://news.ycombinator.com/item?id=9123811
It did get some attention 10 years and 2 months ago ;)
https://news.ycombinator.com/item?id=8857113
Any updates on this program in the past 13 years?
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
[2] https://www.youtube.com/watch?v=ubaX1Smg6pY
> 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.
A 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..
I 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.
Free (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.
I 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.
>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.)
> ... 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?
I’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.
That's pretty exciting!
The linked PDF (2012) is the grant final report.
> VPRI closed because [the] STEPS [grant] ended and because Alan had to retire at some point. HARC and/or CDG Labs continued the work, but then closed as well.
https://news.ycombinator.com/item?id=26608495 (2021)
I couldn't help but notice that the authors were credited "In random order" and am now wondering a) Why not alphabetical? and b) Did they just shuffle the order once or was it "Random until we found an order that happened to match some other criteria we had in mind"
With PDF, you can in principle have a different random order every time you open the PDF.
Interesting point! I wonder how that fits in to PDF/A and the idea that an archival format and long-term preservation of the original document...
Please do link an example of PDF randomness...
It's clear that alphabetical order is open to manipulation. Down that path and everybody in the scientific career will be named A.A.
I really wish someone would pick up ian piumarta’s object system
You mean COLA etc? Yeah, pretty wild stuff. I admit I couldn't fully grasp it at the time (and most likely not now either!)
https://www.piumarta.com/software/cola/
We have arrived at vibe coding in 2025. Coding with English sentences
[dead]
This sort of program is always such a huge waste of time. The way progress is made is not by carefully studying all the ways something is currently done and then thinking "maybe we make it graphical". This is the sort of thing that happens when there is too much grant money available and no ideas, so they just put 20 mediocre grad students to work. That is just never going to produce anything that is going to resemble in any way what programming will actually look like when it is 'reinvented'.
Let me guess, they published a bunch of papers, did a bunch of experiments like "lets do X but gui" "what if you didn't have to learn syntax" and then nobody ever did anything with any of the work because it was a total dead end.
Look at how progress has moved in the past. It wasn't from some deliberate process. Generally technology improves in some way, and a person with early access to that advance just immediately applies it to some problem.
The instant computers got powerful enough, someone invented assembly.
The instant computers got powerful enough, they invented lisp and C. There wasn't even a gap of a year in most cases from some new capability being available and someone applying it. There wasn't some grand plan, it was just someone playing with a powerful new capability and using it for something.
This happens across all of human activity. The Wright brothers weren't special geniuses, they happened to be working on kites when engines with just enough power/weight ratio became available to keep a kite in the air on it's own power, and they slapped one of those engines on a kite. If they hadn't done it someone else would have done it a month later because once the technology was available, the innovation was obvious.
You don't make leaps from paying grad students to play around with "how can we make programming better", you get it from all of a sudden an AI can just generate code.
Perhaps you are aware of who Alan Kay, Bret Victor, Ian etc are, but... anyway, I just wanted to chip in with some context for those who are not aware. Alan Kay led the creation and development of Smalltalk at Xerox PARC, thus creating the first real GUI introducing all the UX elements we today take for granted (windows, buttons etc - yes, the same that Steve Jobs got a demo of), establishing OOP (some would argue Simula was first, but Smalltalk took it 10x further) and much, much more. So his legacy in the world of computing is... legendary I would argue, just google him.
Now, Ian has done truly brilliant VM JIT work in the Smalltalk community and I suspect that Ian did a lot of the DSL related stuff in STEPS, like the TCPIP stack etc.
So this is not just some "random folks" :) and.. some of the most brilliant work comes when you are really not sure where you are going. The original Smalltalk work that gave us OOP and modern GUIs came from Alan's life long task of making computers usable by children in order to amplify education. Most would argue we are still struggling with that task ;) but at least we got a lot of other things out of it!
> Let me guess, they published a bunch of papers, did a bunch of experiments like "lets do X but gui" "what if you didn't have to learn syntax" and then nobody ever did anything with any of the work because it was a total dead end.
This response is very confusing to me, and it seems you have a very different understanding of what STEPS did than I do.
In my understanding, the key idea of STEPS was that you can make systems software orders of magnitude simpler by thinking in terms of domain-specific languages, i.e., rather than write a layout engine in C, first write a DSL for writing layout engines and then write the engine in that DSL. See also, the "200LoC TCP/IP stack" https://news.ycombinator.com/item?id=846028
You seem to think they're advocating a Scratch-like block programming environment, but I'm not sure that's accurate. Can you point to where in their work you're finding this focus?
I too believe STEPS was basically a doomed project, but I don't think it's for the reason you've said (moreso just the extreme amount of backwards compatibility users expect from modern systems).
(--- edit: ---)
> You don't make leaps from paying grad students to play around with "how can we make programming better", you get it from all of a sudden an AI can just generate code.
I think this is a more compelling point, but it doesn't seem to explain things like the rise of Git as "a way to make programming (source control) better," and it's not clear how to determine when something counts as an "all of a sudden" sort of technology. They would probably say their OMeta DSL-creation language was this sort of "all of a sudden" technological advance that lets you do things in orders of magnitude less code than before.
"The instant computers got powerful enough, someone invented assembly.
"The instant computers got powerful enough, they invented lisp and C. …
"… The Wright brothers weren't special geniuses, they happened to be working on …"
Even by your own account, it sounds like industrious, visionary researchers have been continuously making ready to exploit new hardware.