I have worked with C# for over 15 years and used it from desktop, server, web, and mobile development. I also use Node.Js for a lot of real-time applications. I have experienced real-time applications being easier to develop NodeJs vs SignalR in C#. That being said, I still believe that the strong typing of C# enforces discipline and reduces the amount of bugs within your application.
Also now with .Net Core has demonstrated superior performance benchmarks. I am not sure if I would make a full switch I’m NodeJs direction.
I have found that NodeJs is good for small to medium application, where if I’m designing something on an enterprise level I’m sticking with C#.
At the end of the day I think it boils down to what tribe you want to live in.
Fellow polyglots out there what are your thoughts? ☺️
Top comments (6)
I personally find the C# + .NET ecosystem to be a lot more mature.
On average, Nuget packages seem to be less buggy than those found in NPM.
All too often in the Node.JS world I found myself writing hacky code to deal with a limitation of a package, or be brave and write my own implementation of a library. On average I've found the Nuget packages to be less janky.
C# also has less weird behaviour than JavaScript.
"Yes" is almost always the answer to the question "Can I use C# for this?" Usually a jack of all trades is a master of none, but C# still manages to be a master of most. That's why I tend to look at C# first, and only look elsewhere when there is a solid justification for it. With the last couple of releases of C# there are few if any reasons to look elsewhere feature-wise.
NodeJS with typescript will give you the same level of displiine as C#. Node will not be able to handle cpu intensive processing, but it is meant for very fast input output processing.
Agreed. I have seen a lot of adversity lately towards c#. I was curious why the .net pool has been so shallow. 😄
I think the .net pool reducing is down to the increase in JavaScript Frameworks for front-end dev, mobile (react native) & desktop (electron) and similarly wanting to use a single language for all Dev. This further reduces the barrier for entry and allows companies to seemlessly swap developers to any project.
That being said Microsoft are finally making the right calls with the introduction of Blazor and bindings for mobile made possible through Xamarin and Mono, making it simpler to resuse code bases and follow development principles easier.
As someone who swaps between the two regularly I've always found C# much more friendly and easier to work with. I think it really is preference now.
I agree with you. I think that they both have their pros and cons. I also go back and forth between JavaScript and c#. I believe for myself I feel more confident that my c# applications are going to be more stable and agile than my JavaScript applications.
Even though when writing node applications, I do feel that the development experience can be faster, but with my experience in building enterprise applications with C# I have developed a style of creating applications, and making my own Nuget packages to help streamline developing repetitive functions.
Also when it comes down to deployment. I feel that visual studio has done a good job providing great tools for those working with enterprise applications.