3 ms·
One thing that has been sorely missing IMO in the last 25 years of software proliferation is a complete usable system that can be understood in its entirety by
by eterps 6y ago
One thing that has been sorely missing IMO in the last 25 years of software proliferation is a complete usable system that can be understood in its entirety by a single human being in one lifetime.
It doesn't have to be your day-to-day desktop, but for learning, research and experimenting I think solutions with that goal would still be worthwhile.
- chriswarbo 6y agoViewpoints Research Institute (VPRI) tried to make such a system around 10 years ago http://www.vpri.org http://www.vpri.org (e.g. http://www.vpri.org/pdf/tr2012001_steps.pdf http://www.vpri.org/pdf/tr2012001_steps.pdf ) IIRC it bootstraps from a prescheme-like language into a Smalltalk-like dynamic language ( https://www.piumarta.com/software/maru https://www.piumarta.com/software/maru https://www.piumarta.com/software/cola https://www.piumarta.com/software/cola ), and uses PEG parsers ( https://en.wikipedia.org/wiki/OMeta https://en.wikipedia.org/wiki/OMeta ) to implement domain-specific languages, e.g. the Nile graphics language ( https://github.com/damelang/nile https://github.com/damelang/nile )
- eterps 6y agoThanks, I am aware of the research at VPRI. However nothing coherent seems to have come out of it. Yet I am running a complete Oberon system on my laptop as we speak. And all source and documentation is available at http://www.projectoberon.com http://www.projectoberon.com I really liked the idea though.
- scroot 6y agoI really wish he would release the updated Oberon book in another format besides PDF.
- kqr 6y ago> a complete usable system that can be understood in its entirety by a single human being in one lifetime. Wait, what does that even mean? I assume it cannot, then, run on hardware executing any form of microcode because that adds many man-years of what's essentially software complexity to the problem. What I'm trying to say is that at some point you have to draw a line and say "anything below this line is considered the platform the software runs on, and does not need to be included in the understanding" and where you draw this line is completely arbitrary. One might argue that x86 is a platform that doesn't have to be understood, as long as one understands its interface. Someone else can argue that the JVM is a platform whose internals need not be understood. Yet other people popularly picture the web browser as their platform. In the extreme case in the other direction, electrical circuits (with a dash of quantum mechanics, I think?) could be considered the platform of the x86. I have yet to hear a rational argument for why a particular thing counts as "the platform" more than any other.
- eterps 6y ago> Wait, what does that even mean? I assume it cannot, then, run on hardware executing any form of microcode because that adds many man-years of what's essentially software complexity to the problem. Have you looked at the hardware design at http://www.projectoberon.com http://www.projectoberon.com ? > What I'm trying to say is that at some point you have to draw a line and say "anything below this line is considered the platform the software runs on, and does not need to be included in the understanding" and where you draw this line is completely arbitrary. What I am trying to say is that Project Oberon proofs it's possible to run it on a hardware design that can be understood by that same human being in one lifetime. > I have yet to hear a rational argument for why a particular thing counts as "the platform" more than any other. Again, I am talking about the complete thing. And how is this even a discussion? The amount of added complexity when you compare an Oberon system with a modern phone or desktop is staggering. Especially if you go as deep as the microcode level.
- kqr 6y agoMaybe part of the problem is that I underestimate how much a human can understand in a lifetime! Thinking more critically about it, you might be right that it's possible to accomplish more than I expect.
- eterps 6y agoYeah, I guess it depends on what legacy you're willing to part from. Something like https://www.amazon.com/Elements-Computing-Systems-Building-Principles/dp/0262640686/ https://www.amazon.com/Elements-Computing-Systems-Building-P... is not hard, but it's arguably a toy system. IMO Project Oberon starts from the same principles and builds up to a productive enironment including text processing, a compiler, very basic hypertext, basic networking and hardware to run it on.
- joveian 6y agoNetBSD (and I'd guess OpenBSD) are closer to that than any other similarly functional operating systems I know of. Still quite a lot of code (and arguably not complete, depending on how you define that) but way easier than Linux.
- eterps 6y agoI would say that Xv6 or Xinu are much closer than any BSD if you're willing to disregard the implementation of the compiler, graphical display and hardware/firmware it runs on.