Philosophical thinking of software development
From: Computer World Zaozhuang Zhang Wei Compilation
Translator Note: This article is still very suitable for this article (written in 1996. For the IT industry, it should be very suitable), but after reading it, it is still tipping for the author's talent, this is not Another article.
Carnegie - Mellon Software Development Institute and other college researchers have used the efforts to define a theoretical discipline (ie software development theory), and then find that there are still many things that are more vague, they don't hide this. Software development, since generation, it has conquered a lot of talented people with a fascinating style, some professors, experts scholars and business managers could not make such a problem: so that software can be fascinated by so many people, why humans can't Define it, explain it, understand it deeply? Why is some genius scientists' energetic energy to summarize these confused into a scientific engineering discipline or industry standard?
Most of us, especially businessmen, engineers and academic institutions to see computer and software as a very ordinary thing, they use a variety of ridiculous ways to exchange with computer, computer's threats from users and condemnation. The software is everywhere, but the software often manifests as a failure, strike and abnormal, this mainly two reasons: First, the program failure will lead to inaccurate file definition, and final software is a strike, not normal; second, some Software Development Supervisor is commanded, forced the software to apply some Huadi-made skills to achieve unrealistic ideas and wonderful ideas.
Slow software development and Internet access take up most of people, especially, these two aspects are easily addictive in contemporary. Once addicted, normal people will also become slaves of document processing, file upload and download, which is mostly necessary to break down to manage its software has a certain disadvantage. At this time, it has to be confused: we can cover the skyscrapers, can build fast racing and high-performance electronics, we can even understand quantum mechanics and submissions, why can't we develop high-quality software?
[The truth behind the mystery]
The essence of software development is based on a mental activity, computer and software on the software, is a mirror of human brain activities, so software development is also facing some problems inherent in psychology and mental. It is well known that all the purposes of psychology are not survive to understand the soul of humans, and some medical professionals study this. Compared with the software development, the situation may be worse, because software development is just a model of human intelligence activities, it comes from human intelligence. Whether you don't recognize that intellectual activities is just part of the soul behavior.
From a considerable aspect, the relationship between software and psychology should be more close than the relationship between engineering, technology and mathematics. This is because the software directly comes from the human soul, and the software is often It is necessary to use the creativity of the soul. Compared with the art, the software lacks the beauty of art; it is lacking a proper form compared to natural science. In addition, the software can only be the psychological imitation of software developers.
Software reflects software developers' psychological activities, many factors will work for this psychological activity such as: developers, development environment, and systems. The developer himself means that developers will have some psychological activities during the development of software; the development environment refers to all computer hardware, computer software and development software; including all people, all development environment, components, and organization relationships And other things that contribute to the purpose.
Software is as easy as people, it is influenced by intelligence, imagination, fear, and hopes. It reflects the views of the developer, understanding the target, the feelings of the customer, the sensitivity, high thinking, respectful respect, etc. If you want to make a better product with a computer, the software development is the core, which represents the essence of the entire system. In the end, it gives the software product unique style and feels, according to human point of view: is personality. [No angry personality]
Does the software have personality? If you ask me this question, I will get out: Of course I have. Because software development is completed, a set of vocabulary for communication, internal analysis logic, video and audio support, and memory will be formed. From the perspective of contemporary technology, these resources are theoretically unlimited. Where is the problem? The problem occurs on the chaos and eight ruins of the developer. Software developers, I was not affected by it, and later, as the scale expanded, I added some computer masters, and the person in charge of the department of the command, all of which chaos the work of developers.
First of all, we must point out that the vocabulary is necessary, whether it is for external communication or for internal communication, the vocabulary is the cornerstone of the thinking module, if a person does not vocabulate, he will not think, human beings can communicate with cold ice ice Also in the existence of vocabulary. Computers can easily be taught to react to certain vocabulary, which is unlimited. But what is the problem? First, although the computer has the potential to understand unlimited vocabulary, its human owner is usually limited, so human beings think that anything is as simple as possible, this acts that the performance of high performance must also be wronged Also in humans having little ability; in addition, if the software has a lot of vocabulary, it will definitely become large, complicated, difficult to understand, develop and maintain. So although the computer has an unlimited energy, it is also necessary to set the developer to prepare for it.
[Cherker and Creativity]
Tao work is the master of the pottery, and the pottery can never exceed the capacity of pottery. This fact is also applicable to the relationship between computer and software developers, and programmers will never make computers to make things that they think about it. Of course, this does not mean that programmers can't do something that exceeds humanized computers, but if he imagined, he can't make a computer. Of course, the same truth is also suitable for errors, and a tiny error of programmers (translator Note: The programmer will not think about where the error exists. If you know, you will correct it. This is It is said that the error is outside the imagination of programmers, it will make the computer make people can't understand.
The system-level programmer faces a big challenge, and he is not different from the gods with the company. He can make anything he thinks, listening to his command, listening to any of his orders from him. He is able to take his genius as you like, his thoughts know most people, and the heart of the ambiance that roams in the virtual world through his creativity. At some point, his human life will be broken once again, reaching new realm, new height.
Although the programmer's ability, his technology has gradually exceeded his intelligence, but soon, he will find that he must find a job to support himself. I think that I can't make my own supplies, he must done to those who can give him food and clothing, and the part of the bow is to belong to people, so I have to listen to the needs of others, the color, the idea of others, he can It is only charged on time by others. Although the programmer has the character of Tianma, his life will soon be buried in the same daily triviality like the body workers. An outstanding genius succumbed to the pressure of life, giving his creativity to a boss or an anti-incredible customer, caught some maintenance, or as a slave, which is controlled, why? Why is the programmer allow others to control his life? [Commercial Circulation]
After the company decided to do some software, the work made by the programmer is to let the software began to sing. The job to do is to try to find the software's mistake, then the customer will buy software, especially the customer likes the purchase of the software. . But who tells customers what to buy? The customer's purchase behavior is driven repeatedly, he purchases what he wants, he needs, or needs. No one knows what this drive is driving this? However, the business cycle is like a gyroscope, there is no way to turn: development → test → delivery → elimination in all products in real world, software looks most flexible. It can be as good as programmers, customer requirements, boss's instructions, or long or short; it can be expanded, upgraded or even forming a cycle; its life may grow up to several years, may also be short First moment. The software development cycle is in the hands of the designer, long can be short, it also can increase the function, upgraded, even spiral rise. How can I be so messy?
Mainly flexibility leads to such confusion, you think that there is so much variable in the software, so many judgment points and more unlimited options. As in human thinking, software must also have an operating system to support, operating system time running, not stopping, busy storage, logical operation, voice video processing and other components; and some tasks can be completed However, the operating system has to ask, so soon, the system is very messy, simply strike. You must know that your computer doesn't like messy like humans.
In fact, you get more about the computer, the more you find that the computer is simply a mirror of humanity. In the computer, you will find some of our human minds: We have a flashing, our stupid mistakes, it is only shamelessly imitating our human activities, it transforms our human thinking and transports mechanical equipment The electronic delivery device is real in the device that can be judged, and then gives us the feedback. Of course, some time, it may behave not to be so perfect, running or ran or wrong.
Once the software is written, the personality has gradually emerged. The programming monsters can eventually be unavoidable will give a dull soul. Is it the robot to human human soul or a genius-style soul? Perhaps both, but most likely is a high-efficiency helper with quirky characteristics and laughing. Why do you have these problems? To know that we understand our own needs. Why can't you make such confusion? Please face the following fact: the owner has created a monster, and we are the owner.
Computers should be more stable than our human beings, because it has no feelings, it has always been objective, logical and correct avatar; it will not argue because it doesn't feel feelings; it can rationally but it can't argue. Although it has no feelings, but sometimes I am angry that people sometimes become angry and causing confused, and I am shouting at this also unforgettable thing. It is not a person, it is completely reasonable. There is a thing, it doesn't have it in the future, it is love. It doesn't live, so it won't love; it has no hatred, of course, there is no love, it doesn't think, but it is objective, very logical, fast and efficient, but it is also dumb. [Humor]
There are many evaluations applicable to human beings, which is often used on a computer, which is a bit ridiculous. Why is there so many reverse comments exist: smart and stupid, outstanding and ridiculous, rational and unreasonable, fast disappearance and error re-emergence, etc. This is the humor of the computer, it has the ability to make mistakes and make the error very perfect, even accurate to the tenth of the decimal point. Surprised?
A ordinary computer is between a dog and a three-year-old child, which may be that we often hear computer users, "咦", "Wow", "", "no - not" and other sounds Reason, is this a genius or an adult voice? The vocabulary caused by this dull partner is such a child, how do we comment on its creators, programmers and users? Is it just a toy for children? Are we returning to the childhood? This may be a psychological issue, maybe we have to consult a psychiatrist.
This ridiculous situation is everywhere: some old experts say that they are all like "Ha", "", "Yes", and so on. Humans have always been aware of being very strong, always want to learn something, think about inventions, want to master something. But what exactly is our human beings? If this is the simpleness of human pursuit, maybe it can be said, but is this in the pursuit of simpleness or childish performance? I think the answer to the computer is definitely "naive". If the computer can speak, it will say that human beings are naive, stupid, dementia. It will tell "your stupid guy, why don't you program my consent, know that I also have my thoughts?" Or "You save a comma, how do you ask me to do things for you, read your thoughts?", Etc.
Very interesting, is it? The computer is almost similar to people, and it will also say some words like humans. Why is this this? Is the computer correct, or is it correct? There is a full evidence that both is correct, both are stupid, because the computer is a human mirror of human beings, it should also reflect its talents of its creators. Can a stupid person call a stupid person stupid? Of course, we can also understand our own from other aspects we understand.
[Causes of psychological malfunction] There are many factors that can affect our lives, but fortunately, our human beings have their own will, and they can do things yourself. Regardless of how much pressure is given to him, he will ultimately decide himself. But the computer does not have a will, it is just compliance with the code, whether the code is simple or complicated, is it negligible or very important, long or short, the computer will be implemented in class. A slave who is completely listening from the owner should not take responsibility. It is the owner to do this, but who is the owner of the computer? Is a programmer, is the supervisor, is CTO, or CEO? Or is it to determine the customer's customer with repeated impermanent thoughts?
There are also many factors that eventually determine the individuality of computer products. If the robot industry is getting more and more mature, personality is getting more and more obvious. But in any case, the programmer is intention, he should have a full responsibility for his creation. The supervisors are responsible for the development efficiency, CIO is responsible, CEO is responsible for profit, and the programmer relatively low, only when the program has an error, however, the program developer must be responsible for the product, his product is his psychological behavior mirror. Now we have turned a whole ring. At first, the programmer started, and now returns to the psychological factors of programmers concentrated in the code. Of course, as the improved production capacity is now improved, the individuality of this can be made without restrictions, placed on the user's desktop. However, the principal part of the program developer is mainly intellectual, vocabulary storage, memory, etc., etc., is still a deterministic role. The lack of computers is emotional, conscience, will and love. The will is not included because it has more choices, but there is no free choice. When the computer is a slave, the will is not talking.
[Computer product is a psychological malfunction, is an image of a creator of the creator]
Solomon once said that "there is no new thing under the sun", is the computer is new? Very obvious. It just gives us a given us, it accepts our instructions and turn it into something that can help or please us. We spent a few hours of energy, then it gave us a result with a speed of lightning. Several hours of thinking and processing results have only been given a moment of feedback and is not perfect.
We infused the logical algorithm, will activities and insights on your computer. Then we get just a moment of outcomes, this result is not better than our pre-hypothetical, logical reasoning and academic skills. We have not changed, our products are not automatic or hand-made, but reflect this. After two generations of efforts to computer research, we originally planned a set of vocabulary for computer science, and now it seems that the side is not touch. In fact, our product is our own.
【in conclusion】
Computers, software and computer products will soon be able to classify again in the future, they are related to software developers. As for the spirit, inspiration and psychology, there is still some of the affordable issues that have not been resolved, want to understand what to create and human, and far more than our ability.
Computer technology is sometimes beneficial to sometimes harmful, sometimes sometimes failing, sometimes running sometimes stop, it is the same as the world. A good computer will not copy human capabilities and will never be. Think about it, there is no vocabulary base computer and then learn to think, go to the association, discrimination, love; life; storage all the details, etc., there is no door at all!
Self-feeling is good in formists that they can define software development processes, and now it seems to make a big mistake. They don't understand its beginning, nor does it understand its consequences. Some academic institutions once tried to finally gave up; the business group never attacking the code; the software giant is invested in huge effort to prepare the code, and it is made to make some sacred things for human services. In fact, all of this is human beings look at themselves in the mirror, and the computer is laughing at us!