Discussion
Loading...

Post

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
psf
psf
@psf@oldbytes.space  ·  activity timestamp 2 weeks ago

principles of software distillation:

Old software is usually small and new software is usually large. A distilled program can be old or new, but is always small, and is powerful by its choice of ideas, not its implementation size.

A distilled program has the conciseness of an initial version and the refinement of a final version.

A distilled program is a finished work, but remains hackable due to its small size, allowing it to serve as the starting point for new works.

Many people write programs, but few stick with a program long enough to distill it.

  • Copy link
  • Flag this post
  • Block
psf
psf
@psf@oldbytes.space replied  ·  activity timestamp 2 weeks ago

The best example of distilled software that comes to mind is Project #Oberon, which was distilled by Niklaus Wirth (and others) for most of Wirth's lifetime (if you count his earlier time working on Pascal and Modula as earlier steps of the distillation). https://projectoberon.net/

There are also #Forth and #Lisp, of course, but they've been distilled in many different directions by many people so there isn't a clear unifying idea. You have to get more specific. Now, Chuck Moore's evolution of Forth -> MachineForth -> ColorForth certainly counts as distillation.

#LuaLang also comes to mind. Porting the most modern Lua to the 188K TI-92+ calculator (last year) is what sold me on the idea that widely used modern software can remain useful on the oldest computers. That said, Lua is not entirely immune to bloat: I had to roll back from v5.4 to v5.2 to cut my memory usage from ~170K to ~128K 😉

  • Copy link
  • Flag this comment
  • Block
leah & glitches & bits, oh my!
leah & glitches & bits, oh my!
@millihertz@oldbytes.space replied  ·  activity timestamp 2 weeks ago

@psf an argument could be made for Smalltalk-80 too. the original distribution image was less than 1MB and completely portable to anything that implmented the VM it expected

modern Smalltalks have bulked up somewhat, true, but they're still on the good end of the size×content curve

  • Copy link
  • Flag this comment
  • Block
Kirtai
Kirtai
@kirtai@tech.lgbt replied  ·  activity timestamp 2 weeks ago

@millihertz @psf
The earlier Smalltalks even more so.

  • Copy link
  • Flag this comment
  • Block
psf
psf
@psf@oldbytes.space replied  ·  activity timestamp 2 weeks ago

@kirtai @millihertz If it grows over time, that runs counter to the distillation idea. Shrinking over time is so rare....

  • Copy link
  • Flag this comment
  • Block
Kartik Agaram
Kartik Agaram
@akkartik@merveilles.town replied  ·  activity timestamp 2 weeks ago

@psf Hmm, this seems like a slight difference with your original definition of the term, and I like the original better. What matters is absolute size and age, not just whether you added a few bytes or not. If the competition grew by 2x and you grew by 10%, that seems pretty great.

@kirtai @millihertz

  • Copy link
  • Flag this comment
  • Block
Kartik Agaram
Kartik Agaram
@akkartik@merveilles.town replied  ·  activity timestamp 2 weeks ago

@psf You mentioned Lua earlier as a possible candidate for distilled software:

Lua 5.1: 12.7kLoC
Lua 5.2: 14.6kLoC
Lua 5.3: 16.6kLoC
Lua 5.4: 20.0kLoC
Lua 5.5: 21.3kLoC

Definitely growing over time. Does this disqualify it?

But compare Python:

3.13.11: 1.3MLoC
3.14.2: 1.479MLoC

So Python added 150+kLoC. That's 6 Luas. And in what, a fourth or fifth of the time between Lua 5.4 and 5.5.

@kirtai @millihertz

  • Copy link
  • Flag this comment
  • Block

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.1-beta.35 no JS en
Automatic federation enabled
Log in
  • Explore
  • About
  • Members
  • Code of Conduct