In February’s edition of the Java Annotated, we’ll cover the latest JVM research, new developments from GWT and resources for mobile developers. On the Java Annotated Monthly, we travel far and wide to bring you the latest news from around the Java community. If you are interested in contributing, or would like to continue reading these stories in the future, let us know! Thanks for reading, and develop with pleasure.
JVM implementation challenges: Why the future is hard but worth it – Next to operating systems, Java’s virtual machine may be one of the most important pieces of software engineering that exists today. Oracle’s John Rose lays out a JVM roadmap and discusses the high level goals and challenges they will face over the next 10-15 years. A number of slides are devoted to memory optimization, interop and existing projects under exploration in small working groups. Several interesting features, including the possibility of supporting continuations, are briefly considered.
Groovy 2.4 released – In this release, the Groovy team brings us full support for writing Android apps in Groovy, along with performance improvements, and dozens of new features and bug fixes. To learn how to get started writing Android applications with Groovy, check out this introduction to Groovy on Android Studio – Android also supports a number of JVM languages that compile to bytecode, making it easy to use your favorite JVM language to develop Android applications. Groovy 2.4 marks the final release of Groovy under the Pivotal banner.
GWT – When today’s Java developers need to build and maintain highly performant web applications, they turn to GWT. From its beginnings in 2006, the GWT toolkit has grown to serve over 150,000 active developers. And while it may not be the trendiest platform on the modern web, GWT does one thing extremely well: developer productivity. With GWT, you can develop, debug and deploy complex browser applications with minimal lead time – in pure Java.
GWT.Create – Sessions from GWT.Create 2015 are now available. Among them, the newly introduced Super Dev Mode support is featured heavily, as well as upcoming support for Java 8, and new frameworks available on the community-driven platform. You can learn more about the past and future of GWT, from Ray Cromwell. More importantly, the GWT community needs your help. If you’re interested in learning more or contributing to GWT, subscribe to the mailing list and make yourself heard!
Android Studio 1.1 – Since their initial launch last December, the Android tools team have been busy mending the latest bugs and making Android Studio ship-shape and seaworthy. Among other fixes, this release introduces new support for fast, IDE-local unit testing – a common pain point for Android developers in recent years. Work continues in parallel on v1.2, which plans to merge the latest updates from IntelliJ IDEA 14.1, including support for HiDPI screens, new refactorings, and Gradle support.
JUniversal – There are a number of source code translators (ie. transpilers) for writing cross-platform applications with Java, including Google’s J2ObjC, that work to significantly increase code sharing between mobile platforms. This is achieved in two ways: by first translating grammar constructs from Java to the target language, you get human-readable output. Then by attempting to unify the core libraries for I/O, security and so forth, you gain parity with the JDK. For more details about how this works, check out Tom Ball’s session from GWT.Create.
The vJUG – Java User Groups are a great opportunity to learn and share ideas with local developers, but without a large community presence they can be difficult to sustain on a long term basis. Since its founding a little over one year ago, the vJUG has hosted a fantastic lineup of talks from robots in the open ocean to modern web technologies and much more. Sign up for events and interact with speakers around the world, from the convenience of your own office or living room.
Annotation Processing 101 – Since their introduction in Java 1.5, annotations are hard to miss. From dependency injection to unit tests, annotations provide a common notation for sharing metadata about code that is unrelated to the behavior of the underlying program, without explicitly using method calls to do so. Annotations are handled by a registered annotation Processor and run on an entirely separate JVM. In this article, Hannes Dorfmann provides an introduction to Java’s annotation processing API.