vendredi 21 novembre 2008

Veille technologique semaine 46 et 47

Pour le bulletin de la semaine 46 et 47, je vous propose les sujets suivants :
  • suite aux Spring Day à la Défense, Spring Source a dévoilé la roadmap du framework Spring,
  • l'IDE NetBeans est sorti en version 6.5 : avec des compléments à tout les étages, en particulier, le composeur d'IHM Matisse, et l'inclusion du look and feel Nimbus (premier look entièrement vectoriel, y compris les icons, donc indépendant de la résolution de l'écran),
  • le projet mono (implémentation open source de la plate-forme DotNet), propose des extensions à la plate-forme qui utilisent les instructions vectorielles natives des processeurs : les SIMD (Single Instruction Multiple Data). Cela permet d'avoir des performances très importante pour des calculs avec un rapport jusqu'à 10,
  • le standard JEE 6 (Java Enterprise Edition version 6) est en phase finale de spécification : ce document fait un résumé des technologies présentent dans cette version 6,
  • deux articles sur les différents langages de programmations qui fonctionnent dans une JVM : on parle de "Multi-Lingual Virtual Machine". Avec JRuby, Groovy et autre Scala, la JVM accueille de plus en plus de langages différents avec interropérabilité au runtime native. C'est l'unification des runtimes des langages : il y en a deux runtime unifiés : la plateforme JVM et la plateforme DotNet. L'article suivant illustre la conséquence : on peut programmer pour un serveur d'application JEE (GlassFish) dans un autre langage que Java : avec PHP, Ruby, Groovy, Scala, ... et donc de bénéficier de tout les services non fonctionnels proposés par le standard JEE : persistence, transaction, sécurité, remote, ... et interropérer entre langages.
  • un résumé des nouveautés prévues pour le JDK 7 : le JSR (Java Specification Request) qui liste les JSR du JDK 7 n'est toujours pas sorti. Cela tarde un peut car l'échéance se rapproche : mi 2009 ?
  • une mise à jour du 22 novembre des benchs de certains langages de programmation : c'est un bench des implémentations de ces langages avec des algorithmes de bases. La référence (1) est le C / C++ (gnu), le JDK 6 (option serveur) est à 1,3 (1,3 fois plus lent), C# (mono) est à 2,5, l'ADA (gnat) 2005 est à 2.6, l'interpréteur Java est à 8,6 (il a fait des progrès car il était dans le passé autour de 20), Python est à 11, JRuby est à 21 et Ruby est à 39.
  • enfin un petit article sur la gestion des objets en C#, qui donnent accès à des ressources qu'il faut libérer explicitement. Cette libération de ressource est faite par le compilateur qui appel l'opération dispose() de l'interface IDisposable que ces objects implémentent. C'est une manière élégante de remplacer l'usage du destructeur en C++ pour libérer des ressources : fermer un fichier, un socket, un verrou, etc... Il est temps de proposer cette solution pour Java.

SpringSource dévoile sa roadmap :



NetBeans.org is proud to announce the availability of NetBeans IDE 6.5!

NetBeans IDE 6.5 offers simplified and rapid development of web, enterprise, desktop, and mobile applications with PHP, JavaScript, Java, C/C++, Ruby, and Groovy.

New features include a robust IDE for PHP, JavaScript debugging for Firefox and IE, and support for Groovy and Grails. The release also delivers a number of enhancements for Java, Ruby on Rails, and C/C++ development. Java highlights include: built-in support for Hibernate, Eclipse project import, and compile on save. Combining excellent out of the box experience, compelling features, and a great plugin ecosystem, NetBeans IDE 6.5 is a must-download for all developers.


What's New in 6.5
NetBeans IDE 6.5 is a significant update to NetBeans IDE 6.1 and includes the following changes:
  • PHP support with code completion, Xdebug and web service features.
  • New Support for Groovy and Grails.
  • Improved JavaScript, AJAX and Ruby support.
  • Automatic Compile and Deploy on Save for Java and Java EE applications.
  • Improved database support: SQL history, SQL completion, and results viewing and editing improvements.
  • Improved Java ME support for Data Binding, SVG and Custom Component creation.
  • GUI Builder: Support for Nimbus and simple class names.
  • JUnit: single test method support.
  • Debugger: Redesign of Step into feature.


Composeur WYSIWYG de "User Interface" Matisse :
  • Standard and Custom GUI Components
  • Swing Application Framework (JSR 296) Support
  • Beans Binding technology (JSR 295) Support


Mono's SIMD Support: Making Mono safe for Gaming
Mono is outgrowing the standard. Mono is not just playing catch-up any more, it is trying to move past the CLR in many areas. And as an open source project, they can slip in new libraries at a much faster clip than Microsoft. Instead of trying to build everything themselves, they can simply pick up mature projects like Mono.Options or the collection library C5 and include them in the standard release.
One of the most impressive enhancements announced for the December's Mono 2.2 release is support for SIMD. SIMD is a set of CPU commands that can drastically speed up operations of vectors. Instead of performing operations on each element of an array in sequence, one can use an SIMD instruction to process a vector of up to 16 elements. Below is a list of supported types.
The performance gains are remarkable. Using a Spring-Gravity algorithm, a naive C++ program takes 9.5 seconds to run. By comparison, a literal conversion into Mono takes a pitiful 17.7 seconds. But by switching from standard operators to SIMD functions, the time to run Mono drops to 1.7 seconds.



Les Nouvelles Technologies au p'tit déj'
Java EE 6 :
  • Rétrospective et futur de J(2)EE
  • Servlets 3.0
  • JSF 2.0
  • EJB 3.1 "Lite"
  • JPA 2.0
  • JAX-RS 1.1
  • WebBeans 1.0


Charles Nutter Discusses JVM Language Summit
The 2008 JVM Language Summit took place September 24 through 26, 2008, hosted by Sun Microsystems at its Santa Clara campus. The summit featured technical presentations about programming languages and the Java Virtual Machine, and featured language experts, OpenJDK engineers, and Java luminaries both as attendees and presenters. The summit was billed as a chance to help shape the future of programming languages on the JVM. About 70 people attended. But slides and videos for many of the presentations are available through the links at the end of this article. I spoke about the summit with one of its organizers, Charles Nutter. Nutter is best known as the JRuby guru at Sun. A Java developer since 1996, he started working on Ruby in the fall of 2004. He now works full-time as a core developer on JRuby.




Dynamic Languages support in GlassFish v3 Prelude:
By now most of you might already know that GlassFish v3 Prelude is released! GlassFish v3 Prelude brings not only JavaEE support but also brings in support for Dynamic Languages based platforms, such as Rails, Grails and also tested to work for Scala/Lift, PHP (Quecus, Java-PHP bridge).
Read Jerome's post on GlassFish v3 key architectural points that enables pluggable containers.
Following dynamic languages based frameworks are supported on GlassFish v3 Prelude:
  • JRuby on Rails
  • Groovy on Grails
  • PHP: Quercus (Caucho)
  • PHP / Java Bridge
  • Scala / Lift


Les nouvelles librairies dans Java 7
  • Modularité
  • NIO2
  • Units and Quantites
  • Date and Time API
  • Cache API
  • Concurrence
  • XQuery API
  • Resources consumption management
  • Changements mineurs (java.util.Currency)
  • Swing Application framework
  • Beans Binding et Beans Validation
  • Java Media Components
  • JMX 2.0 et connecteurs web services pour JMX
  • Outils divers (La JSR-260 définit des améliorations à l'outil javadoc afin de générer une documentation plus moderne et d'ajouter des tags de commentaires.)


The Computer Language Benchmarks : Benchmarking programming languages?
How can we benchmark a programming language?
We can't - we benchmark programming language implementations.
How can we benchmark language implementations?
We can't - we measure particular programs.

Programming language measurements by OS and CPU : 22 Nov 2008

x64 Ubuntu : Intel Q6600
  • 1.0 : C++ GNU g++
  • x 1.3 : Java 6 -server
  • x 2.5 : C# Mono
  • x 2.6 : Ada 2005 GNAT
  • x 8.6 : Java 6 -Xint (interpréteur)
  • x 11 : Python
  • x 21 : JRuby
  • x 39 : Ruby


using Statement (C# Reference)
Provides a convenient syntax that ensures the correct use of IDisposable (remove) objects.

Aucun commentaire: