4 ms·
As I understand it (and this is before my time), garbage collection in lisp languages was really a downer on 70s and even 80s era hardware. I think a case could
by peatmoss 4y ago
As I understand it (and this is before my time), garbage collection in lisp languages was really a downer on 70s and even 80s era hardware. I think a case could be made that C wasn't the only language at the time that could have birthed UNIX, but I'm not sure a lisp family language is in that list. (Edit: noting that C very much happened together with unix)
Java was the first garbage collected language that really hit it bigtime in the mainstream. And even then, I remember the zeitgeist of the early days of Java being that Java was perhaps fatally slow.
A lot has changed since then, and I'm firmly in camp "why can't we have nice things like lisp?" but I'm not sure I'd have picked a lisp (or C) back when the foundations of our current *nix paradigm were laid.
- pjmlp 4y agoBASIC was the very first hitting big time outside big iron, many versions used reference counting as GC algorithm for strings and arrays. There were others as well, Lisp wasn't the only game in town with automatic memory management. As for systems languages predating C, there were several of them starting with JOVIAL in 1958.
- kazinator 4y agoBASIC interpreters for 8 bit microcomputers, having 48 Kb of RAM or less, and running at 1 MHz, used garbage collection for strings just fine. That software was tailor-made to the machines from scratch. I would say it was the size and complexity of Lisp systems, developed in ivory towers on big iron hardware, which had trouble fitting in to emerging low-cost microchip-based hardware. When microcomputers emerged, they had the capabilities of mainframes from 15 (or more) years before. Current software from mainframes just wouldn't fit. That's how a lot of the languages and operating systems became swiftly relegated to the past. (Why do we still have Unix and Unix-like systems today? Unix started relatively late, on small minicomputers that were not so far off from subsequent microcomputers. Unix made the jump from PDP-7, 11 to DEC Vax, and 680x0 Sun boxes and such.) A Lisp system measuring its heaps and image sizes in hundreds of kilobytes or megabytes simply wouldn't fit into a system measured in tens of kilobytes. People working with Lisp machines in the 80's couldn't get customers (or not mass market customers), because mass market customers didn't want to buy expensive hardware. Only some big companies or governments. Today your GNU Bash may hit a 20 megabyte VM footprint, and you don't even notice, let alone pause to think about how "wrong" that is.
- lispm 4y ago> As I understand it (and this is before my time), garbage collection in lisp languages was really a downer on 70s and even 80s era hardware. It mostly was. The main reasons were that GC lacked necessary features and memory was extremely small&expensive. The first really usable GCs arrived with processors like the 68020+MMU or the 68030. Even on a Lisp Machine the GC got much more usable with the introduction of the ephemeral GC, which used hardware support to track memory changes in RAM. As soon as the GC needed to work on virtual memory on disk, it was much slower.