‘Iacta alea est’
Fundamentals over frameworks could also be phrased as preferring essence over accident. Fundamentals represent that which is essential to the problem space, frameworks can be seen as an abstraction betraying the necessity of boilerplate, that which is accidental to the problem being solved.
When learning frameworks—I’m thinking here of things like Ruby on Rails, Ember.js and the like—you can often be found spinning your wheels in the mud of abstraction. Gain enough knowledge and you have, in effect, purchased a four-wheel drive, able to glide over the slough of despond onto firmer ground. You’ll get the job done with little fuss.
However, the investment required to achieve that level of understanding should not be ignored. You’re trading time and effort for increased knowledge which in turn gives you increased capability; either by expanding the range of things you can accomplish or by allowing you to accomplish them more quickly.
My problem is that my Land Rover is only suited for the very specific terrain for which I acquired it. If I change my framework then I can say good-bye to my beloved Land Rover and have to grade to a Jeep. And most of the time I can’t trade it in for a discount. The Land Rover is useless. There goes my investment.
When I learned the programming language Elm it blurred the line between language and framework. It was there that I realised that Elm was teaching me fundamentals. Things that are broadly applicable independent of a given language or framework. Although it doesn’t hold true in all cases, I observe that (good) languages teach you that which is essential whereas frameworks are concerned, in the main, with that which is accidental.
—Saturday, January 2nd 2021.