9 ms·
This is a follow-up to a major component of the http://vpri.org/writings.php http://vpri.org/writings.php project that created an self-contained office suite, O
by corysama 6y ago
This is a follow-up to a major component of the http://vpri.org/writings.php http://vpri.org/writings.php project that created an self-contained office suite, OS and compiler suite in something like 100-200k lines of code without external dependencies.
- hobo_mark 6y agoDo you have a link to the project? I'm failing to find it on that page.
- beagle3 6y agoNot op, and can’t google now but the project was called STEPS, they did a down-to-metal os including network and GUI (and mote) in 20k lines. Don’t remember anything about office suite. Related names I remember are Alan Kay, Dan Amelang, Alessandro Wirth and Ian Piumarta.
- renox 6y agoThe 'Word' equivalent was called Frank but AFAIK nobody has been able to reproduce what was demonstrated.. Quite painfully ironic for a software research project that they didn't use properly a VCS..
- elgertam 6y agoThey did use VCS, actually, but a lot of them used SVN and each person in the STEPS project was hosting their own code. Most of those servers have gone dark now, though you can find random ports over to GitHub (rarely with the version history). As far as I can tell, Dan Amelang and Alex Warth were the only two who used git or moved their code over to git.
- hobo_mark 6y agoThank you, funnily enough this lead me back to the orange website: "STEPS Toward the Reinvention of Programming, 2012 Final Report Submitted to the National Science Foundation (NSF) October 2012" https://news.ycombinator.com/item?id=11686325 https://news.ycombinator.com/item?id=11686325
- elgertam 6y agoThe biggest artifact from STEPS was Frank, which was at the time bootstrapped using Squeak Smalltalk and included the work from Ian Piumarta (IDST/Maru, which was a fully bootstrapped LISP down to the metal), Dan Amelang (Nile, the graphics language, and Gezira, the 2.5D graphics library implemented in Nile, which both depended on Maru), Alex Warth (OMeta, which had some sort of relationship to Ian's work on Maru), Yoshiki Ohshima (a lot of the experimental things from Alan's demos of Frank were made by Yoshiki) and then several other names. I got close to getting Frank working, but honestly, I'm not sure it's worth it at this point. A lot of the work is 10-15 years old, and the last time I dove in, I ran into issues running 32-bit binaries. The individual components are more interesting and could be packaged together in some other way. Since it was a research project, STEPS never quite achieved a cohesive, unified experience, but they proved that the individual components could be substantially minimized and the cost of developing them amortized over a large project like a full GUI environment. Nile and some of the applications of Maru, like a minimal but functioning TCP/IP stack that can be compiled to bare metal by virtue of being made in Maru, still fascinate me. Work on Maru is ongoing, albeit run by a community (with some input from Ian), Nile has been somewhat reborn of late, Ohm is again under active development as the successor to OMeta and Alan is still around. (Source: Dan is a friend and colleague, and I've met a few of the STEPS/VPRI people that way.)
- e12e 6y agoSee: https://en.m.wikipedia.org/wiki/Ometa https://en.m.wikipedia.org/wiki/Ometa (including reference section) Or go to: http://www.vpri.org/writings.php http://www.vpri.org/writings.php If I recall correctly you want: "STEPS Toward the Reinvention of Programming, 2012 Final Report Submitted to the National Science Foundation (NSF) October 2012" (and earlier reports) Discussed on hn: https://news.ycombinator.com/item?id=11686325 https://news.ycombinator.com/item?id=11686325 And: https://news.ycombinator.com/item?id=585360 https://news.ycombinator.com/item?id=585360 Notable for implementing tcp/ip by parsing the rfc. "A Tiny TCP/IP Using Non-deterministic Parsing Principal Researcher: Ian Piumarta For many reasons this has been on our list as a prime target for extreme reduction. (...) See Appendix E for a more complete explanation of how this “Tiny TCP” was realized in well under 200 lines of code, including the definitions of the languages for decoding header format and for controlling the flow of packets." (...) "Appendix E: Extended Example: A Tiny TCP/IP Done as a Parser (by Ian Piumarta) Elevating syntax to a 'first-class citizen' of the programmer's toolset suggests some unusually expres- sive alternatives to complex, repetitive, opaque and/or error-prone code. Network protocols are a per- fect example of the clumsiness of traditional programming languages obfuscating the simplicity of the protocols and the internal structure of the packets they exchange. We thought it would be instructive to see just how transparent we could make a simple TCP/IP implementation. Our first task is to describe the format of network packets. Perfectly good descriptions already exist in the various IETF Requests For Comments (RFCs) in the form of "ASCII-art diagrams". This form was probably chosen because the structure of a packet is immediately obvious just from glancing at the pictogram. For example: +-------------+-------------+-------------------------+----------+----------------------------------------+ | 00 01 02 03 | 04 05 06 07 | 08 09 10 11 12 13 14 15 | 16 17 18 | 19 20 21 22 23 24 25 26 27 28 29 30 31 | +-------------+-------------+-------------------------+----------+----------------------------------------+ | version | headerSize | typeOfService | length | +-------------+-------------+-------------------------+----------+----------------------------------------+ | identification | flags | offset | +---------------------------+-------------------------+----------+----------------------------------------+ | timeToLive | protocol | checksum | +---------------------------+-------------------------+---------------------------------------------------+ | sourceAddress | +---------------------------------------------------------------------------------------------------------+ | destinationAddress | +---------------------------------------------------------------------------------------------------------+ If we teach our programming language to recognize pictograms as definitions of accessors for bit fields within structures, our program is the clearest of its own meaning. The following expression cre- ates an IS grammar that describes ASCII art diagrams."
- infinite8s 6y agoThey were trying for 10k lines of code(I think I saw Alan Kay mention online that they got to about 20k lines).