The future of computer programming

The future of computer programming

The first programs were written on punched cards. Whether the program was written correctly could only be found out when the cards were placed in the reader and when it could be seen if it was working. If the program does not work, an error should have been found by analyzing the commands and re-testing. If the original program is correct, the compilers had to translate it into machine code, and only then is it ready for use.

After some time, source program readers were developed that signaled which commands were incorrect, so repairing the source program became much easier and faster.

With the further development of programming languages, editors for writing programs have appeared that signal an error in the source code as soon as the command is written on the computer screen. This is how all today's source code editors for all programming languages ​​work.

The next development step in writing a program is the ability for the editor to offer the next command that could be logically written after each command written by the programmer in the drop-down menu.

After that, in the development of the editor, a graphic editor could appear in which the programmer would draw a block diagram of a program, and the editor would write the source code himself. The programmer could intervene in the code written in this way by typing in new logical controls and deleting the excess code. When editors learn to shorten the code themselves by choosing code options with the least number of commands, it will be possible to automatically fix old programs to shorten and speed up the program. This procedure will require better decompilers that do the reverse job than compilers. Compilers convert source code to machine code, while decompilers try to convert machine code to source code. From the decompiled programs it will be possible to make a block diagram of an individual program, and based on that it will be possible to make a new program in Assembler that works faster than all higher programming languages. Today’s decompilers can significantly reconstruct source code, but they still can’t reconstruct everything. When the decompilers know how to draw a block diagram of the program based on the reconstructed source code, they will be able to recognize what the program is intended for.

For all these improvements in programming, it will be necessary to significantly increase the speed and power of the chips, so that everything goes much faster. This will be achieved only by introducing serial production of chips with UV laser technology. Such chips will have a hundred times more basic logic registers on the same surface, will be much faster and will consume much less energy. The technology has already been developed in laboratories, but needs to be introduced into industrial applications. There are already much more powerful glass memories in laboratories that can permanently store millions of times larger amounts of data.

After such a thousand times more powerful computers become household items, the most important task in programming will be many times much better protection of computers from hackers and data theft.

This task will be able to be performed successfully by working on both hardware and software.

Personal computers will need to be configured not as a single computer, but as a small intranet network in which 5-10 small virtual stand-alone computers are integrated, each running on a different operating system. All malware attacks computers running a particular operating system, and if we have computers on a network that have different operating systems, no virus can download the entire network at once.

In personal computers organized as a small intranet network, a clear division of tasks will be required, and everyone will have a different degree of protection against hackers and viruses.

Those virtual machines that manage connected local hardware will need to have the strongest protection against malicious code.

One of the virtual machines will need to have the role of testing all new executable files and applications to see what that file or application is doing. If it finds out how the application can delete something or send data somewhere, it is necessary to decompile that file and draw a block diagram of that application based on that. This virtual machine should have barriers over which the application cannot switch to other virtual machines, but can only send them information about what that application is doing. Based on this, the owner or administrator would be alerted to what that file or application might be doing, and could decide whether to install that application, or open that file.

The next step in PC protection will be automated customization.

When a computer is installed, it should monitor the biometric data of its owner, or several users, for the first few days. By recording faces, palms, fingerprints, pupils, lips, voice, heartbeat, and how to type text, it is possible to recognize a person. Based on the recording of this data in the first few days, the computer could constantly, working in the background checking this data, recognize who is using it, and based on that control what which user can do.

Based on small changes in some biometric data, the computer can also recognize some diseases or dangerous conditions, and based on that, the computer can warn the owner and advise him on what to do.

Those users that the computer recognizes as their owners will be work whatever they want, while unknown users could do only minimal jobs and see only applications and files that the owner has marked as public.

In the event that the owner sells the computer, he would have to include the option to change ownership, whereby the computer would automatically delete all personal data of the former owner, as well as his protected data and applications. Only then should the computer begin recording the new owner’s biometric data.

If someone steals a computer he could turn it on and see only a limited level of data, and if a thief uses it for a long time the computer could only inform the owner of the coordinates where it is located, and the biometric data of the people currently using it.

In addition to protecting the computer from malware, it is also necessary to protect it from the owners themselves who do not understand computers. To this end, it will be necessary to develop programs that do in the background everything that professional administrators and service technicians do. All of these programs should automatically optimize the use of working and non-volatile memory.

Utilities will also need to learn to do everything that living beings do in their sleep, and that is converting daily memory into permanent memory. A person has a short-term memory that lasts 5 minutes, after which irrelevant data is partially forgotten. The person remembers more important data during the day, and during sleep these data are compared with the previous ones, and part of them is converted into permanent memory.

The same should be done by the service programs in the computer.

All new data should, after some time, be checked and compared with the previous data, compressed and written into permanent memory while the user is not doing anything. If the comparison shows that some data (text, image, film) has already been written in exactly the same form, it should not be rewritten in permanent memory, but it is enough to put only a link to that earlier record. In case of deleting some permanent data, the computer should automatically send the user the data on all subsequent links to that data, and only after such a warning and approval of the owner to delete some data.

Utilities should also automatically take care of backing up some of your most important data on another computer (server) or somewhere in the “clouds,” for a period of time, or permanently.

With the development of an increasing number of applications, they consume more and more energy and resources, and service programs will have to take on the role of regulation and their operation. Power consumption by various applications is very high, especially with portable devices, and developers will have to pay much more attention to it.

In order to reduce power consumption, service programs will need to learn how to put applications dormant that have not been used for a certain period of time. If the user decides to use an old application, the service programs must be able to quickly reactivate that application. This could significantly extend the life of batteries in portable devices, and speed up their operation.

With all these improvements, computers, especially portable ones such as tablets and mobile phones, will become the most important personal assistant of every user who will inform their owner about everything he is interested in, monitor biometric data, protect him from illness and injury, protect him from all social and other dangers, and call for help if needed.


Other of my technical analyzes and innovations can be found in this book.