Node JS (ish) for .Net and C#
No reasons to choose one over the other, when you can have both
Join the DZone community and get the full member experience.Join For Free
NodeJS, PHP, Python, and all of these other super dynamic scripting types of languages are extremely rapid in the beginning, as you start out. However, after a while, they tend to break down due to complexity. This was the sole reason why Anders Hejlsberg created TypeScript according to his own account. Simply because although it complicates things in the beginning, strong typing over time increases your application's maintainability score. Hence, traditionally choosing a language has been the choice between extreme rapid initial productivity, and the ability to maintain stuff over time. However, why choose, when you can have both?
With Hyperlambda you can encrypt and sign a lambda object, and pass it to another server securely for execution, with 4 lines of code.
Even ignoring the fact that this is impossible in C#, simply encrypting and signing a message in C#, to transmit it to another server, is easily thousands of lines of code. Selecting some data from a database, and returning it to the client as JSON, two lines of code.
The equivalent in C#, easily requires some 50-100 lines of code. In fact, only retrieving your connection string requires touching some 3-5 files, to wire up your IoC container. With Hyperlambda, this is already done. And while we're at it, reading something from your appsettings.json file ...
Symmetrically encrypting some piece of text using AES256 encryption ...
I could go on, and give you thousands of examples where you can get away with one line of Hyperlambda code, implementing what would require hundreds, and sometimes thousands of lines of C# code - However, I think you get the point ...
The idea is that a high level language will always outperform a low level language. The problem with NodeJS is that it's only high level. There are few if any ways to extend it with for instance C# if you wish. Hence, when you're stuck with Node, you are stuck! No way to move forward, and no easy way to extend it using your familiar C# knowledge. With Hyperlambda, extending it is as easy as follows.
And BOOM! You're in C# land! To invoke the above C# method, three lines of code ...
When you're creating applications, you want to stay in "lala-land" as much as possible. This is where everything is super simple, and you can express yourself rapidly, preferably as fast as your brain can think, and deliver solutions as fast as your fingers can type them out. However, when "lala-land" is no longer enough, you need the ability to dive into "the real world". The real world of course being C#, or some other low level type of programming language, that allows you to modify streams, byte arrays, etc.
The fusion of this "lala-land" and "low level core land" is Hyperlambda's strength, since it allows you to stay most of your time in the high level abstractions, where you don't need to think about stuff such as bytes, streams, RSA prime number calculations, database connection strings, etc. While at the same time it doesn't prohibit you from diving down into "low level land" once needed.
- Hence, download Hyperlambda :)
Opinions expressed by DZone contributors are their own.