One of the defining characteristics of a good programmer is an instinct for keeping implementation details in the correct layer of an application.
That sounds abstract, but it turns out to explain a huge amount of the progress we’ve made in software development over the last twenty-five years.
And nowhere is that clearer than in Perl web development.
Many of us who built web applications during the dotcom boom spent years learning this lesson the hard way.
We wrote CGI programs that:
parsed HTTP requests
generated HTML by hand
connected directly to databases
embedded SQL inline
mixed business logic with presentation
relied on Apache behaviour
assumed specific filesystem layouts
and often only worked on one particular server configuration
It all worked.…