Unmanned programming makes programmers unemployed
Developing unmanned programming as a programming automation system to make programmers unemployed
Not long ago I wrote the Han o Sinox unmanned factory, causing great repercussions, Dongguan began to have factories to implement the unmanned factory plan to replace workers. Although the development of unmanned plants is probably only 0.1, then there are 1.0, 2.0, unmanned factory upgrade version, of course, with the expected Han O Sinox unmanned factory still a great distance, but after all, put forward the concept, and pointed out the direction, unmanned factory technology research is likely to trigger a new industrial revolution in China. It also points out the way for China's manufacturing industry to lose the status of the world's factories without worrying about industrial transfers, and it is possible to maintain the leading position of China's manufacturing industry by increasing the number of technology and capital inputs from unmanned factories.
I sometimes think that unmanned technology has developed rapidly, such as UAV technology is already very mature, the recent unmanned driving also began to be practical, unmanned factory if the technology is mature, then the next development of the unmanned technology is what? No one refers to the technology that does not need people, completely automated control, not nobody. As a programmer, I am very lazy, I hope a lot of simple duplication of work do not need people to do, direct automation programming, such as software Foundry, no technical content, always by the coding workers do repetitive work, and unskilled programmers can not do, if the machine to do, in fact, it should be software to do, There is no need to repeat the work of the coding workers. Software design does not require machine production, just mental work, so there is no unmanned programming factory, it should be unmanned programming software, software production software, just high-intelligent software production of ordinary applications. Unmanned programming tools, should be called automated programming system, or need people to input requirements, otherwise the software does not know what to produce. With ever-changing requirements, unlike factory-produced fixed products, software production requires complex application generation, and it is estimated that the development is much more difficult than an unmanned factory, or even impossible. But I think that since the proposed unmanned programming, even if only the gratitude, but also to improve it, perhaps decades after the unmanned programming will become a reality.
Once the technology of unmanned programming matures, programmers, the most intelligent and intellectual profession, also face the possibility of disappearing. Programmers will be unemployed after industrial workers. And a lot of ordinary jobs, such as haircuts, nursing, chores, etc., can be done by the robot, this may be easier, if you can replace the programmer, then it is estimated that no work can not be replaced by unmanned machines or software. It will be very scary, so what else does it take? Everyone is unemployed at home, allowing robots, intelligent software to take over the world? The development of robots can be done by unmanned factories, while the development of robot software is done by unmanned programming software, and finally only the development of unmanned programming software personnel do not lose their jobs. Who is the person who developed the unmanned programming tool? Should be the top scientists of every profession.
Only top scientists can work, others lose their jobs, and become similar to primitive tribal societies without doing anything. This is far away, but the programmer should be the last batch of unemployed workers.
Well, now that there is no one programming this software, then how this software is implemented? To tell the truth, this software is not yet mature, we can only explore various possibilities, and find the development method.
Benefits of the. NET class Library
I used a compilation. C/c++,java,perl,php and other programming languages and tools, until I use the c#.net, only to know that programming is really getting easier, the assembly needless to say, the machine language to write programs, difficult. C language, better, but each function function to write their own, tired. VC better, but MFC writing interface is still very difficult, and many algorithms to their own implementation, or copy other people write the class. Java is a better point. and scripting language perl.php and so on how to say? Managing the system and making the Web page is suitable, but making the interface is difficult. Finally there is great. NET, many functions, data structures, algorithms are implemented by the. NET class library, such as to the "1,2,3,4,5" string separated by commas, with the split function is good, see VB has this function, it is very convenient, but C + + is not, C # is now particularly handy, just use split for good. Therefore, the. NET class library is very convenient for user programming, and the interface controls are also easy to implement, and even Web page programs can be implemented with controls.. NET makes programmers develop many times faster. Unfortunately. NET is not cross-platform, windows is expensive and not easy to use, so it is resisted. Java now also developed a lot of class library, cross-platform is very good, so is Unix/linux world respected.
The. NET class library gives a level of human development capability, and although it is necessary to design data structures and logic algorithms in the face of a variety of complex calculations, most of the underlying functionality can be implemented by the. NET class library.
Can I get the. NET class library to a notch? It should be possible to develop more function functions. But it is not possible to cover all the calculations, such as Singapore Prime Minister Lee Hsien Loong wrote the Sudoku algorithm, the algorithm into the class library, ordinary programmers can develop nine this Sudoku game. However, the Sudoku algorithm should find the source code so that it can be referenced without having to join the. NET class library.
Another example of the development of 3d games, although you can directly use DirectX rendering Engine library, but to implement the game function is not a simple call API can, so there is a game engine, more functions to encapsulate the function of the game call interface, but the engine interface is also very complex, familiar with the engine will take time, Not to mention the call engine to complete the game scene development, and game data structure design, such as static scene objects and dynamic objects, customs clearance logic design, dialogue, etc., the content is very complex, not to write the program can be solved. Can we add the game engine to the. NET class library again and make the. NET class library functionality all-encompassing. It is entirely possible, but is this a. NET to do, or is it a developer-introduced engine class library? If the. NET class library is all-encompassing, it is impossible to solve all the problems, and if there are millions of classes, how do users know how to use them?
Automatically generate base code with frames
The. NET class library is all-encompassing, but how do users use it? We develop 3d games first to use the DirectX (abbreviated DX) display engine, and then use the Unity3d game engine, then can design data structure and logic algorithm, now Unity3d is on the DX engine above the higher level of the engine, it can be seen that the layer calls the engine. NET class Library –>dx–>unity3d–> game, to develop the game to call the 3-tier engine, we call the framework, the base code, these frameworks let us save a lot of work, without these frameworks, developing a game is almost impossible to go to the sky. Now developers can focus on the game logic design and image design, eliminating the need for the underlying code. Programming automation calls the framework first and then focuses on the logical design, which greatly simplifies the development of unmanned programming tools.
We write programs like this, is developed on the platform of the operating system, or from the development of the operating system, the design process is simply impossible.
We designed tens of thousands of best-of-breed frameworks, put them into unmanned programming tools, and called frameworks as needed for programming automation. The optimal solution for Sudoku can also be added to the framework, which belongs to the mathematical framework for upper-layer invocation.
Automate code generation with scripting language
With framework-based code, we design our applications to focus on data structures and logical algorithm designs, automatically generating source code based on the user's data structure and logical algorithms. For example, we speak of meta-language programming, by defining the meta-language, with scripts to automatically generate code. We can automatically generate code using scripting languages such as Shell,perl,python, and you can enter a meta-language script that automatically generates the source code for a language. For example, to generate a login program, based on user-defined account registration, modification, deletion, login, verification code, including database operations and interface interaction source code, no longer need to write code for ordinary programmers. The definition and interpretation of a script is determined by the script written by the user, and the script can be modified as needed. This method can generate most of the code, but the flexibility is not very high and may satisfy the relatively fixed application code generation.
Automate code generation with high-level languages like Lisp
Lisp is a table processing language, with XML, meta-language, template and other features, can be used to generate new application code, but code generation is implemented with Lisp, once changed, is not also to modify the Lisp program, and script generation is not very large, but for some program generation may be useful. For example, CAD uses LISP scripts to generate three-dimensional models, perhaps Lisp is useful when it comes to developing cartographic programs. For example, many models can be saved with Lisp.
Now there are some code generator software that can generate the source code by way of a wizard.
Automate code generation with templates
We develop a very similar web program, in order to meet the personalized interface output, a lot of use of template features. In the unmanned programming tool, we can not introduce templates to meet the needs of a very similar variety of application generation. Our programming language also introduces templates, also known as generics, generic types, which the development program uses to represent any type of data, so that the write program calls will have a uniform interface, whether the type is an integer, a real number or a string, the type of the specified t when used.
We develop automatic code generation can also use templates, such as specifying the name and type of database field, you can automatically generate data table fields, as well as the operation of the database class, interface operation class. and the interface color with the template, the user specified a color, in the generated code to produce the specified color, rather than fixed dead, for the dynamic generation of color code may not be useless. Templates may be suitable for generating some of the more fixed patterns.
Automate code generation with big Data cloud computing
I saw the speech recognition system deposited millions of speech fragments, while the expression recognition system has millions of expressions into the database, the automatic code generation can be stored in millions of code snippets, and then there are millions of categorized functions, a large number of data structures, a large number of logical algorithms, and even logical algorithm generation model. For example, to generate 1 to 10,000 of prime and, it is necessary to call loop code, Prime judgment function, add several functions, obviously with big data, template and other techniques, generate 1 to 10,000 of the prime and code is completely possible.
More complex, game design, design background objects, monsters, player data structure design, object appearance, motion, death logic, to fully automatic generation, requires developers to define a lot of metadata, and probably not enough, need to design a unique algorithm, just write code is not required. The application is complex and diverse, may be automatically generated tools are not so simple to achieve, but like teaching, such as the exam, is nothing more than the establishment of the Test bank, the question of logical algorithm, the answer comparison and score generation, the most difficult is the composition scoring, this high degree of intelligence, the development of automatic tools need to know the relevant professional, Then you can generate 10,000 exam questions applications, even the question system can be intelligent, the program itself can cope with 10,000 kinds of exam questions system, then the automatic generation of exam questions system may not be necessary.
Integrated multi-technology AI generates code automatically
Big data may not meet the needs of code generation, may also require a variety of code generation model, we say this is a higher level of code generation AI, AI will apply the above improved program generation technology and means, and even self-learning ability, complete automatic code generation. Artificial intelligence neural networks, deep learning techniques, may be helpful for code generation.
Development of SEPL automatic programming tools
Now that I have proposed programming automation, I think SEPL should not just be content with being a programming language and integrated development tool, but rather a higher level of unmanned programming tools. SEPL Unmanned programming tool has millions of code snippets, hundreds of thousands of frames, hundreds of thousands of code generation models, a large number of templates, the user only need to define the application generation conditions, you can do one click to build the application. This eliminates the need for programmers, but only needs analysts, and program code is generated automatically.
The new generation of program interface will be intelligent dynamic output interface, so as to achieve the development of graphical interface automation
In the multi-level logic implementation of the program design, such as the game, the background server may be similar, the game logic is close, just reflected in the interface, personalized interface, resulting in a complex interface design, if the interface is static, then hundreds of millions of users, involving interface design, automatic generation is difficult to achieve a user-friendly interface. However, if we use the Dynamic interface output technology, the system according to personal preferences output interface, there is no need to face countless personalized interface design. The dynamic interface adjusts the output of the interface according to your preferences. In this way, the complex and personalized interface output of the automated code generation is solved, and the logical design of the latter is made easy by the automatic generation of the code.
Automated code testing allows the program to pass the factory
Whether the generated code is available, and if the person to check the test, it is also very troublesome. The system launches the automatic Code test, generates the source code the time also generates the test code, may carry on the thorough complete automation test to the program, the qualified product can appear.
Is it a nightmare or a light?
After the automatic code generation system comes out, the writing program no longer needs to encode, the programmer naturally does not need many. When people are still stuck in the process because of bad writing, the development of automatic program generation tool is not a little early. In fact, automatic program generation is not the need to write programs, but write a program, everywhere can use, do not have to repeat the program, such as Sudoku game a realization of automatic generation, perhaps a 3d game need Sudoku game, this 3d game does not need to re-write Sudoku program, but the development tool automatically generated.
Just like Java is written once, running everywhere, unmanned programming is to write a program, everywhere can be used, do not need to write a second time.
Unmanned programming tools appear, programming speed is very fast, a person on top of 100 programmers, China originally needs 5 million programmers now only need 50,000, 99% of programmers unemployed.
Even if the most complex applications can be generated automatically, is it easier for a single program such as robotics?
Now SEPL unmanned programming tools need to be sold everywhere like Visual Studio? No one can afford it.
Unmanned programming makes programmers unemployed