Use of JCP site is subject to the
JCP Terms of Use and the
Oracle Privacy Policy
|
JSRs: Java Specification Requests
JSR 337: JavaTM SE 8 Release Contents
The following updates have been made to the original proposal:
2019.02.05:
2014.09.22: Maintenance Leads: Iris Clark, Mark Reinhold E-Mail Address:
iris.clark Telephone Number: +1 408 276 3909, +1 408 276 7256 Fax Number: -
EG communications archive: http://mail.openjdk.java.net/pipermail/java-se-8-spec-experts/
Comments on specific elements of draft specifications are best
communicated via the issue tracker. Other feedback may be sent to
the comments address, java-se-8-spec-comments
http://java.net/jira/browse/JAVA_SE_8
http://openjdk.java.net/projects/jdk8/spec/
Original Java Specification Request (JSR)
Identification |
Request |
Contributions
Section 1. Identification
Submitting Member: Oracle Name of Contact Person: Mark Reinhold E-Mail Address: mark.reinhold Telephone Number: +1 408 276 7256 Fax Number: - Specification Lead: Mark Reinhold E-Mail Address:
mark.reinhold Telephone Number: +1 408 276 7256 Fax Number: - Initial Expert Group Membership:
Oracle Supporting this JSR:
Eclipse Foundation
Section 2: Request
The Java Platform, Standard Edition ("Java SE") is the core Java platform
for general-purpose computing. In this release of the platform, Java SE 8,
we intend to address a number of areas based upon trends in the programming
community, trends in hardware architectures, and above all our continued
commitment to ensuring the broadest possible success of core Java technology
for years to come. The Java SE 8 Platform Specification will build upon the Java Language
Specification, the Java Virtual Machine Specification, and the Java SE APIs
defined in Java SE 7. The Platform Specification does not itself define new
features, or enhancements to existing specifications; rather, it enumerates
features and enhancements defined in component JSRs or through the JCP
maintenance process. The Java SE 8 Platform Specification will aim to support the creation of
maintainable, scalable, and high-performance Java applications across a range
of computing environments. We propose three main themes: Productivity,
Performance, and Modularity. Productivity Java SE 8 will further reduce boilerplate code by adding productivity
features to the Java language and the Java SE APIs. These features will
increase the abstraction level of most applications in a pragmatic way, with
no significant impact on existing code and a minimal learning curve for all
developers. We propose to make it easier for developers to work with the
existing, widely-used Collections Framework, for example, by extending the
language with literal expressions for immutable lists, sets, and maps. Annotations, introduced in Java SE 5, enable the documentation of program
behavior and, in many cases, the static verification of that behavior. To
enhance support for the verification of large programs and libraries we
propose to include JSR 308,
which allows annotations to be written in contexts where they are currently
illegal. Performance The Fork/Join Framework introduced in Java SE 7 was a first step toward
providing higher-level programming abstractions suitable for multicore CPUs.
In this release we will take another big step by enhancing the Collections
Framework and related APIs to support automatically-parallelizable bulk-data
operations such as filter, map, and reduce. Convenient use of these new APIs
will be enabled by extending the Java language to include lambda expressions
(a.k.a. "closures") and default methods. These language changes will, as an
additional benefit, improve the productivity of developers using existing
single-abstract-method APIs across the platform. Modularity Developers of Java SE applications have long suffered with the brittle,
error-prone class-path mechanism for organizing program components. A class
path is really just a sequence of JAR files or directories which is searched
linearly whenever a class file or resource is needed. As such it supports
neither the encapsulation nor the versioning of components; both of these
facilities are essential to the construction and maintenance of large
programs. In Java SE 8 we propose to enable developers finally to escape from the
class path's "JAR hell" by integrating a module system directly into the
platform. We further propose to apply that module system to the platform
itself so as to support customizable configurations which scale from large
servers down to small embedded devices. We envision this Expert Group
defining: Rules for creating Profiles of the Java SE Platform, which may
contain subsets of Java SE, additional JCP technologies not part of the
Java SE Platform, or both; A Java SE Base Profile, which contains the foundational APIs upon
which the rest of the platform and applications depend; A Java SE Base Module, which implements the Base Profile; and
A set of component modules for separable technologies such as the
AWT and Swing GUI APIs, CORBA, naming, monitoring and management APIs, web
services, and the various XML technologies. Products implementing the Java SE 8 Platform Specification would be
required to include the Base module together with all component modules.
Products implementing the Java SE 8 Base Profile would only be required to
include the Base module; they may include some component modules, however, as
well as facilities for downloading and installing component modules on
demand. In either case, by expressing dependences upon standard modules an
application developer would be assured of a flexible yet consistent "write
once, run anywhere" experience.
This JSR defines a release of the Java SE platform targeted at embedded, desktop, server, and cloud environments. This JSR does not target a platform edition; it defines a platform edition, namely version 8 of the Java platform, Standard Edition. Members of the Java ME and Java EE communities have already been involved in preliminary planning activities for this release. We look forward to their continued involvement as work progresses. No; SE/EE EC only. Continually improving the productivity of Java developers is critical to
keeping the Java SE Platform at the forefront of software development. Exploiting the opportunities of multi-core CPUs in a way that is safe and
practical for programmers is essential for all Java applications. Modularity is a fundamental building block for developing, deploying, managing, and evolving all Java applications. Existing frameworks and tools support these tasks today, but standardization in the Java SE Platform would promote interoperability and benefit developers, users, and vendors. While existing (in progress) JSRs and open-source projects have investigated the evolution of the Java language, the JVM, and the Java SE APIs, only a platform JSR can unite the results of these investigations into a new edition of the Java SE platform. The technologies that make up Java SE 8 will be described by the component JSRs enumerated in the Java SE 8 Platform Specification. We propose a candidate list of component JSRs in section 3.1.
The Java SE platform itself does not have a single package name. All of its requirements are reflected in the packages of its constituent Java SE APIs. No. None are known at this time. None are known at this time. JSR 901 (Java Language
Specification), JSR 924
(JVM Specification), and the specifications for certain java.*/javax.*
packages will need to be revised as a result of this JSR. Expert Group formation: July 2012 The Expert Group will communicate primarily via e-mail. We intend this to be the case. We intend this to be the case. We intend this to be the case. Rather than a wiki which the Expert Group must take time out to visit, we
intend to implement a pair of mailing lists following the approach of JSR 294
and JSR 330. First, Expert Group business will be carried out on a mailing
list dedicated to Expert Group members. Second, an "observer" mailing list
which anyone may join will receive the traffic of the Expert Group list. The
observer list allows the public to follow Expert Group business, and is
writable to allow the public to make comments for other observers to see and
make further comment on. Expert Group members are under no obligation to
join the observer list and partake in public discussion. In addition to
these lists we will maintain a private Expert-Group-only list for
administrative and other non-technical traffic. In lieu of tracking the jcp.org discussion board, and in light of the
considerable public attention that the observer list is likely to receive,
the Java SE 8 Platform Specification Lead (or his designates) will read the
observer list and respond directly as appropriate. Since the majority of Java SE 8 is developed in component JSRs, it is
intended that the public track those JSRs according to whatever mechanisms
are offered by the JSRs' specification leads. Yes. The Java SE team at Oracle, as well as external contributors, have
spoken and written about planned enhancements for some time. The source code for most of the Reference Implementation will be
developed in the OpenJDK Community, just as for Java SE 7, with weekly and
milestone binary builds made available for anyone to test and review. We intend this to be the case. The RI will be the Java Development Kit (JDK), version 8. The TCK will be the Java Compatibility Kit (JCK), version 8. N/A The licenses for Java SE 8 will be the same as for Java SE 7.
Note that the following was added when the JSR moved to JCP 2.8:
EG communications archive: http://mail.openjdk.java.net/pipermail/java-se-8-spec-experts/
Comments on specific elements of draft specifications are best
communicated via the issue tracker. Other feedback may be sent to
the comments address, java-se-8-spec-comments
http://java.net/jira/browse/JAVA_SE_8
http://openjdk.java.net/projects/jdk8/spec/
Section 3: Contributions
The following JSRs will be proposed for inclusion as components of the
Java SE 8 Umbrella JSR. The final Java SE 8 Platform Specification might not
include all of these JSRs, and it might include some JSRs not listed
here. In the case of the proposed Java Platform Module System JSR, it is
understood that there is already a significant investment within the Java
community in applications and frameworks built using the module layer of the
OSGi Service Platform. The extent to which the Java Platform Module System
should adopt, interoperate with, or otherwise accommodate OSGi will be a
topic for that JSR's Expert Group and the Java SE 8 Expert Group to discuss
and decide. The following core JCP specifications will be enhanced under the auspices
of the Java SE 8 Umbrella JSR: Changes defined in Maintenance Reviews of various bundled stand-alone
JSRs will also be included: 3.2 Explanation of how these items might be used as a starting point for the work.See section 2.1. |