3 ms·
The original piece was on developing with a long-scale time horizon (10 years), so you could go with software that has been very stable over comparable time sca
by perlgeek 2y ago
The original piece was on developing with a long-scale time horizon (10 years), so you could go with software that has been very stable over comparable time scales.
For example, there are corners of the Perl ecosystem that have been really stable for a long time. Perl itself is very conservative with backwards-incompatible changes, and DBI, the module that abstracts away database interactions, has been around for a long time (the oldest changelog entry is from 1995, but that was for version 0.58, I'd be surprised if it weren't even older).
Of course, then you don't get the fancy, modern libraries, but going with DBI plus DBD::Pg is probably more efficient than coding your own, and stable enough for a ten-year horizon.
Another approach might be to move the really critical pieces of your software to a much simpler interface. For example, HTTP/2 looks much more complicated than HTTP/1.1, so your software might only implement (a subset of) a HTTP/1.1 server, and then you can use an off-the-shelf reverse proxy to expose it to the "modern" internet. This reverse proxy then is easier to replace, because it doesn't handle the core logic of your application.
Or you go really old-school and use CGI, which is an even simpler interface than writing a HTTP server, and any HTTP server that implements CGI would do as a frontend.
- paulryanrogers 2y ago> Perl itself is very conservative with backwards-incompatible changes So much so that Perl 6 became a whole separate (doomed?) language after trying to change too much.