Java 9 released

New major version of one of the most popular programming languages released
25 September 2017   496

Great news for Java developers! New major release of one of the most popular programming languages is out now!

Java SE 9 is the latest update to the Java Platform. This release includes much awaited new features like the modularization of the Java Platform, better performance, support for new standards, and many other improvements. 

What's new?

  • Modularity
    • New, controversial modularity capabilities are based on Project Jigsaw. Modularity—in the form of the Java Platform Module System—divides the JDK into a set of modules for combining at run, compile, or build time. Modularity has been called a “transitive” change, enabling understanding of dependencies across modules. This feature is designed to let developers more easily assemble and maintain sophisticated applications.
  • Compiler improvements for Java 9 code
    • The Java 9 upgrade features several new capabilities for compiling code, chief among them is ahead-of-time (AoT) compilation. This is in an experimental phase, this feature enables compilation of Java classes to native code before being launched in the virtual machine. This feature is designed to improve startup time of both small and large applications, with limited impact on peak performance.
  • REPL
    • Java 9 has a read-eval-print loop (REPL) tool. Java 9’s REPL is called jShell. It interactively evaluates declarative statements and expressions. Developers can get feedback on programs before compilation just by entering some lines of code

And some smaller updates and improvements:

  • Steam API improved
  • JavaScript backing improved
  • HTTP/2 client support
  • HTML5 and unicode support improved
  • DTLS security API is added

Learn more at official website.

What is Web3j?

Small review of lightweight Java and Android library for integration with Ethereum clients
15 December 2017   829

What is webj3?

web3j is a lightweight, highly modular, reactive, type safe Java and Android library for working with Smart Contracts and integrating with clients (nodes) on the Ethereum network:

web3j architecture
Web3j Architecture

This allows you to work with the Ethereum blockchain, without the additional overhead of having to write your own integration code for the platform.

According to the developers, these are the features:

  • Complete implementation of Ethereum's JSON-RPC client API over HTTP and IPC
  • Ethereum wallet support
  • Auto-generation of Java smart contract wrappers to create, deploy, transact with and call smart contracts from native Java code (Solidity and Truffle definition formats supported)
  • Reactive-functional API for working with filters
  • Ethereum Name Service (ENS) support
  • Support for Parity's Personal, and Geth's Personal client APIs
  • Support for Infura, so you don't have to run an Ethereum client yourself
  • Comprehensive integration tests demonstrating a number of the above scenarios
  • Command line tools
  • Android compatible
  • Support for JP Morgan's Quorum via web3j-quorum

It has five runtime dependencies:

  • RxJava for its reactive-functional API
  • OKHttp for HTTP connections
  • Jackson Core for fast JSON serialisation/deserialisation
  • Bouncy Castle (Spongy Castle on Android) for crypto
  • Jnr-unixsocket for *nix IPC (not available on Android)

It also uses JavaPoet for generating smart contract wrappers.

Lear more at GitHub.