Who is the real program language expert
By Wang Yin
All along, the study of programming language is a very remote, but very important professional. Because of its daunting difficulty, few people have made it clear that anyone is a true "master". This is a very simple truth, when a person looking up at the stars, he will not know which star is greater. It is usually thought that the brightest stars are the biggest, but there are some small stars that look gray, and their size and energy are more than a trillion times the brightest star. But because they are too far away from the earth, they are largely not noticed. Many of the scientists who study programming languages are such superstars, and such superstars are all over the sky.
Religion and obedience
Superstars generally do not speak, they just silently release their energy. So that people look at the night sky, think they are just stuck in the dark blue amber in the Firefly. And this world is full of too many amateur level programming language designers. Each of them worked hard to promote their language, incite the masses, and then be worshipped by them as gods. Because there is no systematic study of programming language theory, they often make a confused design, repeating the mistakes made by previous people. But the average programmer doesn't know what a real program language expert is, so these people can use what they know to fool them, so that the real expert speaks no one.
This is why I often find myself unable to discuss the design of programming languages with people. For example, when I mentioned that Python's shortcomings made it unsuitable as an entry language, someone would "suppress" Linus Torvalds,guido van Rossum and even Eric Raymond. Say these tall men like python, and even Python as his children's first program language. For this kind of blindly follow the "authority", only to believe that the famous people, rational discussion is useless, because the real scientists of the fame, obviously not as their eyes of the idol of the big fame. Because they had never seen a real program-language expert, I couldn't tell them that some of their "idols" were just half-pots of water-rattling missionaries. And really excellent program language experts and researchers, they actually do not know.
For instance, who knows C.A.R Hoare and Robin Milner? Almost every programmer knows Donald Knuth and Dennis Ritchie, but few people know Hoare and Milner names. In fact, Hoare and Milner for the nature of the program language understanding, than Knuth and Ritchie also have to depth do not know how much, so that the latter two basic is not a program language experts. However, as Knuth and Ritchie often make statements, coupled with the propaganda of their admirers, they are misleading about the vast number of programmers, which is really an open knot.
Program language experts have a feature that they like to make programming easier, more beautiful, more secure, more expressive, and without losing efficiency. And many well-known computer scientists do not really understand what is "simple". For example Dennis Ritchie, he said: "Unix is simple." It just takes a genius to understand its simplicity. " But if you learn the theory of programming language, you will find that Unix design is actually very cumbersome. So why do people "agree" that Unix is simple? Because they all want to make people feel like they're genius!. Please compare the words of Ritchie with the weaver in the emperor's "Clothes": "The clothes made of this material be invisible to any man who was unfit for his office or unpardonably stupid. " Do you see the logical relationship between the two?
If you can't see the simplicity of Unix, then you're not a genius.
If you can't see the emperor's clothes, then you are an idiot.
Associating the existence of a thing with a person's self-esteem and vanity is why the two weavers can control everyone's mouth. I want to make people think I am a genius, so I have to say I know "simple Unix"; I don't want people to know that I'm an idiot, so I have to say I saw "the Emperor's clothes."
Knuth also had a similar saying: "If you don't understand TAOCP, don't be a programmer." "He is always known as the" God of Computer Science ", and in his speeches he talks about literature, art, God and religion, giving people a sudden mystery. He always said that programmers should learn machine language, not high-level language, the machine is the same truth. But Knuth is not looking at the problem from a scientific point of view, but only his personal prejudice. When he saw the development of Fortran, Lisp, ALGOL, Pascal, C, C + +, Java as if there was no end to the language, he did not understand the same principle. In the design of programming language, he is not a strong man. He probably doesn't understand lambda calculus and type theory at all, otherwise he won't be able to design a language as disorganized as TeX. The quality of TeX typesetting is understandable, but by the year 1978 it still uses the dynamic scoping, which the program language experts have long hated, along with other crappy designs that explain his lack of understanding of programming language theory. In fact, TeX contains a Turing-complete extended language because Knuth adopted the advice of Guy Steele, the inventor of Scheme, but Knuth did not design it well.
Knuth felt that the machine was the same truth, so he insisted on writing TAOCP in machine language. But because of the lack of abstraction in machine language, programmers can't focus on real problems. The use of machine language to describe the algorithm, will be very simple problems are very difficult to understand, as if the book will never see the end. How many people have really seen TAOCP? I'm afraid most people buy the book back, just put it on the shelves for face. As long as someone says machine language is too difficult to understand, these people will say you are not smart enough to be a programmer. In fact, they have not seen themselves.
The fact that machines are not the essence of computation, many people including Dijkstra, have long been seen. "Computer science is a wrong name because it's not a computer science, it's like surgery is not a knife," he says. "And that's the truth that almost every program language expert understands. In their eyes, this is no longer hearsay or personal opinion, but a fact that can be proved by logic. People who really understand the nature of computing can design new hardware to meet semantic needs, rather than being controlled by the processor's design. They can even go beyond integrated circuits and use another technology to make machines. All this shows that the calculations are actually independent of the machine.
It doesn't matter to have bad ideas, but if bad ideas are asserted to be good, it will hinder the development of history. I do not deny that Knuth and Ritchie are important contributors to algorithms, typography and operating systems, but because they and their admirers often mislead people about the language, they feel it necessary to point out some of their limitations. Linus Torvalds, Guido van Rossum, Eric Raymond, Paul Graham also often publishes commentary on language, which many people serve as imperial decree, but in fact there is little insight in their speech.
All I'm saying is that most of the idols that programmers worship are not really programming language experts. I hope you don't think this is alarmist, actually these are things that most world-class computer scientists have known many years ago. They do not expose these to the public because they are smart people.
Where is the real program language expert?
So where is the real program language expert? In fact, most of the real program language experts are in universities and research institutes. As far as this profession is concerned, academia is much stronger than industry. Many experts stay in college because they often have like-minded people, and companies generally don't understand the value of program language experts and don't even know what they do.
Program language experts are often independently, so the direction of programming language is often not dependent on the school's reputation and rankings, but almost all depend on a few individuals. For example, once Cornell has a star: Greg Morrisett. At that time, Cornell was one of the strongest places in the study of programming languages, cultivating a group of the best researchers, producing a group of excellent results like Typed Assembly Language (a type of assembly language). But then Greg Morrisett left Cornell went to Harvard, others also left, Cornell programming language direction also declined. Harvard's computer department used to be a Morrisett, but later, as Greg's Dean became their chief, the strength grew and began to attract excellent program language researchers. As for Mit,stanford and Berkeley? To your surprise, I've seen so many of the world's most important papers that they don't seem to have the best programming language experts in recent years. Older generations of experts, some retired, some died. So it's not surprising that MIT changed the introductory lesson of programming to Python, but it's a pity. But with their well-known CMU, they have assembled a group of the best researchers, including Robert Harper,john Reynolds, Frank pfenning and so on. Robert Harper The problem of object-oriented language, so it completely cancels the content of object-oriented language in the introductory programming lesson of CMU undergraduates [reference]. Many of the top program language experts are not in the United States, they are located in the UK, France, Denmark, Sweden, Holland, Japan ... These universities and institutions include Cambridge, Oxford, Edinburgh, Inria, Paris 7, Diku, Chalmers, ... Of course, because of their migration, you can not predict the future of a school in this aspect of the rise and fall, perhaps in the near future, MIT, Stanford and Berkeley will become the world's strongest also probably. All I want to say is that it all depends on the few individuals. In the world of programming language, the importance of personal thinking is far greater than the fame of the school.
But the program language experts do not completely exclude industry. As long as there is a company to identify heroes, give them enough respect and preferential treatment, they will also play a very big role in the industry. Some companies in the financial industry, such as Jane Street Capital, the standard Chartered Bank, have begun to realize this, and have invited some programming language experts to lead the development of financial software systems. There are also some experts set up their own companies, engaged in sophisticated projects. For example, GrammaTech was founded by a former Cornell program language professor. The twenty or thirty-person small company, the client, includes Nasa,boeing,airbus, Lockheed Martin, Ge,sony, a giant. Another example is the IU Professor R. Kent Dybvig, his company, Cadence, which has only one person (sometimes two people), and the client includes a big company like Motorola,cisco. Another company created by the program language experts is Galois, Bluespec and so on.
Academic Heritage
I left Cornell because I didn't like the Cornell school atmosphere and the fading of the program language direction. But I do not regret it, for I have found the one who has given me the greatest help in my life, and he has taught me the idea of independence. I came back and realized that there was still a superstar in Cornell, his name was Robert Constable. But he was such a "Cornell" that I had never heard of his name when I was in the Because I had a superficial understanding of the programming language, so I could not understand his greatness at all. So that when I talk to him, I still decided to leave! But he is the "academic ancestor" of several of the most important researchers, including Professor Robert Harper of the most watched CMU in the field, Greg Morrisett of Harvard, and UPenn Benjamin Pierce ... After seeing his Naive computational type theory I found that Robert Constable's understanding of the type theory was that there were few people in the world that could compare.
Later I discovered that Robert constable was originally a student of Stephen Kleene, and Stephen Kleene was a student of Alonzo Church. Alonzo Church has another student, he is very famous, almost no one knows nobody, his name is Turing (Alan Turing). The famous teacher out of Gaotu, this really is a letter. Everyone knows Turing, but how many people have heard of Stephen Kleene? In fact, every programmer unknowingly uses his results almost every day. The * number in the regular expression (for example, a*b*) is actually called "Kleene Star", because Kleene invented this thing. Kleene has other very important achievements, which are ahead of the times so far that people have not fully understood their potential until today. One example is Kleene's "Smn theorem", a method derived from this theorem called the Partial Evaluation, which covers most of the "optimizations" inside the compiler, and you can even use this method to generate the compiler automatically. The world's most advanced scheme compiler Chez scheme, the internal implementation of such an optimization, it can one step the completion of other compilers need to optimize the multi-step, but more than the cumulative effect of these steps is better.
When it comes to these, I silently sigh, the world is how. People say "superseding", but that's not the case. A few days ago I read a paper written by Kleene in 1945 that covers almost the latest, hottest, cutting-edge ideas in a particular field. Gottlob Frege, the originator of modern logic, wrote in the 1879 paper "Begriffsschrift", which is more profound and more intuitive than most of the later logic writings. Why can't we always go beyond the ancients? Because people like to forget history, like to make simple problems complicated, like to listen to the glib people make up, but even these have the knowledge of the names of scientists have not heard, not to mention to see their papers.
The stars are shining
Given the vast number of programmers who do not understand the language of the program, I am here to give a "real list of program language experts", so that people have some understanding of them. Almost everyone in this can be called a superstar. Of course, because of their large number, I can't enumerate all of them, and the list here is basically the best paper I've ever seen. Although many of them have been awarded the Turing Award, they generally do not pose as "Turing Award winners". Their understanding of the nature of computing, some even more than Turing himself.
This list is: C.A.R Hoare, Dana Scott, Robin Milner, John McCarthy, Dale Miller, Christopher Strachey, Peter Landin, Robert Const Able, r.m Burstall, Valentin Turchin, Patrick Cousot, Neil d. Jones, Gordon Plotkin, J strother Moore, Tobias Nipkow, Rob ert Harper, John Reynolds, Frank pfenning, Olivier danvy, Yoshihiko Futamura, Philip Wadler, Luca Cardeli, Greg Morrisett, Benjamin Pierce, Daniel Friedman, Matthias Felleisen, Amr Sabry, R. Kent Dybvig, ...
Listing this list is not to say that we should worship them instead, but only to broaden our horizons and explain who is really concentrating on the program language and not on the "heroes" of mass worship. In fact, no matter what people worship, in the end you will find it is a mistake. For example, I have found that some of the above-mentioned concepts are too complex to be respected by people who are famous in the field. If you accept without criticism, you will never open that knot. And I'm not trying to hold my field in the sky. There are also many people in this field who like to brag, to swap concepts and write meaningless papers. I can see all this clearly.
Others are "half" program language experts. Why is it called "half"? Because they are closer to the logic house or philosopher. On the one hand, they are more profound in their minds, often with surprising answers to the dreams of procedural language experts, but on the other hand their ideas are often too "symbolic" that they are too complex to express their problems. Because of their great role in programming language, they are also listed here:
Alonzo Church, Stephen Kleene, n.g de Bruijn, Haskell Curry, W.A. Howard, Per Martin-löf, Gerard Huet, Henk barendregt, T Hierry Coquand, Jean-yves Girard, ...
There is an interesting relationship between these people, you can go to mathematics genealogy Project to check the "Academic Family tree map." If a person invents a concept, his students will have similar ideas. So I often find people with similar ideas through this family tree, or trace them to the source of their thoughts. This can also be a trick to finding a like-minded mentor.
This article is posted on Yinwang's Sina blog, on 2012-06-14.
Though it ' s not available now.
(turn) who is the real program language expert