Hacker News new | ask | show | jobs
by verri 3183 days ago
Maybe interesting to post here are the comments of Steve Yegge (GeoWorks developer) on large scale assembly projects:

https://youtu.be/tz-Bb-D6teE?t=2161

His argument was that while assembly allowed for more optimized local routines, they've lost the perspective on how the system should behave at large (the handling of window drawing routines, etc.)

2 comments

Folks might forget that before unix, most OSs were written in assembly, the obvious important one not written in asm was Multics (used PL/I). I worked on the Tops-10 and -20 OSs and they were pure assembly. People seem to think that it's not possible to write maintainable, reliable code in assembly, that's just not true. The DEC source was well-documented and well-tested. Sure, it had bugs fixed each release, as every code base has bugs. Still, I was never flummoxed as to what a routine did: after all, it was executing one machine instruction after another, and once you knew the operands, you knew the result. Debugging was at the machine level, instruction by instruction.

Building higher-level code was accomplished just like it's done today: from smaller modules / subroutines. PUSHJ - Push PC and Jump, or 'Call'.

These days, writing software is almost magic, meaning there is a whole 'chain of trust' that must be invoked -- all based on belief that it's all correct -- before proceeding. With assembly, magic stops at the hardware / software boundary; that is the actual machine instructions.

Burroughs B5000 was written with zero lines of Assembly in 1961 with ESPOL, followed by NEWP, both Algol 60 variants with intrinsics.

Xerox PARC used Mesa with microcoded CPUs, after using BCPL initially.

IBM used PL/8 for their RISC OS and compiler research.

OS/400 was written in PL/M.

There are plenty of other examples, UNIX was not the only one to be written in an high level language, regardless of what C devs advocate.

Thanks that is a fantastic comment. I particuliarly appreciate the "These days, writing software is almost magic, meaning there is a whole 'chain of trust' that must be invoked".

Even as late as the 80" there were large business software like telecom switches (ITT's Metaconta or Alcatel's E10) that were written only in assembly. Those software had to be reliable.

Geoworks.

Haven't heard that mentioned in a long while.

I miss those guys, they did some nice stuff. Shame it didn't catch on.