As you see by the title of the post, today I had decided to drop off the use of one of my languages (C#/.NET) against it’s all-time contrincant (Java), a known language for me.
I will be very specific about reasons of my decision, because I know about this eternal discussion :
- SO : I’m in love with Debian. Any task that it’s a suffering with Windows Server & IIS & MS SQL performances, there are hundred of different proved solutions in Linux, for a long time ago. Note: I’m not saying IIS or MS SQL are not good tools, I’m just saying it’s Linux alternatives are the best.
- Open source/multi-platform : At last, Microsoft had decided to enter to the open source world. As well, had decided to go to real multi-platform…well, this is in Java project from the initials. For this, and as Azure & another Microsoft’s projects got Linux in its core, seems to me that soon or later Windows X will become a new Linux distro…Just wait!
- NET.Core : I don’t want to migrate nothing to new frameworks to ensure working in future. I don’t want fragmentation in my apps. I know Java got this problem all the time, but as well, It’s a well known problem. Don’t want to pass same mess with .NET right now.
- High-Level performance : as seems but that .NET it’s growing in performance in web apps, still high-processor operations, by consulting several benchmarks around Internet, seems best performed with Java source code.
- I yet remember when begin to use Java, and .NET appears as it’s prophetical replacement (that times, Java programs were really slow). Seemed to me in that times that my acknowledgement of Java should become useless. But time has corrected me : 15 years of Java, 10 years of fight against .NET, and Java still is the most popular, demanded, flexible, big, and used in multi-platform app development.
- Don’t like LINQ, neither Lambdas, neither decorators, etc…Seems recharged to me, and as checked out some times, performance of that language expressions it’s not the desirable one : I prefer to write a for-to block specific that works fast, than to put a resumed expression that loads into memory a lot of useless data, and then of course runs slow.
- My principal duties at work are always writing APIs or consuming them. There’s just a world of flexibility differences between one language and the other, winning Java on that (perhaps, of course, of it’s experience in real Internet world, with thousand of developers that exploits the open source feature).
- Mono/Xamarin : was in love with Mono, really, and with Xamarin IDE. I’d still use them, surely (for monogames examples, or to develop to iOS). But anyway, deploy problems for web apps (behind Nginx), compatibility problems (again new .NETCore), etc, … makes me think if really it was worth it, and decided that no.
- I want to learn Scala, seems really attractive to me.
That’s all! This it’s not a comparison, neither objective, as thousands in internet. It’s just the reasons of my decision.
Here a nice video found about!
The King is Dead, Hail the King!