4 ms·
common lisp the language hasn't changed since it was standardized, so code written to the strengths of the standard has not experienced bit rot. screamer, serie
by t14026 7y ago
common lisp the language hasn't changed since it was standardized, so code written to the strengths of the standard has not experienced bit rot. screamer, series, cmu's ai code archive, old common lisp-based books (like norwig's paradigms of ai) will all work out of the box. that is not to say that the language runtimes are not improving, instead they focus on improvements that complement the standard, but you can grab any old algorithm, and it'll work in recent sbcl.
there are underspecified parts of the standard, notably the protocol around the object oriented system (common lisp object system meta-object protocol), and then there are parts that are not specified at all: networking, interactions with C libraries, unicode, threading. each runtime implements it in its own particular way. that means that the core of something like CLX, which is the network interface to X11, could've stayed exactly the same, but the networking outer layer had to be updated with the details of specific runtimes. in case of X11 that support goes all the way back to lisp machine Genera. on the other hand something like SSL support which will both rely on external C library and concern itself with network, will usually bit rot very rapidly.
- taeric 7y agoIt just strikes me as different from many newer projects that don't have this level of stability anywhere. We literally embraced refactoring as a thing you have to constantly do across the entire codebase.
- t14026 7y agothere's definitely sub-groups in the computer world who argue for stability. i've first encountered that in common lisp, but i think a recent interest in Ada is also driven by similar concerns. don knuth with TeX and literate programming also comes to mind. for example i wrote my billing code almost 15 years ago, and it's common lisp code that spits out plain TeX file. i've added features to it, but if i were to attempt to run the first version, it'll work without any changes. honestly i personally think it's aesthetically pleasing to work with old code, with changelog spanning a decade, because of the richness of thought that went into it. like picking up a woodworking tool at a yard sale, and noticing all the different hints of care that went into it. arguing for stability in the face of other tradeoffs is an unpopular position. there are people who do it, but simply linking them from here will probably result in downvotes. i think arguments against systemd or in support of X11 come from people that want to escape the constant marginal benefit refactoring cycle.