A lot of free products and frameworks were built using Java as their core technology during the open-source boom. This was due to the multi-platform capabilities provided by the Java Virtual Machine and their write-once/run everywhere premise. Since then, the open-source community has grown tremendously and many of its members have become not only Java developers, but Java enthusiasts.Now, many of those same people work as decision-makers and manage large IT departments and projects.
As time went by, Microsoft noticed how behind they were in the open-source world and how discredited they were within the open-source community. This disrupted the Microsoft development ecosystem and caused them to launch .NET Core with the same premises as Java: write once/run everywhere (or almost everywhere).
Nowadays, Java and .NET Core are not a developer’s only options. There are plenty of different technologies for different focuses and different goals. However, the discussion about portability remains for these two stacks. Both .NET Core and Java applications can run on Linux or Windows and choosing which stack is right for your organization will most likely require a deep analysis. Part of that analysis should be that Java isn’t free anymore, but .NET Core promises to be free for a long time.
Since the acquisition of Sun Microsystems by Oracle, a lot of things have changed and Sun’s commitment to open source seems to have weakened. A signal of this is the recent licensing changes that Oracle introduced to the Java Runtime Environment. If you are a developer or you want to use the runtime environment non-commercially, you don’t have to pay for it.
But, if you are a company or you intend to use your Java-based software commercially, you do have to pay for a license. .NET Core doesn’t have any kind of licensing costs for it’s runtime environment.
You may be thinking about the other factors, aside from pricing, involved in this decision. But, I caution you not to discount the importance of pricing. While a large company should be able to afford all of the required licensing for a Java-based deployment, giving them the ability to leverage the robustness and matureness of the Java platform, this often isn’t the case for startups or small businesses. .NET Core’s performance improvements (remember that it is a full rewrite of many .NET components), portability, and zero cost provide a great solution for budget-conscious organizations.
Wait a minute! There are free Java Runtime Environments like OpenJDK that could be used! Yes, technically that’s true, but let’s be honest, what company would replace a mature and fully supported platform like Oracle’s JRE for an open-source project?
This discussion isn’t intended to persuade anyone to switch to .NET Core. I’m simply advising decision-makers to consider the platform. Aside from price, I do believe the platform has a lot of great benefits and will ultimately end up surprising even Java enthusiasts with its capabilities.
On the other hand, if you’re an experienced Java developer or your company has large Java-based solutions that make Oracle’s JRE too compelling to pass up, my suggestion is to plan and budget for the costs in the beginning. Overall, there is no one-size-fits-all solution for this kind of decision. Put in front of you what you want to benefit from and then decide how much you’re willing to pay.
About the Author: Luis Canizares is a senior .NET developer with 15 years of experience in a variety of development roles including, software developer, team lead, architect and project leader. He has been a number8 consultant for the past 2 years.
Provide your information to talk with a number8 Account Executive about your development needs today and feel what it’s like to be listened to before being sold a solution.
Let us help you add highly skilled, versatile developers to your team.