You are here
The Eclipse Foundation’s annual release train, featuring simultaneous updates to dozens of projects, has just arrived, featuring preliminary Java 9 support. Called Oxygen, the release train covers 83 projects and includes 71 million lines of code.
Here are the key updates in Oxygen:[ Keep track of what’s changed in Java 9 in InfoWorld’s live changelog, “What’s new in Java 9.” | Keep up with hot topics in programming with InfoWorld's App Dev Report newsletter. ]
- Java 9 support remains in beta stage, because Java 9 itself will not be made available until Java Development Kit 9 ships on September 21. Oxygen’s Java 9 support includes the ability to add the Java Runtime Environment for Java 9 as the installed JRE as well as backing for the Java 9 execution environment. Developers also can create Java and plug-in projects using Java 9 and compile modules that are part of a Java project. Eclipse’s signature Java IDE has been enhanced as well, with improvements to the UI.
- Eclipse Linux Tools 6.0 updates Docker Tools with more security options. This project provides a C/C++ IDE for Linux developers.
- Eclipse PDT (PHP Development Tools) 5.0 supports the 7.1 version of PHP, which offers nullable types and a void return type.
- The Eclipse Sirius 5.0 platform for building domain-specific modeling tools, with usability enhancements.
- Eclipse EGit 4.8.0, offering performance and usability for the Java implementation of Git code management integration for Eclipse.
Modularity, a key but highly controversial feature of the upcoming Java 9 release, looks to be back on track with the Java community’s adoption of a proposal that had failed in an initial vote weeks earlier.
With new round of voting completed this week, the Java Community Process Executive Committee passed by a 24-0 vote the Java Platform Module System public review ballot, the subject of Java Specification Request 376.[ Keep track of what’s changed in Java 9 in InfoWorld’s live changelog, “What’s new in Java 9.” | Keep up with hot topics in programming with InfoWorld's App Dev Report newsletter. ]
In May, the same group, citing concerns over the plan being disruptive and lacking consensus, voted the measure down, 13 to 10. In the aftermath, Java Development Kit 9, where the module system was to be delivered, was postponed from July 27 to September 21.
Nvidia has released a new version of TensorRT, a runtime system for serving inferences using deep learning models through Nvidia’s own GPUs.
Inferences, or predictions made from a trained model, can be served from either CPUs or GPUs. Serving inferences from GPUs is part of Nvidia’s strategy to get greater adoption of its processors, countering what AMD is doing to break Nvidia’s stranglehold on the machine learning GPU market.[ Revealed: AMD’s strategy to become a machine learning giant. | Roundup: TensorFlow, Spark MLlib, Scikit-learn, MXNet, Microsoft Cognitive Toolkit, and Caffe machine learning and deep learning frameworks. ]
Nvidia claims the GPU-based TensorRT is better across the board for inferencing than CPU-only approaches. One of Nvidia’s proffered benchmarks, the AlexNet image classification test under the Caffe framework, claims TensorRT to be 42 times faster than a CPU-only version of the same test — 16,041 images per second vs. 374—when run on Nvidia’s Tesla P40 processor. (Always take industry benchmarks with a grain of salt.)
Native mobile apps have generally had the edge when it comes to user experience over web-based apps. But the tide is turning, with progressive web apps — a technology spearheaded by Google and Mozilla—catching on at major web properties and developer tools becoming available.
“We’re starting to see a lot of large companies come back to the web because of its low friction,” said Addy Osmani, an engineering manager on Google’s Chrome team. He cited Lyft and Twitter as examples.[ Get started: How to launch the right mobile development strategy. | Keep up with hot topics in programming with InfoWorld's App Dev Report newsletter. ]
With the initial release candidate build for Java 9 now published, Oracle has proposed that from here on out, only “showstopper” bugs be fixed for the production Java 9 release, which is due September 21.
The proposal floated this week represents a further tightening up of bug-fixing goals for RDP (Rampdown Phase) 2 of the Java upgrade. The plan calls for fixing all P1 (Priority 1) bugs critical to the success of Java Development Kit (JDK) 9. Also, builders would decommit from fixing any bugs not new in JDK 9 and not critical to the release, even if they had been targeted for fixing.
Over the past year, Google’s TensorFlow has asserted itself as a popular open source toolkit for deep learning. But training a TensorFlow model can be cumbersome and slow—especially when the mission is to take a dataset used by someone else and try to refine the training process it uses. The sheer number of moving parts and variations in any model-training process is enough to make even deep-learning experts take a deep breath.
This week, Google open-sourced a project intended to cut down on the amount of work in configuring a deep learning model for training. Tensor2Tensor, or T2T for short, is a Python-powered workflow organization library for TensorFlow training jobs. It lets developers specify the key elements used in a TensorFlow model and define the relationships among them.
Ruby has had a reputation as a user-friendly language for building web applications. But its slippage in this month’s RedMonk Programming Language Rankings has raised questions about where exactly the language stands among developers these days.
The twice-yearly RedMonk index ranked Ruby at eighth, the lowest position ever for the language. “Swift and now Kotlin are the obvious choices for native mobile development. Go, Rust, and others are clearer modern choices for infrastructure,” said RedMonk analyst Stephen O’Grady. “The web, meanwhile, where Ruby really made its mark with Rails, is now an aggressively competitive and crowded field.”
Oracle is proposing an update to the Java Virtual Machine to allow for direct-value class types, a modernization required by the advent of multicore processors. There is no schedule for when the changes might appear in the JVM.
The changes to the JVM specification would support a prototype of value classes—classes for which primitive-like non-reference value instances can be created and acted upon. “The proposals for value types in Java are about giving developers the alternative to give up identity and polymorphism so that the runtime can represent the underlying data in a way which is both far more compact and much better suited for processing in bulk operations,” said Georges Saab, Oracle’s vice president of software development in the Java platform group.
The next version of Google’s popular Go language will improve performance, compilation, and scaling to large code bases. Go 1.9 should be released in August.
Go 1.9’s creators expect almost all Go programs to run as they did before, given the focus on maintaining compatibility in this latest release.[ Also on InfoWorld: Tap the power of Google's Go language. | The best Go language IDEs and editors. | Keep up with hot topics in programming with InfoWorld's App Dev Report newsletter. ]
Here’s what's new and improved:
Ammonite, an open source tool to use the Scala language for scripting, should debut in its Version 1.0 production version in next two months.
"Scala has traditionally been a heavy, powerful language with heavy, powerful tools. Ammonite aims to let you use it for small, simple tasks as well,” said Ammonite developer Li Haoyi, a former engineer at Fluent Systems. The project enables Scala to vie for tasks that previously have been the domain of Python or the Bash shell for small housekeeping or automation scripts. It also can be used for file system and system administration.
A community build project led by developer Jay Rodgers is making Visual Studio Code, Microsoft’s lightweight source code editor, available for Chromebooks, Raspberry Pi boards, and other devices based on 32-bit or 64-bit ARM processors.
Supporting Linux and Chrome OS as well as the DEB (Debian) and RPM package formats, the automated builds of Visual Studio Code are intended for less-common platforms that might not otherwise receive them. Obvious beneficiaries will be IoT developers focused on ARM devices—and the Raspberry Pi in particular—who will find it helpful to have the editor directly on the device they’re programming against.
Developers on the Android mobile platform, which has had ongoing problems with security, now have at their disposal an API intended to protect apps from malicious traffic and bots.
Google is adding a Recaptcha API to Google Play Services for Android apps. The API is included with Google SafetyNet, a set of services and APIs to protect against threats that include device tampering and potentially harmful apps.[ Chatbots should be part of your intelligent systems arsenal: Build chat bots with Microsoft's Bot Framework • Cortana moves way beyond being a personal assistant. | Keep up with hot topics in programming with InfoWorld's App Dev Report newsletter. ]
Critical to the API is Google’s latest Recaptcha technology, which provides behind-the-scenes risk analysis and has let actual people pass through with no clicks. With Android apps updated to support the new API, mobile users can use their apps without being interrupted yet still avoid spam and abuse.
With Xcode 9, a forthcoming upgrade to Apple’s integrated development environment for building apps for MacOS, iOS, tvOS, and watchOS, Apple is introducing a new source editor, a new build system, and compatibility with the Swift 4 language. A beta version of Xcode 9 was made available earlier this week.
The latest version of Xcode brings a host of other improvements as well, in areas ranging from debugging, refactoring, and GPU support to a snappier find and replace capability. The new editor also offers faster scrolling for any-sized file and easier access to common tasks, Apple said. A new source control navigator is featured for viewing branches, tags, and remote repositories for a workspace.
Momentum continues to build for the WebAssembly binary format. WebKit, Apple’s open source browser engine used in Safari, now has a full implementation of WebAssembly.
GitHub has added data access tools and advanced project management to GitHub Enterprise, the on-premises version of the company’s code-sharing platform.
Here are the notable features in GitHub Enterprise 2.10, which can be installed on a user’s own hardware or on a cloud service such as Amazon Web Services or Microsoft Azure:[ Explore the power of the graph — the Microsoft and Office Graph, that is — in your apps: Microsoft Graph: The APIs to Office 365’s hidden riches • Microsoft Graph and Microsoft Teams reshape Office • Cortana moves way beyond being a personal assistant. | Keep up with hot topics in programming with InfoWorld's App Dev Report newsletter. ]
- The GraphQL API to help developers to build their own tools with greater access to data via the same API used to build GitHub itself.
- Project boards give users are provided a history of project activities, including notifications as to which team member was behind each action.
- For project reviews, a filter prioritizes pull requests, such as a request for items still awaiting review, an approved pull request, or requests that are ready to be merged. Users also can specify who is permitted to dismiss reviews on a protected branch.
- Version 2.0.0 of Git LFS (Large File Storage), which offers an early version of file locking, to prevent multiple updates at the same time.
- Administrators can configure API rate limiting, which can prevent overuse of resources, from the management console.
- To organize repositories, administrators can manually add tags to repositories for search and discovery. Topics can be designated for adding relevant data and group repositories by languages used, project functions, or teams responsible for maintaining a repository.
Boosted by its ties to Android mobile application development, Kotlin is a rising star in the Tiobe language popularity index.
Software quality services vendor Tiobe’s index assesses language popularity based on a formula that examines searches in popular search engines such as Google, Wikipedia, Bing, and Yahoo, looking at the number of skilled engineers, courses, and third-party vendors related to a language.
For Google, it is time to ring out the old and ring in the new when it comes to running native code in the browser. To this end, Google is making the WebAssembly portable code format its solution for native code going forward, displacing the company’s Portable Native Client (PNaCl).
PNaCl lacked the desired cross-browser compatibility offered by WebAssembly, the company said. PNaCl support will be removed early next year except in Chrome Apps and Extensions. Google said usage of PNACl is low enough to warrant deprecation and that WebAssembly has a vibrant ecosystem, making it a better fit. “Historically, running native code on the web required a browser plugin. In 2013, we introduced the PNaCl sandbox to provide a means of building safe, portable, high-performance apps without plugins,” Google’s Brad Nelson, software engineer on NaCl, PNaCl, and WebAssembly, said. “Although this worked well in Chrome, it did not provide a solution that worked seamlessly across all browsers.”