Oracle Launches Java 8 with Online Event

The Java Platform Standard Edition 8 (Java SE 8) and the latest Java SE Development Kit (JDK 8) became generally available last week, but Oracle added its official imprimatur to the release this week with an online Webcast event featuring stars of its Java team and the Java community.

Mark Reinhold, chief architect of Oracle's Java Platform Group, kicked off the webcast by speaking directly to the Java jocks tuning in. He called Java SE 8 "a giant leap forward for Java." Thanks largely, though not exclusively, to the introduction of Lambda expressions and the related Streams API, this is the largest upgrade to the programming model ever done, he said.

"By making it convenient to express code as data, we have enabled the creation of more powerful APIs, which in turn can improve your productivity by reducing boiler-plate code and providing a simpler model for leveraging today's multicore processors."

He also reminded viewers that Oracle simultaneously released Java Micro Edition 8, the version of Java aimed at software development in tight, low-power environments without screens or interfaces, such as micro-controllers. Java ME is fast becoming a big part of the evolving "Internet of Things" (IoT) conversation.

Reinhold gathered a panel of Oracle's Java team members for some further discussion of new features and to answer questions in a social media Q&A. The panel included Brian Goetz, Oracle's Java language architect; Bob Vandette and Roger Riggs, consulting members of Oracle's technical staff; Richard Bair, Oracle's Java client architect; and John Rose, Oracle's Java VM architect.

Goetz fielded a question from Twitter: "Aren't Lambda's just sugar for inner classes?

"We could have gone that way…" he replied. "But then we would have inherited all of the complexity of inner classes. Instead we stepped back and said, instead of modeling functions with objects we're going to treat them as first class functions without identity. It turns out that that not only makes it simpler to program with, it opens the door to VM optimizations that enable us to get good performance."

Rose fielded a question about Project Sumatra, the OpenJDK project that aims to extend the recent trend of offloading compute cycles from CPUs to Graphics Processing Units (GPUs) with support for a native Java Virtual Machine (JVM), APIs, and the Java language.

"We want to be able to run thousands of threads on these specialized machines that do vector processing very well," he said. "Being able to emit and cogenerate Streams code from Lambdas onto this new hardware is necessary, and Project Sumatra is our cutting edge work with AMD to make this happen on various kinds of heterogeneous compute platforms."

Vandette took on a question about how developers know which Compact Profiles to use. For embedded developers to leverage Compact Profiles, he said, they have to break apart any dependencies so they can use the smallest profile to fit their needs. An enhancement in this release adds a profile option that will allow javac to target a specific profile and warn devs of uses of packages not in a specific profile. If you only have a JAR file, there's a new a profile option tool.

To a question about why Nashorn was necessary, Rose explained that it's a complete, from scratch rewrite of the JavaScript engine written on top of the modern JVM architecture. And it operates with the JVMs JIT, GC, concurrency, and thread control, so devs can write JavaScript code that scales and performs fully on the JVM.

Later, Reinhold showed recorded messages from members of the Java community, including Bruno Souza, founding member of the SouJava user group in Brazil. He declared Java SE 8 to be the best community-driven version of Java to date. Jim Gough, associate leader of the London Java Community (LJC), which contributed to significantly to the new Date/Time API. He echoed Souza's comment, saying that Java SE 8 was "the first release that really incorporated the community."

Former Oracle Vice President Adam Messinger, now CTO of Twitter, joined Reinhold for a one-on-one conversation about why Java SE 8 is important to Twitter. The company has made a big investment in the JVM, he said, moving virtually all of its server-side infrastructure to it, and using both Java and Scala (a JVM language) internally. He cited the invokeDynamic instruction introduced in Java SE 7, which Java SE 8 uses to link to the Lambda function code, as an especially important upgrade for Twitter. "It makes Java a true multi-language platform," he said.

Reinhold asked Messinger to talk about Java SE 8's support for functional programming and how that might affect Scala, which is a general purpose, multi-paradigm language designed to integrate features of object-oriented programming and functional programming. Scala runs on the Java Virtual Machine (JVM) and is compatible with existing Java programs.

"One of the reasons people like Scala is for the functional features and the preciseness," Messinger said, "and Lambdas does capture a lot of that. In a lot of ways, Scala and Java are a lot closer together than they were before. That'll for sure help us because it'll be easier to switch from one language to another in our day to day work, which people have to do nowadays."

The Oracle event also gave lots of airtime to a discussion of Java ME 8 and embedded development, with an emphasis on development for the Internet of Things. Reinhold sat down for a one-on-one discussion with Roger Riggs, who was also one of the spec leads for Java ME 8. They covered the main elements of the Java ME 8 upgrade, which include Java language and API alignment with Java SE 8, support for modern Web protocols, a comprehensive application model, advanced security features, and standard APIs for power management and interaction with a broad set of standard peripherals.

This is the first big upgrade of ME 8 in sometime, Reinhold pointed out, since 2005 and 2006.

"The advent of Java SE 8 has given us a chance to pick up most of the language features and upgrade the APIs, but with still a keen attention to the footprint requirements and the low CPU power," Riggs. Not making it into this revision, he pointed out, were things related to invokeDynamic and Lambda, because of the small footprint requirements. "We're going to work on that for the next revision," he said.

"It's still a big improvement, and it's about time," Riggs said.

The Webcast wrapped up with a partner panel discussion on Java and the Internet of Things, led by Peter Utzschneider, vice president of Java Product Management at Oracle. Matt Eichenberger, director of product management for Qualcomm's IOE Group, talked about partnering with Oracle to provide tools for developers, sponsoring hackathons, and promoting Java development. Geoff Lees, senior vide president and generam manager of Microcontrolers at Freescale, said that his company has developed a full Internet of Things gateway, which is a full Java development platform containing a native Java development environment. Charlene Marini, vice president of marketing in ARM's Embedded Segment group, talked about the longtime partnership with Oracle, which resulted in a diverse range of products that Java developers can target.