4 ms·
C# and .NET are the backend runtime that most teams probably want when they think of moving on from Node to Elixir, Go, or Rust because of how close it is to Ty
by adamgordonbell 3y ago
C# and .NET are the backend runtime that most teams probably want when they think of moving on from Node to Elixir, Go, or Rust because of how close it is to TypeScript now.
Bold statement. Looking like typescript doesn't seem like it should be the most important concern in a backend lang.
- CharlieDigital 3y agoI don't think it's that bold. It's like saying learning Spanish is easier than learning Japanese if you're a native English speaker. The basis in the shared Latin characterset certainly makes it easier to learn Spanish, no? Similar syntax equates to similar constructs and concepts. The way async/await works -- from a dev perspective -- is the same. Exception handling is more or less the same with try-catch-finally. Lambda closures work largely the same (some differences due to how JS binds `this`). TypeScript object hierarchies like interfaces and abstract classes are more or less identical in function (obvious differences, though in underlying implementation and capabilities). Same null coalescing, same nullability constructs. Array methods like `map`, `filter`, and so on are subset of System.Collections.Linq operations like `Select`, `Where`. Certainly having similar syntactic language constructs makes it easier to adopt if you are already comfortable with try-catch-finally and async/await versus entirely switching paradigms in Go or Rust, for example. Tooling is very similar from a CLI perspective and DX isn't that different. Hot reload, .csproj = package.json, main.ts or index.ts = Program.cs
- adamgordonbell 3y agoI'm questioning whether learning the syntax of a language is the main difficulty in backend development and should be the main decision point.