vendredi 27 mai 2011

Veille technologique semaine 21

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • Un article sur le futur du Web selon Gartner.
  • YouTube a six ans : quelques statistiques.
  • Sortie de l'outil IDE (Integrated Developement Environement) compatible du JDK 7
  • Sortie de JavaFX 2.0 en version béta : première version majeur 100% compatible avec tout les langages JVM : Java, JRuby, Groovy, Scala, ... C'est une évolution majeur pour les IHM en Java, avec des possibilités de nouvelles ergonomies intégrable dans une IHM Java extistant. Certains considèrent que JavaFX correspond à Swing 2.0, qui serait le remplacement de Swing actuel. Oracle propose de mettre
  • Un article au sujet de la modularisation pour le JDK 8 : le leader de la spécification Mark Reinhold propose de (re-)commencer le travail de cette spécification.
  • Un exemple de code Java avec le mot clé "final" :

    public static void main(String[] args) {
      final int s1 = 6;
            int s2 = 6;
      System.out.println(false ? s1 : 'X');
      System.out.println(false ? s2 : 'X');

    Quel est le résultat imprimé ? Réponse et explication dans l'article.
  • Langage Java : quel est la conséquence d'une classe non static interne à une autre classe.
Bonne lecture.

The Future of the Web as Seen by Gartner
Gene Phifer, Managing VP in Gartner Research, and David Mitchell Smith, VP and Fellow in Gartner Research, recently held a webinar entitled How Web and Cloud Computing Will Drive Your IT Strategy (registration required), outlining some of the key characteristics of the future web as seen by Gartner, concluding with a number of recommendation for businesses that want to be prepared.

Smith divided the history of the web in 3 periods:
  • Web 1.0 (1989-2003) – HTML on top of HTTP – consumed by humans, mostly readers and a few authors
  • Web 2.0 (2004-2010) – Web 1.0 + AJAX, XML – consumed by humans and machines with many readers and authors
  • Modern Web (2011-) – Web 2.0 + HTML5 – includes mobile, cloud computing, real-time

The Future or the Modern Web has several characteristics, according to Phiper :

YouTube : six ans et quelques statistiques
YouTube fête ses six ans : créé en février 2005, le site n'a été lancé qu'en mai de la même année. Google, qui a acheté la société un peu plus d'un an plus tard, profite de l'occasion pour donner quelques statistiques sur son service.

JetBrains Release IntelliJ IDEA 10.5 With Full Java 7 Support
Since version 10.0 IntelliJ IDEA has been offered in two versions, a free open-source "Community Edition" and an expanded commercial offering called the "Ultimate Edition".
As well as Java 7 support a number of other new features have been added to the Community Edition: The latest versions of Android SDK are supported, including Honeycomb; XSLT 2 support has been added; and the Groovy capabilities have been updated with new refactorings such as Introduce Field, and Groovy 1.8 support.

Updates in the Ultimate Edition include:
  • Spring 3.1 support and Spring Roo console
  • Bundled Jetty integration
  • Google Chrome support in the JavaScript debugger

JavaFX 2.0 Beta Now Available
The much-anticipated JavaFX 2.0 beta release is now available for download—which means you can take advantage of all the new benefits that JavaFX 2.0 brings to the Java platform. This release is the latest development in Oracle's long-term commitment (roadmap) to making JavaFX a premier rich client platform.

JavaFX provides a powerful and expressive Java-based UI platform capable of handling large-scale computationally intensive data-driven business applications. JavaFX applications are completely developed in Java while leveraging the power of standards-based programming practices and design patterns. JavaFX provides a rich set of UI controls, graphics and media API with high-performance hardware-accelerated graphics, web and media engines to simplify development of immersive visual applications. JavaFX developers can preserve existing investments by reusing Java libraries in their JavaFX applications. They can even access native system capabilities via the Java native interface, or seamlessly connect to server-based Java EE middleware applications.

JavaFX 2.0 Beta is now available for download from Please help us make JavaFX successful by testing it at an early stage and
report any issues you encounter. For detailed tutorials and API documentation, see

What Is JavaFX?
The JavaFX platform is the evolution of the Java client platform designed to enable application developers to easily create and deploy rich internet applications (RIAs) that behave consistently across multiple platforms. Built on Java technology, the JavaFX platform provides a rich set of graphics and media API with high-performance hardware-accelerated graphics and media engines that simplify development of data-driven enterprise client applications.
Investing in the JavaFX platform provides the following advantages to Java developers and companies that are part of the Java ecosystem:
Because the JavaFX platform is written in Java, Java developers can leverage their existing skills and tools to develop JavaFX applications. Because Java is widely used, it is easy to find experienced Java developers who can quickly become productive building JavaFX applications.
By using a homogenous set of Java technologies for both the server and the client platforms, the JavaFX platform reduces the risk of investment by reducing the complexity of the business solutions. Development costs are also reduced because of the aforementioned advantages. The JavaFX platform provides developers with a development framework and runtime environment to create enterprise and business applications that run across multiple platforms that support Java. See the JavaFX Architecture and Framework document to learn about the JavaFX platform's architecture and key concepts.

JavaFX Architecture and Framework
The JavaFX 2.0 platform is a rich client platform built on Java technology and designed to enable application developers to easily create and deploy rich Internet applications (RIAs) that behave consistently across platforms. See the What is JavaFX document for a summary of what JavaFX 2.0 has to offer.
Figure 1 illustrates the architectural components of the JavaFX 2.0 platform. The sections following the diagram describe each component and how the parts interconnect. Below the JavaFX public APIs lies the engine that runs your JavaFX code. It is composed of subcomponents that include the new JavaFX high performance graphics engine, called Prism; the new small and efficient windowing system, called Glass; a media engine, and a web engine. Although these components are not exposed publicly, their descriptions can help you to better understand what runs a JavaFX application.

JavaFX 2.0
JavaFX 2.0 Beta is the latest major update release for JavaFX. Many of the new features introduced in JavaFX 2.0 Beta are incompatible with JavaFX 1.3. If you are developing a new application in JavaFX, it is recommended that you start with JavaFX 2.0 Beta.

JavaFX 2.0 : Frequently Asked Questions
1. What is new in JavaFX 2.0?
2. Why should I choose JavaFX to develop applications?
3. What kind of applications can be built with JavaFX?
4. What is the relationship between JavaFX and the JRE?
5. What operating systems are supported by JavaFX?
6. Is JavaFX replacing Swing as the new client UI library for Java SE?
7. Does JavaFX provide support for audio and video codecs?
8. Does JavaFX 2.0 support JavaFX Script?
9. Will previous versions of JavaFX remain available?
10. What licensing model will JavaFX 2.0 be available under?
11. How do I submit a bug report or request a feature?

Requirements of a Standard Java Module System
Yesterday, Mark Reinhold posted the first public draft of the future of modularity in Java. Unlike the previous iterations of JSR294, the discussions of modularity in Java have taken place outside of Sun/Oracle's closed doors and involved others with a stake in OpenJDK, such as IBM and other members of the Java SE and Java EE communities, as explained in Mark's blog post on the subject.
As it is a draft there are a handful of issues that still need to be agreed on but it represents the consensus of what modularity in Java should look like. And with IBM being involved, there's more emphasis on interoperability with OSGi than there has been in the past.

Final : le mot clef qui évite les surprises
Titre : un bytecode peut en cacher un autre
Dans notre équipe, nous mettons les variables à final par défaut. C'est la règle "immutable par défaut" de "Java concurrency in practice" : final offre une forme d'atomicité que des langages fonctionnel comme Haskell ou Erlang systématisent (scala fournit le mot-clé val) et qui évite des problèmes de concurrence. J'ai découvert une autre raison d'utiliser final, l'opérateur ternaire  " exp ? si vrai : si faux "
Voyons une manifestation paranormale du phénomène :

Reassigning the outer class reference
Everyone knows (or should) that a non-static inner classe has a hidden reference to the instance of its containing class.
Let's exercise this sample class :

Aucun commentaire: