There are very few people using c# because: 1. C# can only run on the Windows platform at first, and has not made the usual transformation like JAVA, resulting in the inability to run on Android machines; 2. C# It was born after JAVA, but it failed to surpass JAVA in terms of big data and artificial intelligence.
#C# is planned by Anders Hejlsberg, a god-level figure in the programming world. It is better than JAVA in many aspects. There is no doubt that it is a very good computer. speech. However, the development of a programming language cannot be supported by a certain company or a few companies, but by the strategic development of the main company and the promotion of the ecosystem. C# does not have an advantage in these two points.
First of all, let’s talk about the opportunities that C# has lost during the development of the language.
First, the mistakes of C# cross-channel policy
C# can only run on the Windows platform at first. During the transformation from the PC Internet era to the mobile Internet era, C# did not make the same progress as JAVA Habitual transformation makes C# unable to run on Android machines.
The Windows platform is easy to use and is indeed attractive to non-IT small and medium-sized enterprises with few technical personnel. But for IT companies in Silicon Valley, technology is not a problem. They have a large number of professional server managers, so IT companies in Silicon Valley prefer to use free Linux systems, such as CentOS or Ubuntu.
One move affects the whole body
Free Linux provides a fairly complete server operating environment and a complete set of tool chains, such as Apache web server, mysql/postgresSQL database, Memcache, Redis cache server, etc. . Although Linux seems to lag behind Windows' windowed graphical interface in terms of intuitive management, its performance is comparable or even more outstanding. Therefore, even though the configuration is more cumbersome, more companies still choose the Linux system as the server operating environment. C# has basically no use under Linux, which greatly limits the popularity of the C# language.
Although C# later launched Xamarin in a roundabout way and made it free and open source, the best mobile development opportunity has been lost, just like Microsoft's own WP mobile operating system has not competed with Apple and Android. C# in the field of mobile development has also lost its era of mobile Internet.
Second, C# was born after JAVA, but it failed to surpass JAVA in terms of big data and artificial intelligence
C#’s biggest competitor, JAVA, is actually the father of C# . JAVA was born in 1995. Its concept of writing once and running anywhere set off an innovation. C# was born in 2000 and is part of Microsoft's .Net solution. It was developed by Microsoft to replace JAVA.
In other words, C# can be replaced. C# and JAVA are very similar in syntax and architecture. What C# can do, JAVA can do too. And JAVA itself is designed for cross-channel, is more flexible than C#, and has good support under Linux. In terms of library support, JAVA is much better than C#. There may be some good C# libraries on Windows, but they are almost impossible to work on Linux/.Netcore.
In the process of transformation from traditional development to big data and artificial intelligence development, since the emergence of Google's Hadoop, the development language for big data seems to be naturally JAVA, although Hadoop provides interfaces in multiple languages at the same time. , but due to the structural operation of the underlying JVM, the JAVA language far surpasses C# in the era of big data. The development of artificial intelligence and the demand for data processing have made Python catch up with C# and become an artifact of data processing, so that it is often embraced Changing programmers are more invested in JAVA and Python.
Although Microsoft has provided many tool libraries for C# programmers to better collaborate with the Hadoop platform in order to adapt to the advent of the big data era, it is undeniable that the legitimacy and convenience of JAVA have made C#’s position in the big data era The data age is increasingly marginalized.
Secondly, we have to say that the closed nature of C# is also an important reason why it has lost popularity.
First, due to the closed nature of the C# running environment, the C# language is restricted to the Windows platform.
Before Microsoft President Nadella, Microsoft adopted a hostile attitude toward Linux and the open source software industry. Bill Gates once denounced open source software as viruses, and naturally refused to provide software support for Linux systems. At the same time, Microsoft has deeply bundled C# with tool software such as Windows system, IIS server, and MSSQL. If you want to use C#, you must purchase Microsoft's systems, databases and other family buckets. These costs and entanglements make IT in Silicon Valley very unhappy, and invisibly form an anti-Microsoft trend.
Analysis of windows server licensing fees
When Microsoft realized that it had been marginalized among new companies in Silicon Valley, it began to want to cooperate with open source software and systems such as Linux to make C# available on Linux. At the time of operation, Silicon Valley has already formed its own open source operating software production atmosphere: a complete skill stack, community and learning environment. In other words, Silicon Valley basically does not need C#. Therefore, the closure of the operating environment led to the decline of C#.
Second, due to the closed nature of the development environment, the cost of C# language development is high.
C# development not only relies on the Windows system, but also relies heavily on the Visual Studio development platform. In addition, because C# is chosen, database development inevitably involves the SQL Server database. The most fatal thing is that these are all chargeable, and Microsoft’s The products are quite expensive, including fees for IDEs and databases. This is a large expense for the company, so many large companies will choose to abandon C# due to cost issues. If you use the Linux Eclipse JAVA development environment, you can completely solve it for free. This is a serious development environment closure problem faced by C#.
Let’s take a look at the skill stacks represented by general IT companies in Silicon Valley:
Uber’s skill stack
There is also no trace of C# in Facebook’s skill stack
Third, due to the closed nature of the community, the experience of using C# is not so good.
At present, with the advent of the big data era, with the development of the Python open source community, the open source of the JAVA development community has also become stronger, but C# is still closed source. In today's world, service comes first and experience comes first. In the era of the 1990s, the idea of closed source was eliminated by the times without being changed in time.
The latest ranking of the language and structural technology stacks of major IT companies in Silicon Valley: there is no place for C# in the top ten
If there is no company application, no one will learn, and if no one learns, there will be no one. Recruitment is a chicken-and-egg problem.
In summary, C# is an excellent language. Due to the missed opportunities in the early stages of development, it did not form a trend, an industry chain and a good learning atmosphere. However, with Microsoft's changes to the open source community and its cooperative attitude, the adoption of C# The number of companies has also begun to gradually increase, especially the upsurge of U3D, which may further promote the popularity of C#. I believe that as time goes by, C# may have a place in IT companies in Silicon Valley.
Recommended tutorial: "c#"
The above is the detailed content of Why are so few people using the c# language?. For more information, please follow other related articles on the PHP Chinese website!