5 months, 3 weeks ago
I'm sorry that I cheated so many people by changing a paragraph casually, so I decided to update a little bit of serious content. The correct answer is @ Ding Shukai here. Dr. Frederick Brooks wrote the paper "no silver bullet" 33 years ago (1986). Although the technology of programming has been improved for several generations, the conclusions in the paper are exactly the same as they are used to describe 30 years later. The fundamental problem of software lies in the software itself, that is, the computer itself. More generally, it is the theory of computation itself. imagine that the first mock exam is to find a grand unified model, which describes the whole universe's operation with a mathematical formula. Under this law, from Planck's space and time to the whole universe's macro events, they all act according to this law, thus forming a colorful real world. What happens with software? It can be said that, under the current calculation theory, it will be very hard. The essence of software is calculation, and the current calculation theory determines that in the world of software, the running state of every basic particle must be calculated to get the State - how to generate, how to collide, how to transform, how to run, and so on. We know that there are 10 to 80 atoms in this universe. If the universe is running in a computer, the States and trajectories of the 10 ^ 80 atoms can only be determined by calculation, and you in front of the screen, a hard programmer arranged by God to do the work, have to work hard to lose your hair, and also arrange the operation algorithm of the 10 ^ 80 atoms to be clear and clear. If one of the atoms is not well thought out, then your universe - sorry, it should be God's universe - will explode in your hands. God said there was light, so there was light. As a hard-working programmer, in order to make the world have light, you have to toss RGB, CMYK and lab, import an OpenGL library, calculate every light source and every light, and then render the light you want with a pitiful display memory. This is the "essence" in Brooks's doctoral dissertation. It is only a minor difficulty to describe the world in what language and data structure. In other words, how to understand the complexity of Brooks's doctoral thesis. It's not that the software is too complex, but that the tool of "software" (including the existing computer architecture, computing theory and model) is too simple and primitive to be competent for the grand task of "building reality". From the point of view of how to do, most software problems are demand problems, which are essentially communication problems. Communication between people is inherently inaccurate. To keep people's understanding of a complex and changeable entity (i.e. software) consistent is not to build a Babel Tower. So in general, "programming" is not difficult at all. It's hard to understand what to make up. --------------------Original answer-------------------- One day, when the teacher wanted to test the students' IQ in class, he asked a boy, "there are ten birds in the tree. Shoot one, and how many are left?" The boy asked, "is it a silent pistol, or other guns without sound?" "No." "How loud are the shots?" "80-100 decibels." "That is to say, the earache that can shake?" "Yes." "Is it illegal to fight birds in this city?" "No offense." "Are you sure that bird was really killed?" "OK." The teacher is impatient. "Please, tell me how many are left, OK?" “OK。 Are there deaf people in the birds? " "No." "Are there any birds with intelligence problems that are so stupid that they don't know how to fly when they hear the gunshot?" "No, I.Q. is more than 200!" "Is there anyone in a cage?" "No." "Are there any other trees by the side and any other birds on the trees?" "No." "And ten miles around?" "Just a tree!" "Are there any disabled or hungry birds that can't fly?" "No, they're all in great shape." "Is it a bird in a pregnant belly?" "It's all public." "It's impossible to get pregnant?" “……… , never. " "Is there any flower in the eyes of the birder? Ten of them? " "No flowers, just ten." The sweat on the teacher's forehead has come down After class, the bell rang, but the boy continued to ask, "is there anyone who is not afraid of death?" "Afraid of death." "Did you stay because the couple was hit?" "Stupid, I didn't say it was all public!" "Is homosexuality OK?" “…………。 Sexual orientation is normal! " "Will you kill two with one shot?" "No." "Three at a time?" "No." "And four?" "No more!" "And five?" "Absolutely not!" "The six are always possible?" "Only if you're born of a fucking pig! Only one shot can be killed! " “… Well, are all the birds free? " "Absolutely." "Will they panic and bump into each other when they take off?" "No, every bird has a satellite navigation system and can fly automatically." "Well, if your answer is not deceiving," the student replied confidently, "if the dead bird does not fall from the tree, there will be one left, if it falls, there will be no left." The teacher pushed and pushed his glasses, tried to resist the feeling of fainting, and said with trembling: "you can be a programmer..."