An editor has nominated this article for deletion. You are welcome to participate in the deletion discussion , which will decide whether or not to retain it. |
This article needs to be updated.(October 2013) |
Comparison of the Java and .NET platforms.
Open Source Evolution and Patent Issues
The Mono project, designed to offer a cross-platform implementation of .NET, initially sought to avoid patent or copyright issues. While it gained traction, the 2006 agreement between Microsoft and Novell provided partial legal protection to Novell's customers but did not address broader concerns about patents, leading the Free Software Foundation (FSF) to advise caution. The FSF's revised GNU General Public License (GPL) aimed to close loopholes Microsoft had exploited. [1] [2] [3]
The landscape changed in 2014 when Microsoft began open-sourcing many core .NET technologies under the Apache License and established the .NET Foundation . This led to the open-sourcing of ASP.NET MVC, Entity Framework, F#, Roslyn (C# and VB.NET compiler), and other frameworks. Microsoft's goal was to broaden .NET adoption across multiple platforms, including Linux and macOS . By June 2016, Microsoft released .NET Core 1.0 , a lean, cross-platform version of .NET. [4] [5]
By 2020, .NET Core evolved into .NET 5 , and in subsequent years .NET 6 and .NET 7 were released, unifying the previously separate .NET Framework and .NET Core. The framework is now fully open-source, with active contributions from Microsoft and the broader community. .NET MAUI (Multi-platform App UI) has further consolidated cross-platform capabilities, enabling developers to write applications that work on Android, iOS, Windows, and macOS from a single codebase. [6] [7] [8]
Java's AWT (Abstract Window Toolkit) and Swing libraries offer extensive features but have not significantly impacted the desktop market. In 2006, Java 6.0 was released, emphasizing desktop integration, followed by JavaFX , which aimed to compete with technologies like Adobe Flash by providing a modern framework for building rich client applications.
However, .NET remains the more popular framework for developing desktop applications on Windows , offering Windows Forms , Windows Presentation Foundation (WPF) , and previously Silverlight . With tight integration into the Windows platform, .NET applications benefit from a native look and feel. [9]
Java has made inroads with the Standard Widget Toolkit (SWT), particularly in environments like Eclipse, but Swing and AWT have not reached the same level of desktop adoption.
In server applications, Java and .NET continue to compete closely. Java EE (now Jakarta EE) and ASP.NET remain strong contenders in building web-based dynamic content and applications. [10]
As of 2023, Jakarta EE has evolved under the Eclipse Foundation and continues to serve large-scale enterprise applications. Meanwhile, ASP.NET Core has seen widespread adoption due to its performance improvements and cloud-native capabilities.
In terms of market share, Java and .NET remain dominant players. While Java previously had stronger adoption in the enterprise server space, ASP.NET Core has made significant strides in modern cloud and microservice architectures. Both platforms support containerization technologies like Docker and orchestration tools like Kubernetes .
Android , one of the most significant mobile platforms, continues to be heavily based on Java. However, over time, Kotlin has become the primary language for Android development due to its more modern features and better integration with the Android ecosystem. Android's Dalvik virtual machine and later ART diverged from standard Java implementations, but Java remains an important language in Android development.
Microsoft has invested heavily in cross-platform mobile development through Xamarin , which it acquired in 2016. By 2023, .NET MAUI (an evolution of Xamarin) allows developers to write cross-platform applications for Android , iOS, macOS, and Windows using a single codebase in C#. This has made .NET a more viable competitor in mobile development.
Java has found a niche in digital television and Blu-ray players, particularly through the BD-J interactive platform, which was accepted as the official tool for Blu-ray disc development. Java's presence in set-top boxes and digital TV has also expanded, with applications like TiVo's Home Media Engine using Java-based extensions.
The alternative, HDi, developed by Microsoft and Disney for the defunct HD DVD format, used a combination of XML, CSS, and JavaScript. However, HD DVD's failure left BD-J as the primary interactive platform for high-definition media.
Microsoft has continued to promote .NET as its primary development platform for Windows , shipping the .NET runtime with various Windows versions, starting from Windows XP . .NET is pre-installed in newer Windows versions, and Visual Studio Code , a lightweight, cross-platform code editor, has become one of the most popular IDEs for .NET development.
Mono, the open-source implementation of .NET, allows C# and .NET applications to run on Linux , macOS , and BSD -based operating systems. Mono’s inclusion in these operating systems, and the cross-platform capabilities of .NET Core (now .NET 7), has further solidified .NET's presence outside Windows.
As of 2023, Java is not pre-installed on Windows or macOS. However, it remains widely available for installation on all major operating systems, including Windows, macOS, and Linux . Java is also bundled with many Unix-based commercial distributions, and the open-source OpenJDK has become the de facto standard implementation for Java development. [11]
OpenJDK is included in major Linux distributions such as Debian, Ubuntu, and Fedora. This version of Java is fully open-source, passing all compatibility tests, and it can run major applications like Eclipse and NetBeans .
The Java Runtime Environment (JRE) can still be downloaded as a web plugin, but the plugin’s size has been a common critique. However, Java’s support for Rich Internet Applications (RIA), combined with improvements in Java 6 that introduced a new consumer JRE edition, has somewhat mitigated these criticisms.
Miguel de Icaza is a Mexican-American programmer, best known for starting the GNOME, Mono, and Xamarin projects.
Ximian, Inc. was an American company that developed, sold and supported application software for Linux and Unix based on the GNOME platform. It was founded by Miguel de Icaza and Nat Friedman in 1999 and was bought by Novell in 2003. Novell continued to develop Ximian's original products, while adding support for its own GroupWise and ZENworks software.
In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.
Nathaniel Dourif Friedman is an American technology executive and investor. He was the chief executive officer (CEO) of GitHub and former chairman of the GNOME Foundation. Friedman is currently a board member at the Arc Institute and an advisor of Midjourney.
Windows Forms (WinForms) is a free and open-source graphical (GUI) class library included as a part of Microsoft .NET, .NET Framework or Mono, providing a platform to write client applications for desktop, laptop, and tablet PCs. While it is seen as a replacement for the earlier and more complex C++ based Microsoft Foundation Class Library, it does not offer a comparable paradigm and only acts as a platform for the user interface tier in a multi-tier solution.
Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe's runtime, Adobe Flash. While early versions of Silverlight focused on streaming media, later versions supported multimedia, graphics, and animation, and gave support to developers for CLI languages and development tools. Silverlight was one of the two application development platforms for Windows Phone, but web pages using Silverlight did not run on the Windows Phone or Windows Mobile versions of Internet Explorer, as there was no Silverlight plugin for Internet Explorer on those platforms.
MonoDevelop is a discontinued open-source integrated development environment for Linux, macOS, and Windows. Its primary focus is development of projects that use Mono and .NET Framework. MonoDevelop integrates features similar to those of NetBeans and Microsoft Visual Studio, such as automatic code completion, source control, a graphical user interface (GUI), and Web designer. MonoDevelop integrates a Gtk# GUI designer called Stetic. It supports Boo, C, C++, C#, CIL, D, F#, Java, Oxygene, Vala, JavaScript, TypeScript, and Visual Basic.NET. Although there is no word from the developers that it has been discontinued, nonetheless, it hasn't been updated in 4 years and is no longer installable on major operating systems, such as Ubuntu 22.04 and above.
Moonlight is a discontinued free and open source implementation for Linux and other Unix-based operating systems of the Microsoft Silverlight application framework, developed and then abandoned by the Mono Project. Like Silverlight, Moonlight was a web application framework which provided capabilities similar to those of Adobe Flash, integrating multimedia, graphics, animations and interactivity into a single runtime environment.
Apache Cordova is a mobile application development framework created by Nitobi. Adobe Systems purchased Nitobi in 2011, rebranded it as PhoneGap, and later released an open-source version of the software called Apache Cordova. Apache Cordova enables software programmers to build hybrid web applications for mobile devices using CSS3, HTML5, and JavaScript, instead of relying on platform-specific APIs like those in Android, iOS, or Windows Phone. It enables the wrapping up of CSS, HTML, and JavaScript code depending on the platform of the device. It extends the features of HTML and JavaScript to work with the device. The resulting applications are hybrid, meaning that they are neither truly native mobile application nor purely Web-based. They are not native because all layout rendering is done via Web views instead of the platform's native UI framework. They are not Web apps because they are packaged as apps for distribution and have access to native device APIs. Mixing native and hybrid code snippets has been possible since version 1.9.
The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.
RemObjects Software is an American software company founded in 2002 by Alessandro Federici and Marc Hoffman. It develops and offers tools and libraries for software developers on a variety of development platforms, including Embarcadero Delphi, Microsoft .NET, Mono, and Apple's Xcode.
Xamarin is a Microsoft-owned San Francisco-based software company founded in May 2011 by the engineers that created Mono, Xamarin.Android and Xamarin.iOS, which are cross-platform implementations of the Common Language Infrastructure (CLI) and Common Language Specifications.
Mono is a free and open-source software framework that aims to run software made for the .NET Framework on Linux and other OSes. Originally by Ximian which was acquired by Novell, it was later developed by Xamarin which was acquired by Microsoft. In August 2024, Microsoft transferred ownership of Mono to WineHQ.
MonoGame is a free and open source C# framework used by game developers to make games for multiple platforms and other systems. It is also used to make Windows and Windows Phone games run on other systems. It supports iOS, Android, macOS, tvOS, Linux, PlayStation 4, PlayStation 5, PlayStation Vita, Xbox One and Nintendo Switch. It implements the Microsoft XNA 4 application programming interface (API). It has been used for several games, including Bastion, Celeste,Fez and Stardew Valley.
The .NET platform is a free and open-source, managed computer software framework for Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft employees by way of the .NET Foundation and is released under an MIT License.
Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.