Are you a declarative programmer or a ‘close to the machine’ one ?
if you are on the second group you are going to lose your job very soon.
Machine learning does an excellent job on making repetitive tasks inferring properties from a dataset and solving problems (often without showing the solution path).
Today’s state of the art does not threaten good software engineers (yet).
Any Deep Neural Network can learn Knuth’s three volumes of the art of computer programming and accurately choose which algorithm and data structure best fits in order to achieve a goal. Nevertheless is not an easy task to mimic computational models against real world because real world is subjective.
You can't pretend that nothing is happening.
Today most Algorithms are already written and well tested, all we need to do is choose a good library on GitHub and port it to our language. But business frameworks are not that mature, yet.
Instead of program computers we will show them our needs and they will figure out what to do.
Geoffrey Hinton discusses the future of programmers with Coursera founder Andrew Ng.
The Rise of Mathematical Models
With the Machine learning hype several low level languages are trending, This includes Go, Python or even C++.
Most of these languages lack declarativity (with Python as an exception) and need to be machine optimized since time and memory consumption is a concern.
The business models are not expected to change very often so coupling is not an issue.
The race has started. GPT3 and its amazing results are on our heels.
Nevertheless once best machine learning algorithms are coded they will need to be fed by a business model. This will be our task for the next few years.
It is a long journey and we are still ahead.
Photo by Franck V. on Unsplash
Conclusions
If you are a Computer Engineer or Computer Scientist my advice is: Once you’ve read some programming books leave that stuff to AI and take care of business model design instead. There’s plenty of room for human creativity there.
Part of the objective of this series of articles is to generate spaces for debate and discussion on software design.
We look forward to comments and suggestions on this article.