An Oracle official expects the module system planned for Java 9 to bring improved scalability and performance to the popular enterprise platform
The module system planned for debut in next year's Java SE (Standard Edition) 9 platform
will treat modules as a fundamental new kind of program component, with
the system improving scalability and performance, a key Oracle Java
official says.
In a blog post this week,
Oracle's Mark Reinhold, chief architect of the Java platform group,
discussed the goals of the module system. Chief among them is reliable
configuration, to replace the "brittle, error-prone, class-path
mechanism" with a means for program components to declare dependencies
on each other. Strong encapsulation, which allows a component to declare
which public types are accessible to other components, is also a goal.
"These features will benefit application developers, library developers, and implementers of the Java SE Platform itself directly," said Reinhold, "and indirectly, since they will enable a scalable platform, greater platform integrity, and improved performance."
Reinhold defined a module as a self-describing collection of code and
data. Code within it is organized as a set of packages containing types,
essentially classes, and interfaces. Data within modules includes
resources and other kinds of static information.
The module system has many facets, but most developers will require only
some of them on a regular basis. "We expect the basic concepts of
module declarations, modular JAR files, module graphs, module paths and
unnamed modules to become reasonably familiar to most Java developers in
the coming years," Reinhold explained. "The more advanced features of
qualified exports, increasing readability, and layers will, by contrast,
be needed by relatively few."
Platform modules are slated to include the base module, called
java.base; other platforms modules likely include java.sql, for database
connectivity; java.xml, for XML processing; and java.logging, for
logging. "The only module known specifically to the module system, in
any case, is the base module," Reinhold said. "The base module defines
and exports all of the platform's core packages, including the module
system itself."
Key to the module system is Project Jigsaw,
an OpenJDK effort intended to make Java SE and the Java Development Kit
more easily scalable to smaller devices. Jigsaw also is geared toward
improving security and performance and simplifying the construction and
maintenance of libraries and large applications for both Java SE and EE.
Jigsaw is an important step in Java's evolution, analyst Jeffrey
Hammond, of Forrester Research, said in an email. Modularity should help
Java, especially if it comes with a package manager similar to
Node.js's npm or .Net's NuGet, he noted. "Devs have been working around
the lack of modules for years. OSGI was an attempt to fix it externally,
but it's really something that should be a core part of the language --
and that's what Jigsaw will fix. In some ways it reminds me of one of
the strengths of Ada Packages."
Project Jigsaw had been planned for Java SE 8, released last year. But it was delayed until Java 9
to give developers more time to evaluate what Reinhold has described as
a "profound change" to Java. The modularization recently caused a
controversy when, as part of the process, the proposed elimination of private APIs, particularly sun.misc.Unsafe, upset some key developers. Oracle then amended its plan to allow for a few unsupported APIs, including sun.misc.Unsafe, accessible in Java 9.
Source: http://www.infoworld.com
No comments:
Post a Comment