There have been a lot of discussions about Java over the past few months, discussing whether it is an open source language or a patented language. People are beginning to doubt whether the investment in Java is meaningful, fearing that the language will be subject to its new managed Oracle dictatorship.
In this case, people expressed their concerns about the long-term development direction of the language, especially the potential license fees and costs required for developing and running Java software.
This has led to the search for an open-source, vendor-independent language, to avoid bundling your infrastructure and development work with the business standards of a single company such as Oracle. Languages such as Python, C/C ++, JavaScript, Ruby, and Perl are excellent candidate languages that can get rid of such binding. The maintenance, development, and development of these languages are carried out through the open source community and open source standard organizations (such as ISO and Ecma.
Generally, a company never wants to be bound to the requirements or command of another company. Replaceable supply chains, the collective role of multiple companies, and the use of open-source standards are all ways to prevent companies from falling under the authority of a proprietary company. Otherwise, other companies will be banned from a company's products.
So what language is Java? Is it open-source? Will we be subject to Oracle's company needs? Java Community Process (JCP) maintains Java Development and Execution routes as an open source Community. However, there are major differences regarding the authentication method of the technical compatibility package (TCK) specifically used to prove compatibility with Java specifications.
The current licensing model prevents projects such as Apache Harmony from being developed and tested as independent and open-source Java implementations and cannot be released under the open-source license agreement.
With these license terms, this language is discussed as a non-open source language and only governed by Oracle. Only the licensors who have paid the Patent Fee to Oracle can develop and provide other Java solutions. If Oracle does not adjust the key authentication terms in the TCK, the open source principle declared by JCP will be unenforceable without a doubt. The final result is that Java cannot be open-source or planned in the form of a community, but it will be dominated by Oracle's hopes, needs, and interests.
The consequences of this split and opposition are unknown. The Apache Software Foundation raised this question to allow the whole society to participate in the discussion. Recently, they announced their decisions on this issue.
In view of these arguments, we believe that Java is not open source and is owned by Oracle patents. But is this a problem for Java developers and users?
No.
History has demonstrated why developers, companies, and other users use or invest in a proprietary programming language. Looking back at the 1990s S, Visual Basic (VB) was the most popular language for various enterprise development ). The entire VB ecosystem is managed, controlled, and planned by Microsoft.
Despite their full dominance, companies have invested tens of thousands of dollars in VB Software Development (hundreds of millions ?). These companies are willing to invest so much money because they have seen great value in such software development.
Developers need to purchase development tools from Microsoft, and end users need to pay Microsoft Windows License fee. In most cases, VB Applications connected to other Microsoft products will pay more license fees. All of these can be summarized as a cost/benefit evaluation. Developing and deploying VB Software is obviously a good and correct choice.
After that, Visual Basic began to develop in a brand new and incompatible direction: Visual Basic. NET. This has always been part of Microsoft's plan to move its development system to. NET. This will increase development costs, but the VB software developed in the past can still run in a backward compatible mode on this platform, with only a few minor changes required.
Direct the software. NET platform migration will obviously cause a huge new price, but Microsoft has invested a lot of manpower and material resources to make the platform backward compatible, so that the Windows ecosystem avoids these migration costs.
For Microsoft, Visual Basic and its development system are a very important factor in making so many useful software appear on the Windows platform. Therefore, it drives sales of Windows licenses. In view of this, they created MSDN, which became a holy land for developers to provide technical support and broaden their horizons, and achieved remarkable results without human access.
Through this language, this program, and its connection with tens of millions of Windows programmers, you can see that today's software developers will continue to use this language tomorrow. For Microsoft, there is a very realistic business demand that has prompted him to avoid alienation from these developers.
Compared with Microsoft, Oracle is in a different situation. When he gets Solaris, he treats it as a component in his entire database sales strategy. Oracle does not intend to develop Solaris into an independent platform, nor create something like MSDN to help programmers develop programs for this platform.
His promotion and development of Java will focus on this language, rather than regard it as a support product for other Oracle products. Before he has clearly defined a future business plan for Java, he will follow the path Sun chooses: to authenticate the Java Virtual Machine (JVM) for various environments ), including the Java Runtime Environment (JRE ). If Oracle does not intend to accept open-source implementations, all existing JVMs and JRE must come from Oracle and Their licensors.
This means that Oracle has a funding source, and on the other hand, all users will have to pay for running Java software.
Microsoft has created great commercial achievements through its application running environment-Microsoft Windows operating system. Various companies have been paying for this for decades.
When Oracle can use a Java Runtime Environment to earn money (usually hidden in hardware or operating system costs), I do not feel that it will impose compensatory licensing fees on the Java environment. Oracle is not stupid at all. He will try to keep Java in an effective development strategy. Developing and deploying Java software is now and will be the most feasible choice for enterprises in the future.
To further illustrate this point of view, we imagine that if an enterprise wants to "save costs" by not paying Java environment fees ", this means that it will be migrated to another language (assuming that most enterprises are using Java today ). The cost of this migration includes training fees, hiring experts, completely rewriting application and tool components, back-and-forth testing, and final deployment, these easily make the cost more than the cost of continuing to use Java for development and deployment.
Do not worry about whether Java is open source or has patent ownership. Ignore the discussion that has taken place in the press today. It has nothing to do with your business needs and the long-term enterprise software ecosystem health.