Errol Hassall

View Original

C# the best language that not enough people use

C# I argue is the best all-round language currently. It has all the features you could want in a modern programming language. Static and dynamic typing, concurrency, simple syntax, C/C++ like structure, classes and all the goodies of object oriented programming, it can perform many of the functional programming that its cousin F# can, lambdas, LINQ. C# can do everything, it doesn’t really specialize in anything but it can do everything add onto it that its compiled and you get in my opinion a complete language. For better or worse it does have microsoft backing it, whether you think that is a good thing or not, it does mean however that it will stick around for a long time. Many would say Python is the ultimate do everything language, I disagree, for a few reasons. The biggest one being speed, Python being interpreted in many aspects is a lot slower than C#, however with many of the insane mathematics libraries you can get close to that speed. The syntax used in Python can be very hit or miss, in some ways it is fantastic but in others such as when you do anything using the underscore notation, it becomes very unusual. C# on the other hand, doesn’t suffer nearly as much from this, sure when you get to some higher complexity it can be a little messy, but for 99% of users the syntax is beautiful and easy to use. Python lacks true threading capabilities, whereas C# has one of the best concurrency features that I have used. In contrast C# gives you the ability to perform many of what C++ can do but make it easier and more enjoyable to do it. Sure you wouldn’t program the core aspects of your game in C#, but wait, many game engines use C# to do a lot of the programming. It also has garbage collection, eliminating the need for pointers and memory management, this is a godsend when your doing anything that doesn’t directly need insane levels of speed, such as gaming, or IOT devices. For so many situations you can use C# in its raw form, you can find a library to do just about anything that it can’t already do. Furthermore, with the addition of .net core being open source and supported on all major operating systems it allows for the modern developer to create anything from a command line program to a web api, even creating complex websites such as Stack Overflow on the any system that you choose. I have used many languages, from machine code to high level such as Python, time and time again I keep coming back to C# to get things done as it strikes the perfect balance between abstracting away low level things to not removing too much like Python has a habit of doing. I encourage you to go out and pick it up again if you haven’t in awhile, if you have never learnt it, please go and try with your next project or complete a tutorial as this language truly is one of the best ones.

 

Microsoft has a great intro to C# for anyone that hasn’t used it before. https://mva.microsoft.com/en-us/training-courses/c-fundamentals-for-absolute-beginners-16169?l=Lvld4EQIC_2706218949