Intent vs Process - the evolution of programming

I've been coding for about 35 years professionally. I've programmed through the eras of Mainframe, Desktop, Internet, Mobile, Cloud and now AI/Semantics.

Each of these eras had different patterns and building blocks. Databases evolved from structured to unstructured to distributed to vector and graph, developer workflows got more automated and went from waterfall to agile to CI/CD. This will happen again with the new world of AI, though we don't fully understand it yet - we will need new ways to store data, manage complexity, build programs, do testing and maintenance, etc.

So what are the patterns that we can pick out at a large scale, that help us understand where this might be going? One very large theme I think is the idea of mediation and intent.

What does that mean? Well, coding has always been a process of going from something we want (intent) to something the computer can do (execution). There is always some kind of mediation in that process - we started with the very basic one of describing how numbers would work in code, build simple programming and logic systems, then more advanced programming languages, applications, operating systems, and further abstractions. Each of these is a mediation, or an approximation of the intent, rendered as well as possible into what the machine can do at the time.

As this process goes on, it gets more abstract, and we get closer to pure intent. Sorting is a good example of this. We started with a very manual process and weak understanding of how to do sorts efficiently. If you were in school 30 years ago, you learned all of the different ways to do a sort, and probably spent a semester on data structures and sorting algorithms. Now, you usually just call ".sort" in the programming language of your choice and let the machine work out the details. You have gone from having to describe the process precisely (which kind of sorting algorithm) to just expressing intent ("I need this sorted").

AI has the potential to move us much farther, faster, into the world of intent. As these moves happen, typically both the market for software and the pool of people capable of something that can be considered development expands. Before I was a programmer, you had to have a fairly advanced engineering degree to do almost anything. For me, you still had to be fairly deep into math and the folks able to build desktop apps were fairly rare. But flash forward 30 years, and all kinds of folks can build all kinds of experiences in mobile, web, services, etc. And many don't even bother with implementation details that would have seemed like eldritch magic to me at the start of my career.

AI will do this again - now the machine, in the form of LLMs, can do much more of the mediation for us. We can go directly from intent to action in many cases. So this will change the definition of application, likely to continue along the trajectory of transient and smaller bundles of less fixed functionality. And it will change the definition of programmer again. It's likely that the next generation will look at the idea of programming in anything other than natural language to be as weirdly abhorrent and hard as I looked at assembly in my day - necessary sometimes but gross and unnatural if you didn't have to do it.

We have always been moving along this arc, getting closer and closer to just being able to express intent directly. Programming will never completely go away, but it will seem anachronistic and specialized. When natural language is what's used to "program", everyone will be a "programmer".


(I'll be out on vacation for a few weeks, see you later in June!)

Mohamed Ben Achour

Cloud | DevOps | SDLC | MLOps | AIOps

1 年

I like the idea but what I struggle with the most is testing, how to test an outcome that is not deterministic

回复
Jon Kragh

CEO Proactive Logic. Accelerate Value Creation With Fit-to-Purpose Tech Consultants

1 年

Sam, I look forward to these every week. Appreciate them.

回复

要查看或添加评论,请登录

Sam Schillace的更多文章

  • AI analogies and historical lessons

    AI analogies and historical lessons

    How to make sense of it all. I've decided to keep the primary posts over on Substack.

    1 条评论
  • Motion, Thought, Systems and AI

    Motion, Thought, Systems and AI

    In which I ponder how motion is like thought, why LLMs are like early steam engines (hitting things and pumping water),…

    4 条评论
  • Looking back at the Schillace "laws"

    Looking back at the Schillace "laws"

    Way back in, I think, March or so of 2023, after I’d spent a little while trying to build things with GPT-4, I wrote…

    5 条评论
  • A strange tech parable

    A strange tech parable

    In my role at Microsoft, part of what I do is spend time with the leadership team that runs M365, Office, and Windows…

    12 条评论
  • Simplicity, Clarity, Humility

    Simplicity, Clarity, Humility

    There is an old joke: “sorry this letter is so long, I didn’t have time to write a shorter one”. It’s funny, but it’s…

    4 条评论
  • A matter of context

    A matter of context

    It’s interesting that, as we talk about using AI more and more, the phrase we use is “human in the loop” instead of “AI…

    3 条评论
  • The tension between Chaos and Order

    The tension between Chaos and Order

    I’ve been spending the last week in Japan, meeting with makers and crafts people. as always, it’s a humbling…

    4 条评论
  • No Prize for Pessimism

    No Prize for Pessimism

    A book! I’ve been writing these letters for about 12 years now. I started writing them when I was at Box, as a way to…

    10 条评论
  • Adding Value in the Age of AI

    Adding Value in the Age of AI

    If you wrote out all possible combinations of, say, 1000 letters, the vast number of them would be nonsense. And the…

    3 条评论
  • Don't use AI to make work for humans

    Don't use AI to make work for humans

    I’ve started to notice an interesting pattern. More enlightened teams and people are using AI to get lots of work done…

    5 条评论

社区洞察

其他会员也浏览了