March 19, 2023

язык C sharp

Words

981

Time

1m 22s

Contributors

613

Words read

48.1k


Jump to research

Composed by

Profile picture

А. Б.

Views

54

Version history

А. Б., 537d ago

Have an opinion? Send us proposed edits/additions and we may incorporate them into this article with credit.

Microsoft Visual Studio

Microsoft Visual Studio

Microsoft Visual Studio is one of the best tools to write and develop Windows Forms applications with C# as the back end language [1] . It is considered one of the industry standards of how an IDE should look and is used for all types of .NET applications written in C# or any other supported language [5] . Visual Studio also has excellent IDE options and debugger toolchains [1] , making it a popular choice for C# developers. If you're new to programming and want to learn C#, there are several good resources to get started with, including Microsoft's official documentation for C# and the course labeled "Development for Absolute Beginners" [4] .
Yellow Book

Yellow Book

According to source [4] , The Yellow Book is a great free e-book that covers the basics of programming in C# by working through an example app. It is a good resource to start with for beginners who want to learn C# programming. The Yellow Book is relevant to "язык C sharp" query as it teaches the fundamentals of programming in C# and is a good starting point for learning the language.
Development for Absolute Beginners

Development for Absolute Beginners

According to sources [4] , C# is a great first language to learn. The Development for Absolute Beginners course is a good resource for beginners that is suggested by the sources. The Yellow Book is a great free e-book that covers the basics of programming in C# by working through an example app, and Microsoft's official documentation for C# is fantastic material for beginners. It is important to learn the basic concepts and problem-solving skills that underlie programming, NOT just the syntax of the language. Variables (named values), functions, control statements (if/then, loops, etc.), recursion, and data structures (trees, maps, arrays and lists, graphs, hash tables, etc.) are all important concepts to learn. Additionally, if you're going to focus on Object-Oriented Programming (OOP), it is good to learn classes, constructors, properties and fields, inheritance, interfaces, and delegation.
Unity

Unity

Unity is a popular game development engine that uses C# as the primary programming language. According to sources [2] and [5] , Unity programs are written almost exclusively in C#. If the goal is to learn Unity specifically, it might be more effective to start building small games using Unity and C# instead of WinForms applications as suggested in source [2] . Furthermore, source [1] notes that writing games with Unity is one of the biggest reasons to reach for .NET (C# or F#) over Python.
System.Device.Gpio

System.Device.Gpio

It seems that System.Device.Gpio is a useful feature of C# for IoT/Raspberry Pi-style Linux boards. [3] It provides access to Serial and GPIO, SPI, I2C, and PWM. This makes C# a compelling choice for hardware development, especially compared to Python. [1]
All answers

All answers

  • Microsoft Visual Studio
  • Yellow Book
  • Development for Absolute Beginners
  • Unity
  • System.Device.Gpio
  • C#
  • Performance

    1) Performance C# offers excellent performance compared to other general-purpose languages like Java and Python [1] . Its static typing provides significant value in the type space, compared to Python or other dynamically-typed languages [1] . C# is a good choice for building games with Unity and mobile development with Xamarin [1] . .NET core 2.0 makes .NET an attractive cross-platform framework for server development [1] . C# is also optimized for Windows desktop applications, making it a valuable language for building enterprise solutions [5] .

    Strong typing

    C# is an excellent choice for those who value strong typing, which ensures that variables behave in a predictable manner and any operations on them will be possible only if they match the type [5] . Its static typing provides significant value in the type space compared to Python or other dynamically-typed languages [1] . C# is also an object-oriented language, which means data is gathered into objects, producing applications that are easier to test and read, enabling response to issues, and generally meaning a leaner approach to writing code [5] . C# is a valuable language for building client-server applications [1] , which require strong typing to ensure that data is transmitted correctly.

    Client-server applications

    C# is a valuable language for building client-server applications [1] . Its strong typing ensures that data is transmitted correctly, making it an excellent fit for most applications [1] . C# is also closely tied to the .NET framework, which is a platform and programming framework for cross-platform development [5] . The .NET framework supports C# developers with different runtime environments such as the Common Language Runtime (CLR) and the .NET Core framework [5] . These runtimes enable C# applications to run on different target systems, from Windows to MacOS, Android, and iOS [5] . C# also offers excellent performance compared to other general-purpose languages like Java and Python [1] .

    LINQ

    C# offers LINQ, which is a feature that provides a concise syntax for querying data [1] . LINQ allows data to be queried from multiple data sources, including databases, XML documents, and collections [1] . This feature is especially useful for data science, ML, and AI development [1] . C# is also useful for rapid web development using Django or Flask [1] . C# offers a good balance of low- and high-level concepts that make it an excellent fit for most applications [1] .

    Deploying to Azure

    C# is useful for deploying to Azure, which is a cloud computing service created by Microsoft for building, testing, deploying, and managing applications and services through Microsoft-managed data centers [1] . C# is also optimized for Windows desktop applications, making it a valuable language for building enterprise solutions [5] . C# offers excellent performance compared to other general-purpose languages like Java and Python [1] . .NET core 2.0 makes .NET an attractive cross-platform framework for server development [1] . C# is a valuable, still-used language with many job opportunities [3] , making it a good language to learn for those interested in programming [2] .

    Jump to top

    Research

    Source: "15 reasons why you should learn C# in 2020" (from reddit, r/csharp)

    None.

    The webpage linked in the message is a discussion among Reddit users about their experiences learning C# and some specific language features, but does not offer any specific product or brand recommendations related to the query.

    Source: "Desktop development in 2022?" (from reddit, r/AskProgramming)

    Best answers to the query “язык C sharp”:

    • C# is still simple and still has winforms that are coming back into fashion.
      • C# offers simplified programming through its libraries and redefined syntax.
      • WinForms is a part of the .NET Framework that provides a simple way to build Win32 desktop applications, which are element-rich client applications.
    • .NET MAUI for cross-platform development. Although it does not support Linux OS.
      • .NET Multi-platform App UI is a project to unify the Xamarin and Xamarin.Forms APIs used to build native apps for iOS, Android, and macOS using C# and .NET.
      • MAUI will be including support for building cross-platformDesktop apps for Windows and macOS.
    • Flutter for cross-platform development.
      • Flutter is an open-source mobile application development framework created by Google.
      • Flutter provides hot reload, which allows you to alter your code and instantly see the results in your app.
    • QT with C++ for native and portable desktop apps.
      • Qt is a free and opensource widget toolkit for creating graphical user interfaces as well as cross-platform applications.
      • C++ is fast and provides greater memory control.
      • Using Qt, one can develop applications that run on various platforms without altering the source code.
    • Visual Studio Code with the Dart and Flutter extensions.
      • Dart is a newer language with clean syntax that compiles to small executable files on all platforms.
      • Flutter is a UI framework for creating mobile applications as well as desktop applications.
      • Dart is used to code the Flutter framework, providing a better UI experience than other alternatives like Node.js.
    • Golang for a stand-alone executable.
      • GoLang compiles to different platforms, and its focus is to create a single executable.
      • GoLang is famous for its high performance and low memory usage, and it provides stronger language constructs.
    • TypeScript on Electron for cross-platform applications.
      • TypeScript is a superset of JavaScript, which provides better code structuring and error detection through its types.
      • Electron is an open-source framework for building desktop applications using web technologies.
      • Electron allows creating cross-platform desktop applications using HTML, CSS, and JavaScript code.
    • C++ with WPF or Winforms for Windows only applications, when low memory usage is required.
      • WPF (Windows Presentation Foundation) is used to create graphical user interfaces (GUIs) in Windows-based applications.
      • WinForms is a part of the .NET Framework that provides an easy way to build element-rich client applications.
      • C++ provides greater control over the memory and allows a streamlined code.
    • Kotlin with SWT or Swing for cross-platform support.
      • SWT (Standard Widget Toolkit) is an open-source widget toolkit for Java.
      • Swing is a set of GUI libraries to create a Desktop GUI.
      • Kotlin is a cross-platform programming language that shares the same JVM (Java Virtual Machine) with Java.
      • Using Kotlin with SWT or Swing provides cross-platform support for desktop application development.

    Source: "Why did everyone pick C# vs other languages?" (from reddit, r/csharp)

    • Q: “язык C sharp”
      • A: “Why did everyone pick C# vs other languages?”
        • C# is an easy-to-use programming language that makes it exceedingly easy to get real work done even if it isn’t the most efficient language out there in terms of raw performance.
        • The .NET libraries have always been amazingly helpful for getting most things going relatively easily, and it’s hard to beat NuGet for package management for binary distribution of packages.
        • Some of the features that make C# stand out include:
          • Good generics
          • Good OOP support
          • Easy lambdas
          • Easy concurrency with tasks and async/await
          • IEnumerable<T> is literally gold and the collection classes in .NET have probably saved millions of man-hours by now
          • LINQ (extension methods not the query style)
          • Easy web dev
          • Relatively quick compilation
          • Easy unit testing
        • Performance-wise, C# isn’t very far off from C++ and Rust and is a bit more performant than Java or Go.
          • Reference: https://benchmarksgame-team.pages.debian.net/benchmarksgame/index.html
          • However, C# may require more effort to optimize code for performance and may not be as performant as Rust out of the box.
          • Example: The fastest C# implementation of the N-body benchmark on the benchmarksgame website (running on .Net SDK 5.0.201) gets a 4.83 second runtime while the fastest Rust implementation and the fastest implementation overall (compiled with Rust 1.50) has a 3.31 second runtime.
            • The C# implementations that are comparable in performance to Rust go out of their way to optimize their code, making it considerably more complex.
            • However, depending on your situation, it may be worth wringing the neck of .Net rather than the alternatives of making FFI calls or writing the entire thing in a lower-level language.

    Source: "Would C# be a good language long term for a dev..." (from reddit, r/csharp)

    Q: “язык C sharp”

    • Is C# a good language in the long run for developers?
      • C# is much more performant than most popular languages used in the industry like JavaScript and Java.
      • C# has a matured ecosystem that Rust and Go can’t compare.
      • C# is the best language to produce softwares fast while still retaining quality code.
      • C# has a built-in ORM, eliminating the need for future migrations to other languages.
    • Comparing Go and C#
      • Go is a recent language, and its job market is more limited.
      • C# is a workhorse for big/established businesses.
      • Go seems to be the go-to for startups.
      • Both are good long-term options.
    • Comparing Rust and C#
      • Rust is used for critical infrastructure and might take over part of the niche that C currently fills.
      • Rust seems like it has a future as a language because of its potential.
      • C# has better tooling and is on a better path with .Net Core and beyond.
    • What are the differences between programming languages in terms of performance?
      • Algorithms, data structures, and code quality are much more crucial than the specific programming language (outside of a few cases where the language runtime is particularly slow and poorly implemented).
      • A lot of developers like “low level” languages essentially out of ego rather than based on any real need.
    • Would companies switch from C# to another language for performance gains?
      • Hardware is comparatively cheap nowadays.
      • Developer time costs a LOT more than hardware.
      • Going for performance gains is not relevant in normal web development or desktop development.
      • Rewriting a whole ecosystem for a new language could take years.
      • Performance is almost always an empty word. Much more interesting is how well the software is maintained.
    • None.

    Source: "Is C# still being widely used in 2021?" (from reddit, r/learnprogramming)

    • Query: “язык C sharp”

    • “Is C# still being widely used in 2021?”

      • C# is huge in at least two areas:
        • Windows Desktop apps: Since the introduction of C# and .NET, it has been the flagship programming language for Windows desktop apps. It’s still arguably the best option if you want to build a pure Windows application that uses the latest and greatest Windows APIs. Because of this, it’s really big in the Enterprise world - basically software that runs inside large corporations, as opposed to software that’s sold to end-users.
        • Games: Unity is by far the most popular game engine (\~50% market share, the same as all other game engines combined) and the only language you use to program Unity games is C#.
      • C# is significantly bigger in the web dev world (used for backend only, not including blazor here) than in both games and even desktop these days. .NET is growing in market share as a strong backend option.
      • C# is useful everywhere most general-purpose languages are useful. It’s still a popular language.
      • Microsoft’s “national language”. Most platforms at Microsoft have very strong SDKs and tooling in C#.
        • Many banks are using c# and .net core for new projects.
      • VB.NET’s popularity is waning. Nonetheless, if you know VB.NET then you know C#. The only real difference between the two is the syntax but everything else is exactly the same.

    💭  Looking into

    What is the best IDE for C# development?

    💭  Looking into

    What types of applications are best suited to C#?

    💭  Looking into

    What do developers need to know to deploy applications to Azure using C#?

    💭  Looking into

    What benefits does LINQ provide for C# development?

    💭  Looking into

    What advantages does C# provide for building client-server applications?

    💭  Looking into

    What advantages does strong typing in C# provide compared to dynamically-typed languages?

    💭  Looking into

    How does C# compare to other languages in terms of performance?

    Source: "Is C# a good first language?" (from reddit, r/csharp)

    Q: “язык C sharp”

    • Is C# a good first language?
      • Yes, C# is a good first language.
        • C# is a solid and mature language with few surprises.
        • C# is easy to pick up because of its strong typing and simple syntax.
        • C# plays a major role in large enterprise projects where strong typing, OOP or Linq is appreciated.
        • The .NET platform is very fun and rewarding.
      • C# is fine to start out with.
        • Pick a resource in the /r/csharp subreddit’s sidebar and start learning.
        • The Yellow Book is a great free e-book that covers the basics of programming in C# by working through an example app.
        • Microsoft’s official documentation for C# is fantastic material for beginners.
        • A good course to start with is the one labeled “Development for Absolute Beginners.”
    • Are there any good online resources to get started with C#?
      • Yes, there are several good online resources to get started with C#.
        • The /r/csharp subreddit’s sidebar links to several resources.
        • The Yellow Book is a great resource for C# beginners.
        • Microsoft’s official documentation for C# is fantastic material for beginners.
        • A good course to start with is the one labeled “Development for Absolute Beginners.”
    • Are there any new features that a beginner should worry about missing if they use The Yellow Book to learn C#?
      • No, everything inside The Yellow Book is completely relevant to learning the fundamentals of C#.
      • The Yellow Book covers C# 6, and this doesn’t matter since C# is really good about maintaining version compatibility.
      • There hasn’t been anything added to the language that is necessary to include in a beginner book.
      • The only thing from C#7 that might make its way into a beginner book are Tuples.
    • Is C# in decline?
      • No data shows that demand for C# is not declining.
        • TIOBE shows the popularity of C# down by half in the last 7 years.
        • TIOBE popularity indexes are biased in the manner in which they measure popularity.
        • TIOBE is not a true representation of popularity because calculating the popularity based on search queries on a web search engine is just meaningless.
        • Stack Overflow polls show C# popularity has been fairly steady.
      • .NET has such a bright future.
        • The move to .NET Core and making .NET development platform independent just guarantees that C# and .NET in general are only going to get more popular in the years to come.

    Source: "The Good and the Bad of C# Programming | AltexSoft" (from web, www.altexsoft.com)

    • C# is a general purpose, object-oriented programming language that was created by Microsoft and released in 2000. It is designed to be easy to learn, has good performance, and can be used on a wide range of platforms.

    • C# is closely tied to the .NET framework, which is a platform and programming framework for cross-platform development. .NET supports C# developers with different runtime environments such as the Common Language Runtime (CLR) and the .NET Core framework. These runtimes enable C# applications to run on different target systems, from Windows to MacOS, Android, and iOS.

    • C# has a high-level syntax, which makes it easier to learn and read compared to low-level languages like C. It is considered an advantageous choice for Windows desktop apps, enterprise solutions, and even game development, as Unity game engine is built on C#.

    • C# programming language is based on object-oriented programming principles where data is gathered into objects, producing applications that are easier to test and read, enabling response to issues, and generally meaning a leaner approach to writing code.

    • C# relates to the C-family of programming languages. Learning C# will make it easier to learn C, C++, or Java since these languages utilize similar syntax and programming principles.

    • Visual Studio is the native IDE for C# that allows developers to download and install the language, write code, debug, and run/compile it. Visual Studio is considered one of the industry standards of how an IDE should look. It is used for all types of .NET applications written in C# or any other supported language.

    • C# programming language is type-safe which means that a variable can’t change its type across the code, ensuring that the variable will behave in a predictable manner and any operations on it will be possible only if they match the type.

    • C# has thorough documentation provided by Microsoft, including interactive tutorials, video series, and problem explanation. A large part of the documentation is devoted to the .NET resources like the common type system, compilers, and asynchronous programming capabilities with C#.

    • One disadvantage of C# programming is that, when compared to its closest counterpart Java, C# has similar compilation time but has slightly slower application performance benchmarks.

    • When compared to C++, C# passes two phases of compilation: The first is when the code compiles into intermediate language at the build stage, and the second is the compilation into a machine code when it’s executed at runtime. There is a significant difference between the languages with C++ outpacing C# in terms of performance.

    In summary, C# is a widely used programming language with strengths in its high-level syntax, its closely-tied .NET framework, its type safety, its support for OOP principles, its visual studio IDE, and its training documentation, but it does not compare as well as C++ in terms of performance when compared on benchmarks.

    Source: "I choose C# as my first programming language." (from reddit, r/csharp)

    • Best answer for “язык C sharp”:
      • C# is a great language to start with for people who want to work in programming. Many people on the Reddit thread agree that C# is a good choice because of the job opportunities it opens up.
        • “if you want a job, you need to learn C#” - according to a Reddit user with 85 karma
        • “If you learn C sharp and SQL, you will never be hungry.” - another Reddit user with 132 points
      • C# is especially good for building Windows applications with WinForms (.NET) framework. This is a good way to learn syntax and basics of C#.
        • “Dont start with Winforms… You should learn syntax on console as it is easier…” - a Reddit user with 39 karma disagrees, suggesting to start with console application for an easier experience
        • As of 2021, Microsoft Visual Studio remains the best tool to write and develop Windows Forms applications with C# as the back end language, according to thetutorial.co.uk
      • To become skilled in C#, it is important to learn the basic concepts and problem-solving skills that underlie programming, NOT just the syntax of the language.
        • Variables (named values), functions, control statements (if/then, loops, etc.), recursion, and data structures (trees, maps, arrays and lists, graphs, hash tables, etc.) are all important concepts to learn, according to a Reddit user with 75 karma.
        • Additionally, if you’re going to focus on Object-Oriented Programming (OOP), it is good to learn classes, constructors, properties and fields, inheritance, interfaces, and delegation. A Reddit user with 75 karma suggests learning SOLID programming principles, factory pattern, observer pattern, adapter pattern, and repository pattern
      • Unity is a popular game development engine that uses C# as the primary programming language.
        • If your goal is to learn Unity specifically, it might be more effective to start building small games using Unity and C# instead of WinForms applications, according to a Reddit user with -16 karma.
        • A review of C# usage in Unity on Unityinsider.com suggests that Unity programs are written almost exclusively in C# now.
      • None.

    Source: "Is C# a good language to learn?" (from reddit, r/csharp)

    • Is C# a good language to learn?

      • Yes, C# is absolutely worth learning, especially with the recent .NET Core 3 release.

        • C# even has great access to Serial (With netcore 3), and GPIO, SPI, I2C, and PWM with System.Device.Gpio, so it’s incredibly useful for IoT/Raspi style linux boards.
      • It is a good language to start with. There’s many opinions about which one is the best, but for good there are plenty of them.

      • It is popular and versatile as it is used a lot. All around. From mobile to backend to desktop to games, and even some embedded.

        • C# is a valuable, still used language.
          • I just landed a $65,000 C# job having never written any production code in C# before.
      • There may be more jobs for language X in country/city Y than for language Z. That doesn’t matter unless you’re in that city and want to get a job with shotgun method, meaning “I’ll do anything.” There’s plenty of C# jobs out there. In some areas a lot more than Java or Python.

    • Are there better programming languages to learn than C#?

      • C# is the best language to learn at the moment.

      • NodeJS is the best language for web app development.

        • If you’re making the backend of web apps, it’s just everywhere. It’s tremendously popular and has an extremely, extremely robust catalog of open source packages to work with. All of the essentials are there.
    • Are there languages with more job opportunities than C#?

      • There may be more jobs for language X in country/city Y than for language Z. That doesn’t matter unless you’re in that city and want to get a job with shotgun method, meaning “I’ll do anything.” There’s plenty of C# jobs out there. In some areas a lot more than Java or Python.

      • C# is an excellent choice right now.

    • Will there be many job opportunities for C# programmers after college?

      • The basics of C# are really straightforward, it’s a nice language, but the thing is, to be a good C# programmer you have to take the time to really understand .NET as well, and that required sort of studying the history and evolution of .NET.

      • C# can be used for almost any type of development, although you shouldn’t try to use the same tool for every job.

      • For side projects, you can make video games using MonoGame and Unity.

      • Coming out of college, some people got paid $20k more than what they asked for.

      • C# is used a lot. All around. From mobile to backend to desktop to games, even some embedded.

        • C# is a valuable, still used language.
          • C# just landed a $65,000 job for someone having never written any production code in C# before.

    Source: "What does C# have to offer over other general-p..." (from reddit, r/csharp)

    -Q: “язык C sharp”

    • C# is a language with plenty of value in its own right due to its various strengths and weakness compared to popular general-purpose languages like Java and Python.

    • The biggest reasons to reach for .NET (C# or F#) over Python are:

      • Performance
      • Strong typing
      • Client-server applications
      • LINQ
      • Deploying to Azure
      • Writing games with Unity
      • Mobile development with Xamarin
      • Excellent IDE options and debugger toolchains
    • Reasons to choose Python over C# are:

      • Data science / ML / AI development
      • Rapid web development using Django or Flask
      • An excellent ecosystem of third-party libraries with a culture of documentation
    • Learning C# before Java or Python will set you up quite well for learning both later on.

    • .NET core 2.0 makes .NET an attractive cross-platform framework for server development.

    • The static typing in C# provides significant value in the type space compared to Python or other dynamically-typed languages.

    • C# provides a good balance of low- and high-level concepts, making it an excellent fit for most applications.

    • C# is actively worked on by one of the biggest tech companies in the world and is at the center of most of their developer work. The language is updated several times a year, and the frameworks and runtimes are too.

    • The quality of the C# tooling and toolchain is excellent, from the IDE to the build system to the compiler, making C# a popular choice.

    None.

    💭  Looking into

    What is the best C# language?