A while back, news came out that an AI was able to perform a diagnosis after the human doctors were stumped. Having just finished binge-watching the entire run of Star Trek Voyager, I immediately thought that was the sort of AI advancement that could lead to such things as Voyager’s Emergency Medical Hologram, an AI which could replace a human doctor. Of course, it is still very unlikely for this to happen anytime soon, medicine is a very complex field and new things are still being discovered all the time. This sort of approach – using a set of data (in this case, the patient’s genetic data) could be compared to an existing database of past diagnoses to find something similar – could advance rapidly in the coming years to at least assist human doctors in providing diagnoses for those rare conditions that only few doctors have encountered. It may take a generation or so, but I can see that AI medical assistants might at least be possible in the future
I got to thinking: is my own profession (software development) in danger of being replaced by AI in some far-off future? “Software that can write software” is an ideal that many programmers have thought about at some point in their careers. I remember that at some point a few years into my career I was already thinking about how it might be possible. But then there was also a project where I had to study the possibility of writing software to convert legacy PowerBuilder code into Java web application, which led to a far greater appreciation of how complicated programming languages are and an understanding that any attempt to generate large systems automatically is a crazy endeavor that would take a large amount of time.
Individual small software tasks can be easily automated – this is why we have code templates and code generators and so on. This kind of work is similar to the medical situation above, it’s based on knowledge of existing code, so a program can put something together based on previous implementations. But as I mentioned in a previous post, writing software is about finding the right arrangement of code, which is largely a creative effort and is much more difficult for software to do, at least until the automation of the lower-level smaller-scale tasks is perfected.
While I believe new tools will be developed within the near future to automate small parts of the coding process, the overall development of software systems is likely to remain out of reach of AI for a long while. In fact, I believe that software development will be one of the very last fields to be replaced completely by robots, since as other fields start getting more and more automated, there will be a greater need for new software to cover those domains. So most probably doctors and programmers don’t have anything to worry about for quite a while