Sunday, July 14, 2019

NET Core, Java and Open Source

We need to talk about it

How open is .NET Core and C#? How does it compare to a platform like Java? Well... let's see.
Disclaimer: The post is a resumed version with lots of links, so be prepared to read it in a DFS or BFS way :) 

.NET Core

  1. In November 2014, The Microsoft team announced that "NET Core is Open Source"
  2. In 2015, Microsoft releases Visual Studio Code, a cross-platform multi-language IDE. 
  3. All these released under an Open Source license. The MIT License.
  4. NET Core runs in Windows, Linux, Mac and ARM-based systems (IoT)

Java

  1. Originally made open source by Sun in 2006
  2. Released under GPLv2 CE license. The CE clause allows it to be used in a more restrictive scenario. 
  3. Oracle has a different licensing schema for "Enterprise Java". While the OpenJDK is still safe (and should remain so) Enterprise customers face a different problem.
  4. It was conceived also as cross-platform and has wide support and a huge knowledge base.

Similarities

  1. They are both open source and cross-platform frameworks.
  2. Java and C# as languages are both Object Oriented and depending on whom you ask, kind of similar.

Differences

  1. Licensing: The MIT License is less restrictive than GPLv2 CE. If this could or could not be construed as meaning "more open" we will need a lawyer to find out. But general consensus is that The MIT License is less restrictive.
  2. Simplicity of Licensing: NET Core does not have nor requires a different "Enterprise" license. This simplifies licensing model from development to production.
  3. NET Core is a bit more than just C#, is includes VB and F#.

Bottom line

Where your preferences take you to pick one or the other due to technical or community differences, rest assured that using .NET Core will be at the least as safe (from an Open Source licensing point of view) as using Java. 
So... what are you waiting for? dotnet new something...