Note: This article is an article excerpt from the "Programmer" No. 11 technology topic "C Phoenix Nirvana", no organization, no organization, no organization.
Another: This article is an excerpt, full text can be found in the 11 technical topic. In addition to this interview, STAN LIPPMAN and Mr. Li Jianzhong have written to China C programmers for their cooperation, "C / CLI sharp experience", and other C / CLI-related article.
-------------------------------------------------- ----------------------------------
Reporter: When did you start designing new C / CLI? What is the purpose? I mean, you think Managed C Extensions failed, is it?
STAN: When Microsoft hired me, I said to every person of the management, Managed C took me, I clearly tell them that I will not be an obedient soldier. This is the case when I work with Bjarne Stroustrup. I have different opinions on some things. I published my opinion, and I also made the necessary efforts. Of course, it may be that someone else will win, and my opinions may be put on the side, but I will not be a lucky.
Saying, if you want to say that Managed C has a little success, it is also the only way it is also used, and it is the only way to transplant existing code to the new platform. This is really a very strong, I am really surprised. But from the experience of programming languages, it is really not very. I think a part of the reason is that MC designers (for standard C ) are too embarrassed. I dare to win Bjarne than they, and later the company's Herb Sutter is more brave than I. They should be more determined, they are too shrinking, not bold enough. I learned a thing in Bell Lab, that is, you should maintain a firm confidence and enthusiasm for what you think is correct.
I want to say that MC does work, and it is the only way to put C in .NET and packaged. However, it is not C , its implementation is unnatural, this is a lot of people.
I said before, CLI is not just Microsoft's platform, which is the only technology that is currently prospect. Java has basically arrived, I said it is just a technology, it doesn't have a farther goal, it has made everything possible. And .NET is the only technology that is far from foreground. Even if the programming language of this generation has developed to the end, it does not mean that this platform has developed to the end. Therefore, in a language, if you plan to go beyond the native code, you must be ported to .NET. This is my obligation to C . (Design C / CLI) After the start of the start, many people participated in it, especially those who believe in Herb Sutter, very important, many people in the C community contributed their own power. I am very happy. But you know that this is not to be attributed to me.
The C route is Bjarne, I certainly feel that this route is very successful, I feel very excited about the development direction of ISO C . However, I really don't think ISO C is interesting. I said that this is not to take anyone, just talk about my real view. ISO C is very strong, but it is the same as C99, just some of the patches and strengthening of language mechanisms. It didn't give me a thread mechanism, and there is no network support. This is a crime in the 21st century. And .NET provides a complete support library. In my opinion, this is what C has long been doing. You know, the whole thing is very surprising: I left the origin of C , Bell Lab, I didn't plan to go back, but I actually be able to participate in C improvement work, I am very happy. In fact, I don't think that the current C / CLI is very perfect, but we already have some great ideas, you will see it in the next version.
This is of course a challenge for the C community. I personally felt ISO C community has become a clutched community, we have to open it. This is certainly not a thing that can please everyone. Some people are very disgusted about our approach. This is the same as things that have happened. When Bjarne created C , many people using C were also very disgusted. When C just came out, some people think it is the worst language in history. They have to abandon those mechanisms that have declined performance, and the virtual functions are called "Turnle". I said that there is such an opposite part of the laboratory. Now I see this scene in replay, some people warned that Microsoft is engaged in conspiracy. We have made great efforts, listen to the community's opinions, invite them, listen to their voice, this is just like Bjarne, in the mid-1980s, when he got the management license, directly asked IBM and Apple's views on new languages, its range and in-depth excessive expectations before management. My point is that we are in the spirit of bjarne. So I think, even if he is not absolutely supporting our approach, it will not be completely opposed.
Reporter: Bjarne does not fully support C / CLI, is it?
Stan: He doesn't need it at all. He will participate in this work. I talked to him with Herb Sutter in an Oxford, and we show him our design. Herb spent a lot of effort, Herb is really a strong person, he is very good at in-depth details, phase Ber, I am not a person who really likes to deepen detail. We will meet him every week. Bjarne will suggest that we adopt different ideas. More importantly, we can hear his thoughts. He also knows our goal, so I think the language we have made is still nice.
Reporter: That is, do you think C / CLI has succeeded? I said that this innovation has been successful?
Stan: I want to say that it is an evolution, not a new, and the abstract data type is added to C in C and object-oriented. In these processes, there will always be some unhautes between different design modes (Paradigms). It is difficult to integrate CLI because CLI is the highest ruler. For example, you try to call the deficiency function of the derived class in the base class constructor, which should be illegal, because the derived class object does not exist, but because of the rule of the CLI, we have no power to this illegal behavior. For example, if you want to bypass the default constructor of the value, it is impossible to rule the CLI. I am saying that we really have to make a summary CLI in many places. So, is it, I think there is a lot of CLI problems, it is not. This problem is very complicated like a value type constructor, I can't say it here. All in all, CLI is still good. There are many arguments in Microsoft, I have not won every controversy, even if I think I should win, I don't want to win. No one can win a hundred battles. But Herb Sutter has the ability to make everyone reach a consensus, ensuring that C / CLI has a wonderful future in a dynamic programming environment. I think C / CLI is a reasonable reaction and improvement of C for Java and C # challenges.
Reporter: What role will C / CLI play in the future .NET platform?
Stan: We hope that it can become a system programming language on the .NET platform. That is, it can be used to develop programs that drive everything. You can't write the .NET driver with C #, you can't write the C # compiler with C #, at least not, but you can do it with C / CLI. You can achieve the highest efficiency and maximum capabilities on C / CLI because we are more complete and deep in the integration of the CLI model. The C # programming model is can't do with C / CLI, and there is no such "advanced". So I think if you used to be a C programmer, now I plan to learn .NET, C / CLI is a good choice. .NET programming is exciting, and C / CLI allows you to discover all the ability of .NET, this is really exciting.
Frankly said that I am tired of traditional programming. I used to build a Linux development platform where I have developed software development. This is really nothing wrong, but my feelings have fallen 20 years ago. I was tied to GCC, which made me feel uncomfortable. I found a better compiler, faster, the quality of code generated is better, but I can't use it, we must ensure that it is compatible with GCC's binary. These things make me irritating, I think I spent 20 years to improve the computing platform, but I didn't get it.
In contrast, .net is really an interesting and innovative technology. I often say that I am not because I am Microsoft, I said .net is good, but because I think .NET is good, I decided to join Microsoft.