Mr. GRIMES
Mr. Grimes' Farewell
Original http://www.ddj.com/documents/s=9211/ddj050201dn/
2005.2.1
-
Richard is gradually fading out all about .net comments. In the farewell to the speech, he reviewed the mistake in .NET development and expressed its view for the future of the platform.
-
I have been writing a article for this newsletter so far since I have been three years, but now I decided to end. I think I should write a summary article to explain some of my views on the status of .NET.
In early 2000, when I was a technology preview version, I started to use it. At that time it was called COM 2, and the main language is a kind of COOL (translator Note: c-based Object-Oriented Language) , Based on C's-oriented language). Framework is just simply referred to as "next-generation Windows Service (NGWS, Next Generation Windows Services) until those nerds in the market will make a term to mess up the Internet search engine: .NET. How much Time you asked ".NET is what is" with "it and .com, .org What is the relationship? Of course, the word COOL can still be found. Some naughty people decided to call him C #, this is also for Make a search engine and user. Search engines don't like # characters, users don't know how to read him (reading C-Pound? Or by reading in the Atlantic West: C-Hash?) (Translator Note: Or press us China's reading: C Well?). The first piece of work published in the technical preview of the newsgroup seems to be a simple command line application written by Cool, and the Java program with it and its equivalent. I put forward the question: Is there any difference? This has got a lot of feedback from the Visual Studio product group manager, but he didn't really see my point of view.
Unlike other versions of Visual Studio, the first Beta version of Visual Studio .NET is open. All people can download this Beta version and report BUG and questions in their newsgroups. To be honest, I don't think it is a good thing. I just submit a reproducible bug anonymously in the public group, I don't like the rebel-unrecover bug or provide improvement suggestions. Such an open, large test will get a lot of bug report, and we have seen that project can benefit from this situation. I suspect that its purpose is not to find Bug - its real purpose is more likely to open this beta version to make it as widely accepted or recognized.
Like many people, I first shocked by the size of the frame. This is too much! The conclusion I got in the next few years is that this size is indeed an obstacle. There are too many classes, even though I think many classes are well designed, but there are still many types of designs. Many classes are only for Win32 packaging, and there are many classes that look like transplanted from other frameworks. Before .NET released, Microsoft has its own Java frame library, called WFC; it also has a managed library, used as part of the "classic" Visual Basic runtime. It is difficult to say how many classes are transplanted from WFC and VB to .NET. I can pointed out such a class, which is the same in the VB in the .NET, this class is EventLog. People are too lazy to think about it in the design of the frame. This is a case, I started to complain about this class from the Beta version, but the developer gives me a reply to the vulnerability. Finally, in 2.0 "Correct" this class, but the error method is not deleted, so I don't think this is a correction to it. In general, I think this library is too early, and I think it is too big. The frame of the frame has 25MB, which is much more doubled by Java. In the early training in Visual Basic, it was mentioned that the sharing software and the free software market have created the popularity of this language. Although there are also some shared software applications written in .NET, I often hear people complaining that huge re-package. In this column, I also mentioned the size of the size, and I still think that if Microsoft can provide a deletion version of the frame, such as the Mscorlib and System assembly, it is very beneficial.
Although I am focusing on Visual Basic, I will give my own opinion. I have to say that classic Visual Basic is tired. This language is born is a single thread, and there are some columns in COM (it is true when creating a COM server). In fact, when I have written MTS book (published in 1999), I started to summarize how MTS is designed, so that Visual Basic developers can write objects and benefit from threads and security, COM makes this again One step. Visual Basic can call the Win32 function, but you must use a nauseaful technique. However, after COM and COM security, it did reach a high possible situation, but in some code, some C can provide features. Any solution can make people go to Select VB if the C can provide simpleness. However, these problems are caused by the nature of this language machine, and these solutions are thoroughly changed. This causes VB.NET.
However, you can see the public anger caused by the release of VB.NET. The best example is the site of Karl E. Peterson (http://www.mvps.org/vb/RANTS/Vfred.htm). VB.Net is not VB: According to Karl's site, there are many incompatible places between VB and VB.NET languages. In addition, VB is single-threaded, no abnormal, and is usually used to write non-OOP code. VB.NET provides a "Porting" tool, but many people I know (including me) after using this tool, found that it simply commented on a large number of non-portable code. My initial suggestion is that VB developers are impossible to transplant their code, only to convert their code into VB classes, and call them in .NET code through COM interoperability. The VB code can only run in the environment that originally designed their environment. Of course, Microsoft hopes that "VB.NET is VB" myths can be deposited and committed to providing porting tools. Some people think that VB.NET is magical. But I really don't think this is the reason for the language. There are almost no features that are not available in other languages (the filter and interface method is renamed two exceptions), but this does not constitute the reason for design a new language. There is also an argument that VB.NET will make VB developers feel comfortable, but as I said, VB.NET is not VB, and because developers must learn some rules of OOP and .NET, such as threads, abnormalities, and commission. What is the difference between this and asking developers to learn a new language? C # language is born to .NET, but there is no need for VB.NET. The semicolon and the curly bracket are not very difficult! We have to make this language become .NET language, but there is no need to thoroughly. In my opinion, the public language infrastructure (CLS, Common Language Specification only simply requires VB.NET code to build code in its way, but not really enable all languages to work together. I know that the symbol integer is useful, but the unsigned integer is also useful! I don't understand why VB.NET does not use unsigned integers as part of the language. There is also a dull design I think it is naive. We don't have any reason to use Option strict off ("Late Binding" is the synonym of "difficult to discover the runtime bug", and if you don't display the declaration Your variable, you will not be able to track them during debugging. Some new features of VB.NET cannot offset this series of defects.
I have written a VB.NET column and often speaking at the VB.NET conference, so I am very clear about this language. However, this is not a language that can make me feel comfortable. I found that I have to use this language, I have to guarantee a lot of things. And it will not work in the way I expect, and I am not the only one such person. This is the most complaint I have heard from the classic VB to VB.NET, and the statement of Karl E. Peterson also supports this view: VB.NET is indeed VB. What is Microsoft to develop VB.NET? The answer is this. In 2000, the number of VB developers exceeded using other Microsoft development languages such as C developers at least 10 times (this is my number I saw at the internal meeting of Microsoft). Microsoft spent a lot of effort, C # is "from the C family" another language, but market personnel think they can't turn all VB programmers to this class C language. But they think that if Microsoft develops a VB's language, a large number of VB programmers will be transferred to .NET. In other words, the cause of VB.NET is market reasons rather than technical reasons. It is pointed out that .NET is substantially similar to the classic VB. Similar to VB, the interface can be used in .NET, a better way is to use classes. The interface is elegant, but .NET's class-based preferred solution marks the death of the interface. Take a look. NET Remoting: This mechanism allows you to create an object in a context environment, while in another context environment. This means that the status of the object is stored locally, and its behavior is remote. Therefore, Remoting should be an interface-based tool. You can call Remoting with an interface, but all "how-to" on the entire document and the web, you can't find this implementation. In contrast, Microsoft recommends that people use class-based methods, which often occurs some inexplicable conditions, such as people who deploy their server assemblies to the client to make the client have metadata, or a soapsuds At the time of the assembly. These various problems brought about by-class Remoting are all byparamid (HACK).
Say. Net is another aspect of the class VB is the attitude of Microsoft for the framework. Microsoft regards .Net as a useful tool to extend its products, but today, it does not indicate the belief of the framework. It (Microsoft) has almost no .Net product is completely used. Net is written, the only one such product is Microsoft CRM. However, this is not its main source of income. Instead, .NET is also refurbished and expanded for previous products. Even Visual Studio .NET is not a .NET product. DEVENV.EXE is a non-hosting process written in C (probably MFC). VS.NET host (host) is running .NET runtime, so it can use .NET objects, such as property grids (a control), and thus can expand it using code compiled as a .NET assembly. I personally think this is basically a model that Microsoft will use in the future. They don't want to bear the cost of rewriting all the .NET code, and there is no pressure to give them a new .NET code. Instead, .NET can always perform host (host) at any time when needed, especially in the user code When it is expanded.
Microsoft current operating system, XP and Windows 2003 do not rely on .NET, in XP, .NET even is only an optional component. Windows's next version, code Longhorn, issued a technical preview version on PDC 2003, which seems to be the operating system that climbs the .NET Touch. However, everything has changed later. In the next year, Microsoft released a series of remarks that it only cares about the final deadline in 2006, but there is no passion for new technologies. The first mating is WinFS. It is indeed making longhorn very slow, and especially it will make our Outlook Express today could not be used. But Microsoft did not want to make this technology to work, but choose to remove it. I realized the meaning of it, I doubt whether this technology can come back. Next, Microsoft declares other two .NET technology, INDIGO, and AVALON in Longhorn, will be available on other versions of WINDOWS. Indigo is a communication technology that makes it run on other versions of Windows. However, deciding to let Avalon run in other Windows versions, indicating that MicrSofot is losing information about selling Longhorn. My personal opinion is, avalon, or exact, XAML, will declare the death of the ASP. The reason is that Avalon is a client technology, but the browser is an important part of the distributed model. XAML is such a "RICH" that is included in the XAML application in the browser looks with a process-based Avalon application, plus web services and Indigo (as a mechanism for accessing remote code) The XAML application will make the ASP.NET application becomes old and useless. Why is Microsoft to kill ASP? It is because pre-installed ASP.NET, Microsoft can sell Windows 2003 a separate copy, as well as many Visual Studio .NETs. However, the client is not necessarily Windows, so they can't sell additional Windows (whether products or authorizations). This can be a unmoid loss, even a little, ASP.NET actually easily writes an application that can run on a browser outside IE. However, there is a technique such as XAML, and Microsoft can control the client. In this case, in addition to the server and development tool, the client must have Avalon. This allows Microsoft to get a big income, but the premise is to convince users to upgrade to Longhorn. However, I think Microsoft declares that Avalon can run on other versions of Windows indicate that Microsoft is no longer confident on the issue of upgrading to longhorn, and developers will not write Avalon applications without determining that the client is running Avalon. Program.
Therefore, according to these statements last year, Microsoft has indicated that Longhorn is actually a great innovation of .NET, although we also believe in this innovation on PDC 2003. This makes me think Microsoft has lost confidence in .NET. When I saw Longhorn's beta version (this year later), I have to check it out to see how much it is .NET implementation. I suspect that only a little bit. If the LONGHORN does not implement the shell or not allowed to use .NET to extend the shell, then Microsoft has completely lost confidence. If longhorn does not implement any service in .NET, they will point out (like me) .NET is not a correct technology running under the Localsystem account privilege. If you read this, you may think that I have some cynical ideas for .NET. This frame includes too much commitment, but I think Microsoft is too ambitious, posted too many assemblies, too embarrassing. The result is designed to shrink, but to provide backward compatibility, Microsoft should not simply redesign all the libraries but ignore the existing. So we will insist on using existing libraries. Microsoft always allows the market to be preferred in technology. They developed and promoted VB.NET just try to make a lot of Windows developers turned to .NET, but not because it really needs such a language. This framework will eventually become Visual Basic - users can use it to write programs, but Microsoft does not use it to develop operating systems or other products that have been survived, which can produce major income products.