#c# is used by few people because:
#C# is planned by Anders Hejlsberg, a god-level figure in the programming world. In many ways, it is better than JAVA is better. There is no doubt that it is a very good computer language. 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 c#?. For more information, please follow other related articles on the PHP Chinese website!

C# and .NET are suitable for web, desktop and mobile development. 1) In web development, ASP.NETCore supports cross-platform development. 2) Desktop development uses WPF and WinForms, which are suitable for different needs. 3) Mobile development realizes cross-platform applications through Xamarin.

The C#.NET ecosystem provides rich frameworks and libraries to help developers build applications efficiently. 1.ASP.NETCore is used to build high-performance web applications, 2.EntityFrameworkCore is used for database operations. By understanding the use and best practices of these tools, developers can improve the quality and performance of their applications.

How to deploy a C# .NET app to Azure or AWS? The answer is to use AzureAppService and AWSElasticBeanstalk. 1. On Azure, automate deployment using AzureAppService and AzurePipelines. 2. On AWS, use Amazon ElasticBeanstalk and AWSLambda to implement deployment and serverless compute.

The combination of C# and .NET provides developers with a powerful programming environment. 1) C# supports polymorphism and asynchronous programming, 2) .NET provides cross-platform capabilities and concurrent processing mechanisms, which makes them widely used in desktop, web and mobile application development.

.NETFramework is a software framework, and C# is a programming language. 1..NETFramework provides libraries and services, supporting desktop, web and mobile application development. 2.C# is designed for .NETFramework and supports modern programming functions. 3..NETFramework manages code execution through CLR, and the C# code is compiled into IL and runs by CLR. 4. Use .NETFramework to quickly develop applications, and C# provides advanced functions such as LINQ. 5. Common errors include type conversion and asynchronous programming deadlocks. VisualStudio tools are required for debugging.

C# is a modern, object-oriented programming language developed by Microsoft, and .NET is a development framework provided by Microsoft. C# combines the performance of C and the simplicity of Java, and is suitable for building various applications. The .NET framework supports multiple languages, provides garbage collection mechanisms, and simplifies memory management.

C# and .NET runtime work closely together to empower developers to efficient, powerful and cross-platform development capabilities. 1) C# is a type-safe and object-oriented programming language designed to integrate seamlessly with the .NET framework. 2) The .NET runtime manages the execution of C# code, provides garbage collection, type safety and other services, and ensures efficient and cross-platform operation.

To start C#.NET development, you need to: 1. Understand the basic knowledge of C# and the core concepts of the .NET framework; 2. Master the basic concepts of variables, data types, control structures, functions and classes; 3. Learn advanced features of C#, such as LINQ and asynchronous programming; 4. Be familiar with debugging techniques and performance optimization methods for common errors. With these steps, you can gradually penetrate the world of C#.NET and write efficient applications.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Linux new version
SublimeText3 Linux latest version

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.
