Why .NET Core Made C# Your Next Programming Language to Learn
stackify.com
stackify.com
I am excited for the new functional features coming in C# 7, but to be honest, these days it would not be my first choice of language when starting a new project. That choice falls to Scala due to its versatility:
- Blending of OO and FP.
- Works in backend, frontend (ScalaJS), or compile to native.
- Multi-discipline applications, e.g. web apps, data science, scientific computing, etc.
One of the biggest benefit as well, is that it leverages the JVM ecosystem. Big, mature community and choice is abundant. This is actually one of the things that really struck me when first working in it (JVM). It seems like you always have at least three choice for anything, that to most extent works well with each other:
- Alternative languages: Scala, Kotlin, Clojure, etc.
- Build system: Maven, Gradle, SBT, etc.
- GC: HotSpot, Zulu / Zing, Shenandoah, etc.
I had seriously contemplated switching to F# before Scala, and attended a full-day workshop for it, however the dealbreaker for me was the poor tooling support (this was around 2011). After switching to Scala, there was very little reason for me to come back to the .NET ecosystem.
And no, I don't think you are crazy. I had a really bad experience trying out Spring for the first time (with ant task, etc.). I was pulling my hair out and it turned me off Java for a few years before discovering Play Framework v1 (the original Java version).
How long ago was your experience with the build system? These days you can bootstrap a new project with Gradle, Leiningen, or SBT pretty easily.