4 ms·
Fundamentally, I see programming as the task of describing what a computer should to. The way we create these instructions have definitely changed during the pa
by filleokus 9y ago
Fundamentally, I see programming as the task of describing what a computer should to. The way we create these instructions have definitely changed during the past 20 years, especially with the large open source movement and stuff like pip and npm. We have higher levels of abstraction now, the LEGO blocks we assemble are larger and more reusable.
In my experience it feels like most of the low hanging fruits, when it comes to abstractions, already have been picked. The databases, ORMs, web servers, UI-frameworks, parsers/encoders, crypto stuff etc. are all pre-built LEGO pieces I use and connect with each other. And it feels like the connection part is my main job.
I would predict that we code mostly in the same way in 2040 as we do now, with the approximately same level of abstraction, but with much better tooling. I want an AI that can continuously read my code as I write it and tell me when I've done a stupid misstake and turned the LEGO block the wrong way.
Also isn't a main problem of professional software development to understand what another human wants me to instruct the computer to do? If my project leader / customer can't manage to instruct another human on how the program should work, can we expect an AI to do better? Of course, the AI can respond quicker on Slack, and ask questions based on knowledge it has from previous projects and have sane defaults based on experience, but still. I'm sceptical.
- jsmthrowaway 9y ago> The databases, ORMs, web servers, UI-frameworks, parsers/encoders, crypto stuff etc. are all pre-built LEGO pieces I use and connect with each other. Keep in mind there is far more programming than Web programming in the world. It's important to keep that perspective when ruminating on programming at large, and based on the pieces you mentioned, it sounds like you're limiting yourself to that mindset. (That's OK.)
- filleokus 9y agoYeah, of course. It's what I do mostly these days. As mentioned in other threads, some people still work at much lower abstraction level, and even hand optimise stuff that is really critical and can't be left to a stupid compiler. But isn't the trend with larger (/ "more useful") abstractions spreading even outside the sphere of web stuff? I'm thinking about stuff like game engines, ML frameworks or all the standard libraries for mobile plattforms. I would really like to know how the life of a network card firmware developer is like, or writing drivers for graphics cards, or software in highly reliable systems like cars or something. I guess their work is quite different from mine.