Read 40 1 1 times, 200 1-3-27.
Nothing in this world can touch the hearts of programmers more than programming tools. VC, VB, DELPHI, JAVA…… .................. These dazzling names not only occupy the life of programmers, but also seem to have become some kind of belief. However, with the pace of the new century, these beliefs have once again encountered major challenges. Microsoft, the lion who was tired and annoyed by both judges and hackers, vowed to keep the crown on his head and tried his best to come up with an ace up his sleeve. NET strategy. As the core development language of. NET, C# naturally surfaced. Programmers have to make a painful choice, who to go with? In order to find out the answer, we have to make a comparison and prediction. As a senior programmer, I dare to talk wildly here. His strength is to attract jade.
If all non-technical factors are put aside, C# is undoubtedly the best programming language in the history of this planet, which concentrates almost all the latest achievements in software development and software engineering research. Object-oriented, type safety, component technology, automatic memory management, cross-platform exception handling, version control, code security management … these features are not found 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, products with excellent technology, such as OS/2, Mac OS, UNIX and so on. , were defeated by the beautiful face of Windows. This time, the role of Microsoft seems to have changed from an unarmed revolutionary to an old landlord who oppresses others. If the weather really changes, isn't C# giving birth to the wrong child? Maybe it's not that bad. After all, a lean camel is bigger than a horse, and C# has been submitted to the ISO. Once it becomes an international standard, it is hard to say which ticklish warrior (or Microsoft itself) will be transplanted to platforms such as Linux. In that case, JAVA will be miserable. Because JAVA users are mainly developers of network services and embedded device software, embedded device software is not where C# comes into play. In terms of network services, C# just-in-time compilation and local code caching schemes have absolute performance advantages over JAVA virtual machines. Moreover, once C# becomes a public standard like C++, software developers can not only save the license fee of JAVA, but also need not worry about becoming a slave of Microsoft, and those who oppose Microsoft and advocate vendor independence may not have any opinions. This may be exactly what Microsoft expected.
If the competition between C# and JAVA in the field of network services is compared to the competition of air superiority in the future, then the competition between C# and traditional general rapid development tools, such as ——VB and DELPHI, will be an out-and-out hand-to-hand combat. The worst programmer is probably a VB programmer. In Microsoft, VB is like Clinton who left office. Not only did he lose all his glory, but he was also troubled by chaos. Think about it, the project written by VB6 must be converted into. The code based on. NET can only be converted into VB7 with the conversion tool, which is almost unrecognizable. Because VB7 follows the Common Language Specification (CLS). NET, almost all the functions that can only be used in C++, JAVA and other languages are added, but the syntax is compatible with the original version. If it is the first time you see the converted code of your old VB6 project in VB7, be careful of your heart! So, work hard and don't tell me you're retiring. The situation in Delphi is not much better. It turns out that the housekeeping skill is to start the application quickly and well. Now, if you look at the latest VS.NET beta 1, you will feel familiar with it. There are so many attribute lists and components ... who makes you so poor that even the chief designer can't afford you?
In fact, the real overlord of programming language is 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 lovers of C++, and the success of PHP has also contributed to the syntax similar to C++. In the fields of operating system, device drivers, video games, etc., C++ will still occupy the main position for a long time, and in the development of the most application software, C# is likely to replace C++. First of all, C#, like JAVA, simply copied part of the syntax of C++, so it is easy for a large number of C++ programmers to learn. In addition, for beginners, it is simpler than C++. Secondly, Windows is a monopoly platform at present, and the voice of Microsoft cannot be ignored when developing Windows applications. Most importantly, compared with C++, developing application software with C# can greatly shorten the development cycle, and at the same time, it can use the original C++ code except the user interface code.
However, C# also has weaknesses. First of all, on a large number of existing Windows platforms, C# programs can't run yet, because C# programs need it. NET runtime as the foundation, and. NET runtime will be released as a part of a new generation of Windows(Whistler) or submitted to Windows Me and Windows 2000 users in the form of Service Pack. So in the near future, C# will be mainly used for servers. Secondly, there are only a few options for components or libraries that C# can use, such as. NET runtime, there is no rich third-party software library available. This requires a process, and the support of software developers is also very important. Third, some success factors of JAVA are touted by the anti-Microsoft camp. Although "write once and run everywhere" is just a slogan, it is a mature technology after all. At present, the only advocate of C# is Microsoft with a bad reputation, and it can only run on Windows. In fact, these two languages are not irreplaceable. Rationally speaking, for software developers, the best tools are the most familiar. Especially for users of C++, C# doesn't bring anything new, because. NET runtime can also be used in C++, and there is no absolute reason to change it.
To sum up, I personally think that in recent years, C# will inevitably rise and become the protagonist on the Windows platform, while JAVA will become the overlord on UNIX, Linux and other platforms, and C++ will continue to make great efforts in the field of system software. Interestingly, the syntax of these languages is very similar, because both JAVA and C# developed from C++. Other development tools will certainly continue their journey for a long time, but in terms of market share, they will inevitably be impacted.