Dreaming the future of software; Project Editor ECMAScript 2015;
Reformed Smalltalker
JavaScript historian dl.acm.org/doi/abs/10.114…
@allenwb@mastodon.social
(Retweeted with submission deadline correction)
PX/21: The Programming Experience Workshop (virtual)
Submissions due 14 Feb 2021.
“What can we build to share the joy of programming with others?”
Call for participation:
2021.programming-conference.…
Apple’s OpenDoc and Microsoft’s OLE/ActiveX supported creation of “compound documents”. The technology still exists in MS Office’s ability to, for example, embed Excel spreadsheets in Word docs.
Perhaps a “worse is better” causality of more primitive but ubiquitous Web docs.
The problems described in this OpenDoc video are still so relevant, 30 years later.
"Developers pile on feature after feature. The result is large monolithic applications. Data rich content is hard to share across applications..."
youtube.com/watch?v=oFJdjk2r…
Is software development fundamentally different from traditional engineering disciplines? After 17 interviews with "crossover engineers" @hillelogram has written three essays with some interesting findings.
In 2019 I started the Crossover Project, where I studied how software and "real" engineering relate by interviewing people who've worked in both. 17 interviews, 12 hours of recordings, and untold hours editing later, I'm finally ready to share my findings! hillelwayne.com/post/crossov…
In the 1980s, Brad created Objective-C and was a strong proponent of componentized software.
You can read the story of these efforts in dl.acm.org/doi/10.1145/33863…
Time to pull out my thread on “Why general purpose deep cloning is intractable”
nitter.catsarch.com/awbjs/status/101816693…
Too bad the other thread is references is no longer available
BTW, I just came up with the term “Heirloom Software/Systems”. Really like it.
Has anybody else used heirloom in this context?
I’ve been looking for something better term than “legacy” especially for significant software that grappled with (and perhaps solved) “modern” problems.
An exciting wind and rain storm last night. This birch crashed into our roof at 12:20 am...and woke me up. Fortunately it seem to have caused minimal damage...
Circa 1970, one of my high school friends had a summer doing patch pannel programming. Haven't thought about this before, but the similarity to spreadsheet programming is something to ponder. Also, recurring attempts to define effective visual "wiring" programming languages.
Accounting machines were "programmed" by a removable wiring panel. Each punch-card column could be wired to a counter or to a printer column, controlling the output format. Relays supported conditional logic. Later computers scared customers, used to wiring, not programming.
ALT A plugboard, with many colorful wires plugged into it. It has a carrying handle at the top.
ALT Diagram of a plugboard showing how the wires are connected for various functions.
ALT Closeup of the plugboard showing how wires plug into holes. Labeled "IBM 402-403".
4/ All of these are virtual machines implemented in pure JavaScript. The Smalltalk-78 one runs much faster now on JS than it ever was when running on the 70s hardware.
We have come full circle: Smalltalk tech is behind all modern JS engines (which would deserve its own thread).
Dan Ingalls' Smalltalk Zoo opens its gates:
computerhistory.org/blog/int…
Also, Dan's HOPL4 paper (linked from the article) is a must read for anyone interested in Smalltalk and the evolution of object technologies.
The goals & motivations for Unix and Smalltalk were very different.
As your essay mentions, Unix was a 2nd (3rd?) generation timesharing system designed to “make it easy to write, test, and run programs.” Presumably conventional programs of its era. It had immediate utility.
1/
Unix and Smalltalk (and Lisp machines) matured roughly contemporaneously. And at a time when each computer manufacturer and product line was its own bubble universe. There was no “outside”. A few languages and libraries worked in multi-bubbles, but with significant effort.
Smalltalk and other full programming systems came later, each with a different core set of ideas - alternative bubbles. The Unix bubble prevailed, grew to surround us and now we're making bubbles inside of it using the *Unix-centric* composition models.
But, I’m not sure whether that period teaches us anything about how the next round of technology might emerge and integrate with the current pervasive technical ecosystem.
Emerging into empty territory is very different from what we have to adapt to today.