Everthing related to the Java programming language
Oracle OpenWorld is a monster event – 10Ks of attendees, thousands of sessions and 100Ks of private conversations that all help convey and define the message about Oracle’s strategy and the roadmap for its close to 4000 thousand products. Concurrent with OOW is the JavaOne conference that – at a slightly smaller scale – does the same thing for the world of the Java platform, the JVM and the Java community.
AMIS each year sends a substantial delegation to attend and contribute to the conference. We speak in many sessions, ask questions in even more and do our utmost to gather information, digest it and distill the real meaning and relevant details. We have just completed our yearly review of the Oracle OpenWorld and JavaOne 2013 conferences: a 60-page PDF document that answers the ultimate question about life, the universe and everything [Oracle].
This white paper describes the major transitions that the industry at large and Oracle in specific is going through. It explains what these transitions mean to Oracle, cause in terms of product evolution and will result in for the users. The major product announcements are listed and commented on. The roadmaps for the most relevant More >
Book Review of Building Modular Cloud Apps with OSGi by Bert Ertman and Paul Bakker (last edit: 25th October)0
(this article was written as a live blog: it was work in progress for several days- while I was reading this book – this article was updated several times; at this point, it is complete.
- Title: Building Modular Cloud Apps with OSGi – Practical Modularity with Java in the Cloud Age
- By: Paul Bakker, Bert Ertman
- Publisher: O’Reilly Media
- Released: September 2013
- Pages: 210 Print ISBN: 978-1-4493-4515-0 ; | ISBN 10: 1-4493-4515-8 Ebook ISBN:
978-1-4493-4510-5 | ISBN 10: 1-4493-4510-7
For a long time, OSGi has been a topic of which I was vaguely aware and had a dormant interest in. I never got round to actively diving into this subject. To me OSGi was synonymous with modular Java applications that run in an environment that allow partial and dynamic refresh of parts of the application. I have heard about attempts to apply OSGi concepts to Java EE application servers such as GlassFish (as of v3.0) – initially to the kernel of the Application Server rather than the applications deployed on top of it, subsequently also for deployed applications. Of course the ongoing Project Jigsaw that attempts to bring modularity to the Java platform – JVM and at some point applications running on More >
The convergence project between Oracle’s JVMs JRockit and Hotspot is making significant progress. Included in the latest Java 7 JDK update (’7u40′) is a new powerful monitor tool: Java Mission Control (JMC). JMC is a production time tool that has its roots in the JRockit JVM tooling. It is located in the bin folder of your 7u40 JDK. At JavaOne I attended some interesting sessions by Marcus Hirt (Oracle) on this new Java Mission Control. In this article I will describe an introduction based on my session notes to get you started and links to further explore JMC.
Part of the evolution of Java in release 8 consists of Lambda expressions. These ‘functional expressions treated as variables’ introduce a powerful Inversion of Control in Java – allowing a clear and elegant distinction between the what [should be done] and how [should it be done]. The Collection APIs have been extended with the notion of Streams to make great use of these lambda expressions. This article shows some examples of what this means, leading up to the revelation that under certain circumstances Java is very similar to SQL.
A Stream is an interface. It is a “[…] potentially infinite sequence of elements. A stream is a consumable data structure. The elements of the stream are available for consumption by either iteration or an operation. Once consumed the elements are no longer available from the stream.” Any collection – as well as several other sources – can be exposed as a Stream. On such as stream, a number of operations – aka a pipeline – can be performed. These operations are either intermediate or terminal:
- intermediate – such as map, filter, sorted, distinct, limit, skip, substream, concat that produce a stream from a stream
- terminal – such as forEach, reduce, More >
Java 8 offers wonderful opportunities and new interesting intellectual challenges for Java developers. With this upcoming release, we are once again focused on programming itself – instead of yet another framework – and learning new programming concepts. The introduction of Generics was the last time Java programming was significantly changed – quite some time ago – and this time this change is both more fundamental and more rewarding. Lambda expressions allow for new, compact, elegant ways of programming that bring the notion of Inversion of Control to the core Java programming language. The language itself as well as APIs created with it can make the distinction between the what [should be done] and the how [should be it done]. The what is expressed in a Lambda expression – a function that can be passed around as a parameter – and the how is left to the API implementation or indeed the JVM itself. A great example of this distinction is found in the parallel execution supported in the Collection classes. Another good example is the tremendous elegance of code that performs a series of operations (such as filter, extract, aggregate, operate). More on these operations on More >
Last week’s JavaOne conference provided insights in the roadmap for the Java platform as well as in the current state of things in the Java community. The close relationship between Oracle and IBM concerning Java, the (continuing) lack of such a relationship with Google, the support from Microsoft for Java applications on its Azure cloud and the vibrant developer community – with over 200 different Java User Groups in many countries of the world.
There were no major surprises or stunning announcements. Java EE 7 (release in June) was celebrated, the progress of Java 8 SE explained as well as the progress on Java Embedded and ME. The availability of NetBeans 7.4 RC1 and JDK 8 Early Adopters release as well as the open sourcing of project Avatar probably were the only real news stories. The convergence of JavaFX and Java SE is almost complete; the upcoming alignment of Java SE Embedded and Java ME is the next big consolidation step that will lead to a unified platform where developers can use the same skills, development tools and APIs on EE, SE, SE Embedded and ME development. This means that anything that runs on ME will run on SE (Embedded) and EE – not necessarily the reverse More >