Oracle's acquisition of Sun has caused people to worry about the future of Java. Whether Oracle can continue to maintain the openness of Java, and in the face of the rise of a number of lightweight languages such as Ruby, Python or PHP, whether Java can continue to maintain its popularity in development. Leadership in the field?
14 years ago, when a marketing genius from Sun changed the name of an experimental cross-platform language from Oak, which symbolizes solidity, to Java, which is full of fragrance, he may not have thought that this language would have the potential to become a popular language. Later glory. In fact, if Sun now wants to change the name of this language to accurately reflect its position in the computer industry, it seems that Oak is more vivid. Today, although the Java language is not really blooming everywhere, it has appeared in many occasions and devices, and it enjoys the reputation of stable operation and well-designed; Java code may not dominate all computers or all platforms, but it is close to becoming A universal language is within reach.
James Gosling, the father of Java, made this point when he took the stage to speak at the OpenWorld conference hosted by Oracle. He pulled up a JavaFX slideshow with a litany of statistics: more than 850 million Java-enabled desktops and about 10 billion Java-enabled devices. In fact, Java virtual machines are common in electronic devices: e-book readers Kindle, Blu-ray disk players and smart phones (including less smart phones), etc. iPhone apps run on thousands of iPhones, but Java is embedded in 2.6 billion phones, from not-so-smart phones you can buy for $20 to the latest generation BlackBerry and Android phones Nothing is included.
Inviting Gosling to speak at the OpenWorld conference is just one of the ways Oracle head Larry Ellison hopes to reassure engineers that the language has a bright future. Oracle wants to acquire Sun Microsystems, but it still has to wait for European regulators to approve the decision. The U.S. government has given the green light, but European government officials have not yet agreed to the deal due to concerns about MySQL's development. Both Gosling and Sun Chairman McNealy said that once the merger and acquisition is completed, Java will receive more attention and resources from Oracle than before.
In the short term, the signal Ellison conveyed may not be very important, because now that Java has become a climate, it is not easy to change the direction of development. Of course, some people believe that Oracle's business model is so different that it will inevitably make major changes to every part of the Java ecosystem. Overall, for every reason why Java might change, there are equally good reasons why Oracle might want to keep the status quo.
Enterprise-level applications are the main battlefield
Java first found its place on the server side, and this area is still the main place where Java virtual machines are expected to be seen in the future. For all Oracle's products, large servers are also the main home, so it makes sense for this pair to appear. Although PHP programmers favor MySQL, for data-intensive enterprise applications, many of the most critical projects still use Java wrapped in Oracle-based architecture, and this situation should not change anytime soon.
Sun said the GlassFish application server is downloaded more than 1 million times a month, and older platforms such as Tomcat are still common. Because the technology is highly regarded, fast, and truly cross-platform, large enterprises (such as banks and insurance companies) are in high demand for Java developers.
However, Java is no longer considered the latest and coolest syntax. Some programmers have complained about the structure of statically typed languages and have switched to newer or simpler languages, such as Ruby, Python, or PHP. Many of today's simpler web applications are developed in these languages because the code they write is easy to modify and can be quickly prototyped. However, these easy-to-use new languages often rely on Java: Ruby developers often use JRuby (a Java-based Ruby language) because the Java virtual machine can handle heavy tasks better and free up multiple threads. Jython (Python language based on Java) is similar.
Java is now incorporating some of the latest programming techniques to curb the intrusion of these new languages. Grails clearly mimics many of the simple declarative patterns of Ruby on Rails; the Grails framework combines script plug-ins such as Groovy with a database middleware called Hibernate. Groovy itself adds numerous dynamic options to facilitate code interpretation, and can be directly linked to any part of the Java Application Programming Interface (API). There's no need to even think about Python or Ruby, because Groovy, with a slick, modern syntax, gives Java programmers access to a seemingly endless variety of vast libraries and a rock-solid underlying virtual machine.
Go mobile
The number of Java phones (estimated at around 2.6 billion) is staggering, as many of the simplest phones on the market run Java Platform Micro Edition (Java ME). This allows companies like Wattpad.com to build document reading platforms that work smoothly throughout the third world.
However, the number of smartphones running Java is relatively small. The huge success of the iPhone has inspired many people to relearn Objective C. This language allows programmers to improve their control over some system issues such as memory usage. Java hides most of the underlying problems from programmers, which is an advantage, but the premise is that there is no need to manage resources such as memory, because if there is a small error in garbage collection, some games will not run. Unfortunately, because battery life is such an important factor, smartphones require tighter resource management than almost any other platform.
Still, Java programmers are in demand, as BlackBerry continues to use Java ME on its new platform: it adds support for touchscreens and orientation sensors to the phone's profiles. There are unpredictable factors in Android. Since Google has opened up the use of Android, many mobile phone manufacturers have jumped on the Android bandwagon.
Google's Android is built on the open source Apache Harmony and its classes, rather than on the Sun-developed Java Development Kit (JDK) and Java ME. To someone writing code in Eclipse, they will look almost identical. In many other cases it won't matter because Android development uses a lot of XML forms, but if the two development frameworks drift away from each other, this split can become a big problem.
Reclaim desktop ground
Most people still think that Java never succeeded on the desktop, and that's the past. Today, Java is slowly but steadily penetrating into every corner of modern operating systems. While standard applications written in Swing continue to suffer from trying to target the most basic parts of each platform, with newer development platforms and frameworks like JavaFX and Web Start, it is possible to effectively deploy software over the Web. The native platform handles all caching of Java Archives (JARs). By clicking on a link, sometimes followed by a few clicks on a permission-granting dialog box, the software can be installed and updated, and can be run at any time.
JavaFX is still a veritable unknown. Graphics capabilities are now competitive with Adobe's Flash; the computing engine supports most of the Java API, but the language is a strange hybrid of genuine Java, JavaScript, and other markup languages. The code is simpler than regular Java, so Java programmers have to learn new things. However, for a very interactive desktop tool, the new animation class may be worth the time to learn. Web Start continues to slowly improve the ability to deploy software directly to the desktop through the browser.
Seize the embedded field
Java also thrives in places where people least expect it. While C programmers may never acknowledge the clever storage and fast execution capabilities of the Java Virtual Machine, Java's success in non-smartphones, set-top boxes, embedded chips, Kindles, and other low-power devices shows: Fully capable of showing off in embedded applications. The popularity of Java also helps programmers migrate from large platforms to small platforms. While it's not easy to switch from developing enterprise-level applications for mainframes to developing small embedded code, the Java standard makes this transition much easier than many other tools can.
Java packages are also becoming smaller and smaller. Gosling used dust to describe a coin-sized, Java-aware computer. JavaCard, a virtual machine and API for such small packages, is about to usher in version 3.0, a milestone version that will add network connectivity capabilities. Although these little dots are not yet small enough to fit into the human eye, the ability to talk directly to the Internet makes them very tempting.
Will partners part ways?
The biggest worry for all developers is: What kind of conflicts of interest will change if Oracle's acquisition of Sun is finalized? Oracle has grown by charging large software licensing fees, and its software can run on any hardware customers want to buy. Sun, on the other hand, usually gives away software for free and then makes some money by selling servers. These distribution strategies may not change immediately because there is too much inertia, but no one knows what decisions Oracle will make in the future.
Some believe Oracle's failure to charge large license fees in the past will only encourage Ellison to adopt similar tactics with Sun. Perhaps Oracle's sales team is coveting this opportunity right now: gradually increasing licensing fees where Java used to be free. To avoid rewriting Java Platform Enterprise Edition (Java EE) applications, many companies would probably rather pay $100, $200, or even $1 million per CPU.
Critics point out that Oracle can easily develop new versions of the Java virtual machine with different performance levels for different markets. Desktop virtual machines may remain free, Oracle may even pay computer vendors to market Java and JavaFX, and performance improvements in handling extreme multi-threading may come at a very high cost. There are many ways to make money from users, and licensing fees are often much cheaper: It's much more expensive to have recalcitrant programmers first learn a new language and then rewrite the code base.
But some people think that Oracle may not adopt this move. A source close to Sleepycat, the open source database company acquired by Oracle in 2006, said Oracle has roughly doubled the size of its technical team, while all dual-licensing models remain intact. Software still comes in either open source or commercial license form. If Oracle treated Java like Sleepycat, community licenses and other options would still be as free and widely available as ever, and more engineers would be available to improve the code.
Deeper questions remain about long-term relationships with other major Java partners. Google continues to support Apache Harmony, a project with more than 1.25 million lines of code that seems bent on undermining Sun's status as the center of the world. IBM lost the bidding war for Sun and now finds rival Oracle stronger. IBM designed the Eclipse development tools and may also begin to take the Java platform in another direction.
Other partners were more aggressive. SAP Chief Technology Officer Vishal Sikka has repeatedly asked Sun to release the Java Community Process (JCP), focusing on the plan proposed by Oracle in 2007: handing over control to an open, independent, vendor-neutral standards organization, and all the standards organizations Members participate on the premise of equal opportunity. While Oracle has been largely mum on the details, it's safe to assume the company will regain respect for some of the ideas it inherited from Sun.
However, although other partners may engage in intimidation, they may consider the issue of degree, because everyone is actually restrained from each other, and any excessive behavior is likely to be blocked, because everyone realizes that once written, everywhere Advantages of operating concepts. If code written for an Android phone can't be easily migrated to a Sony Blu-ray player or Glassfish server, there's an opportunity for another language to emerge. In fact, several companies are already writing toolkits that allow users to easily run Ruby on Rails or Python software on the iPhone.
Additionally, many of these newer languages may become serious competitors, and too much infighting will only help them gain ground. There are dozens of very good, lesser-known open source packages out there that can usually be ported to every platform with a little bit of conversion by dedicated enthusiasts. For example, Python is already the main language in some scientific fields, and Google chose Python instead of Java as the first language supported by its App Engine. While IBM, Oracle and Google may squeeze each other out in the race for dominance, they must recognize that everyone benefits from standardization, not monopoly. If anyone dares to exclude others too much and try to control Java, other vendors may rush to their competitors.
Does Java also open an app store?
The fact that the Java code base remains relatively cohesive and relatively standardized has prompted speculation about how Sun (and Oracle, if the merger goes through) could exploit Java's ubiquity to make a fortune without raising licensing fees and crowding out Pressure on everyone? What if someone developed an App Store for the entire Java ecosystem, selling widgets written in Java just like apps for the iPhone? They could be on desktops, phones, Blu-ray players, or What if it could run on any other platform using Java?
Recently, there have been a considerable number of applications for Android phones, and Sun is also planning a Java store so that people can simply drag the application to the desktop, or just write a little more code to add each application to the desktop. Combined, they can run in almost every corner of the Java world. Still, dealing with vastly different screens and user interfaces can be a challenge.
Imagine how attractive this scenario is: an application written by a developer runs on an Android phone, he works on a task at his desk, and when he gets home, it runs smoothly on the Blu-ray player in the living room.
Bringing Java applications to people sitting on the couch is even a bit unexpected, because the Java language was originally intended to run on set-top boxes in its early days when it was called Oak. This vision will rely on the Java platform's greatest advantages: popularity and cross-platform stability. Perhaps these advantages will help Java bring rolling income to its inventor.