The future of Programming

Mark Grandau
1 min readJun 28, 2020

If you think about the paradigm shifts in software development; what were they and why?

- It begins with Empirical programming — Domain knowledge to get to an answer.

- Procedure programming — First layer of abstraction. Reuse of a function or procedure.

- Structural Programming — Adds the concept of abstracting modules around a particular structure. Reuse of data.

- Object Programming — Polymorphism and Interface. Combines data and functionality. but abstracts a degree of functional logic so state can follow identity. (deals with functions)

- Functional Programming — Abstracts and isolates state so that code can be easier to test (focused on controlling a type of data)

- Machine Learning — Abstracts away the function. It does this by creating a procedure that can create the function from the data.

- ???Knowledge/Intent Programming??? — Abstracts away the data by just identifying the data sources associated with a problem. To do that intent of what is being solved will need to be procedural-ized. It is already in the works. That is what programming will be in the next 20 years…..

The first 5 happened in O(20) years as computer science was born. It took another 30 years for hardware and communications to reach the point ML could happen. I would expect to see some more rapid shifts until hardware, maybe energy, limits us again.

--

--

Mark Grandau

I’ve been a developer for 30+ years. 20 of them as a Software Architect. Software is the modern day junction point of Science, Math, Philosophy and Art