5 ms·
And these operating systems in both Smalltalk and Lisp were both better and easier to write than the standard ones of today. Look, I love Lisp as much as the n
by xenophonf 9y ago
And these operating systems in both Smalltalk and Lisp were both better and easier to write than the standard ones of today.
Look, I love Lisp as much as the next hacker, but is Alan Kay for real? Where's the Lisp equivalent to this C code?
https://github.com/dwelch67/raspberrypi/tree/master/blinker01 https://github.com/dwelch67/raspberrypi/tree/master/blinker0...
More importantly, where's the accompanying toolchain? Seriously, I really want to know because I'd love, Love, LOVE to play around with it.
- tonyg 9y agoFor example, https://github.com/tonyg/pi-nothing/blob/master/kernel.nothing#L203-L221 https://github.com/tonyg/pi-nothing/blob/master/kernel.nothi... does something similar to that blinker. It might not be quite what you're after, because it's only superficially a lisp; more an S-expression veneer over something C-like. Toolchain is the rest of the repo. Currently written in Racket. (BTW this is feasibility-study-level stuff, not production stuff. It's messy as hell because I haven't done even the most rudimentary tidying-up of it for public view. Caveat lector.) But hardware access - replacing C - is the really easy part. The real power of a lisp/Smalltalk OS is getting away from the hardware in one "rocket jump", as Alan put it. Once you can start using integrated high-level language constructs spanning the whole of the abstraction tower from hardware through user interface, that's when it starts to get fun. The really good stuff is the new abstractions you can unlock. Smalltalk is a far better Unix than Unix, from that point of view.
- scroot 9y agoThe way things stand now, the only required piece of application software that a new personal computer needs in order to be viable is a web browser. But once you have that, and the system of your machine is sufficiently compelling, it would work for a great many people. This is why I think someone is going to build something like an actual top to bottom Lisp/Smalltalk/Whatever machine sooner than we think. If Smalltalk machines existed, I would buy one today.
- mbrock 9y agoWell, wouldn't that just be a JavaScript machine implemented in Smalltalk?
- scroot 9y agoAll I meant by bringing up the web browser is that for a personal computer to be usable in reality by a lot of people they'll need a web browser. But just that user application alone gets them really far: email, office productivity, etc. It's a good first application to have in any system. Therefore we could have all kinds of exotic, bespoke personal computers again, except that unlike the 80s and 90s we now have fairly standardized formats across systems. This gives us the freedom to make whatever kinds of architectures and OSes we want. In this case, that could even include a machine whose board is designed from the ground up to run Lisp or Smalltalk or something we evolve out of those as its operating system. The web browser that would come with such a default system would be written in one of those languages. Yes, I know making a web browser is an enormous undertaking, but at least some totally new personal computing system wouldn't have to then also implement office productivity etc.
- mbrock 9y agoAgreed. I think the best way would be to use Linux as the kernel, maybe with Wayland for display, and Chromium/Firefox in a sandbox, and then the custom OS system running alongside this. Emacs with the Elisp window manager is an example.
- scroot 9y agoI don't think we're on the same page here. You don't need Linux for the kernel. Insofar as there's a kernel, it's the programming environment itself (like Smalltalk) or a set of primitive programs written in that environment (like Lisp). For graphics you don't need X or Wayland or any of that stuff. BitBlt was able to handle graphics in Smalltalk, because the hardware of the Alto (via microcode) was setup to allow Smalltalk to handle all graphics. If you truly wanted something optimized, something like Nile/Gezira and DSLs written in the environment could work too. The whole point is that such a system would need to be redesigned and rebuilt from the hardware level on up. A difficult task, to be sure, but the reward is invaluable: the ability to reason about the entire system through the system itself.
- loup-vaillant 9y ago> is Alan Kay for real? Where's the Lisp equivalent to this C code? Have you ever heard of the STEPS project? It's a complete OS, with applications libraries, and compiler collection, all in 20,000 lines of code. Pretty real if you ask me. Here are the reports (latest first). http://www.vpri.org/pdf/tr2012001_steps.pdf http://www.vpri.org/pdf/tr2012001_steps.pdf http://www.vpri.org/pdf/tr2011004_steps11.pdf http://www.vpri.org/pdf/tr2011004_steps11.pdf http://www.vpri.org/pdf/tr2010004_steps10.pdf http://www.vpri.org/pdf/tr2010004_steps10.pdf http://www.vpri.org/pdf/tr2009016_steps09.pdf http://www.vpri.org/pdf/tr2009016_steps09.pdf http://www.vpri.org/pdf/tr2008004_steps08.pdf http://www.vpri.org/pdf/tr2008004_steps08.pdf http://www.vpri.org/pdf/tr2007008_steps.pdf http://www.vpri.org/pdf/tr2007008_steps.pdf
- xenophonf 9y agoNo, I hadn't heard of STEPS. Thanks for the links!
- macmac 9y agoHere you go: https://gist.github.com/chomy/003deea83b5a13ad1ee3 https://gist.github.com/chomy/003deea83b5a13ad1ee3
- xenophonf 9y agoThat's great but it isn't the same thing as what I linked to, which is a small program loaded by the Raspberry Pi's boot loader. What I'm after is the Common Lisp or Scheme equivalent to something like the FreeBSD kernel's libkern, plus a compiler/linker capable of generating an image that could be read into memory by a boot loader: https://github.com/freebsd/freebsd/tree/master/sys/libkern https://github.com/freebsd/freebsd/tree/master/sys/libkern