Nothing in this world touches the hearts of programmers more than programming tools. VC, DELPHI, JAVA...these dazzling names not only occupy programmers' lives, but also seem to have become some kind of belief. However, with the advent of the new century, these beliefs once again encountered major challenges. Microsoft, the lion that was exhausted and annoyed by the judges and hackers, vowed to keep the crown on its head, tried its best, and came up with its special skill-.NET strategy. As the core development language of .NET, C# naturally surfaced. Programmers have to make a painful choice, who to follow? To find out the answer, we have to make some comparisons and predictions.
If you put aside all non-technical factors, C# is undoubtedly the best programming language ever created on this planet. It contains almost all the latest results in software development and software engineering research. Object-oriented, type, component technology, automatic memory management, cross-platform exception handling, version control, code security management... You can't find all these features in another language. Although, as many people have noticed, when I list the above features, people always think of JAVA, but C# does go further. But the reality is that non-technical factors often determine the future of a product. Especially in the history of computer software, technically outstanding products, such as OS/2, Mac OS, UNIX, etc., have all been defeated by the beauty of Windows. Under the cheek. But this time, Microsoft's role seems to have changed from a bare-handed revolutionary to a bullying old landlord. If things really change, wouldn't this C# kid be born in the wrong child? Maybe the situation is not so bad. After all, a skinny camel is bigger than a horse, and C# has been submitted to a standardization organization. Once it becomes an international standard, there is no telling if any itchy hero (maybe Microsoft itself) will transplant it. to other platforms. In that case, JAVA would be in trouble. Because the users of JAVA are mainly developers of network services and developers of embedded device software, embedded device software is not the place where C# comes into play. In terms of network services, C#'s just-in-time compilation and local code cache solutions are more powerful than the JAVA virtual machine. Has absolute performance advantages. What's more, once C# becomes a public standard like C++, software developers can save the JAVA license fee and don't have to worry about becoming a slave to Microsoft. Those who are anti-Microsoft and those who advocate manufacturer independence may not have the same problem. What opinions. This may be exactly what Microsoft is looking for.
If the competition between C# and JAVA in the field of network services is compared to the competition for air supremacy in the future, then the competition between C# and traditional general-purpose rapid development tools - VB, DELPHI, etc. will be an out-and-out hand-to-hand battle. Perhaps the most miserable programmer is the VB programmer. At Microsoft, VB is like Clinton who left office. Not only has it lost all its glory, but it is also troubled. Think about it, projects written in VB6 must be converted into .NET-based code using a conversion tool before they can be transferred into VB7, which is almost unrecognizable. Since VB7 follows the Common Language Specification (CLS) established to cater to .NET, almost all the features that were originally only available in C++, JAVA and other languages have been added, but the syntax is compatible with the original. If this is the first time you see the converted code of your old VB6 project in VB7, be careful with your heart! So go for it and don't tell me you're going to retire. The situation of DELPHI is not much better. The original special skill is to make applications quickly and well, but now look at the latest VS.NET Beta 1, you will feel so familiar, with numerous property lists, components... Who makes you poor? Even the chief designer can't support you.
In fact, the real overlord among programming languages has been C++ for many years. All operating systems and most commercial software use C++ as the main development language. The vast majority of JAVA programmers are also C++ enthusiasts, and the success of PHP is also due to syntax similar to C++. In the fields of operating systems, device drivers, video games, etc., C++ will still occupy a dominant position for a long time, and in the development of the largest number of application software, C# is likely to replace C++. First of all, C#, like JAVA, simply copies part of the syntax of C++. Therefore, it is easy for a large number of C++ programmers to learn and get started. In addition, it is simpler than C++ for novices. Secondly, Windows is currently the monopoly platform, and when developing Windows applications, of course Microsoft's voice cannot be ignored. The most important thing is that compared to C++, using C# to develop application software can greatly shorten the development cycle, and at the same time, you can use the original C++ code except the user interface code.
However, C# also has weaknesses. First of all, C# programs cannot yet run on a large number of existing Windows platforms, because C# programs require the .NET runtime library as the basis, and the .NET runtime library will be released as part of the new generation of Windows (Whistler), or as Service Pack is delivered to Windows Me and Windows 2000 users. So in the near future, C# will mainly be used on the server. Secondly, there are only a few components or libraries that can be used by C#, such as the .NET runtime library, and there are no rich third-party software libraries available. This requires a process, and the support of various software developers is also very important. Third, some of JAVA's success factors are touted by the anti-Microsoft camp. Although "write once, run anywhere" is just a slogan, it is already a mature technology after all. At present, the only advocate of C# is Microsoft, which has a poor reputation, and it can only run on Windows. In fact, these two languages are not irreplaceable. Rationally speaking, for software developers, whatever they are most familiar with is the best tool. Especially for C++ users, C# does not bring anything new, because the .NET runtime library can also be used in C++, and there is no absolute reason to change.
To sum up, I personally believe that in recent years, C# will inevitably rise and become the protagonist on the Windows platform, while JAVA will become the dominant player on UNIX, Linux and other platforms, and C++ will continue to flex its muscles in the field of system software. . What is very interesting is that the syntax of these languages is extremely close, because both JAVA and C# were developed from C++. Other development tools will of course continue their journey for a long time, but will inevitably take a hit in terms of market share.