vendredi 23 mars 2012

Veille technologique semaine 12

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • Siemens étudie les architectures logicielles pour les voitures électriques : avez vous la dernière version du plugin "trafic routier" ?
  • Le club Java de Paris a invité Rémi Forax pour une présentation sur les expressions Lambda en Java pour le JDK 8. Très intéressant.
  • Oracle parle déjà du JDK 9 et du JDK 10 : respectivement pour 2015 et 2017.
  • Un premier article sur les threads (enfin) normalisé en C++ version 2011.
  • Un démonstration de VMWare qui utilise un navigateur HTML 5 pour afficher (à distance) un écran d'une machine virtuelle ! WSX: Virtual Machines in Your Browser. Cela montre le potentiel du HTML 5 mais confirme également une convergence vers cette plateforme HTML 5.
  • Une proposition d'ajouter les "values type" dans la machine virtuelle Java : la manipulation d'objet par valeur. C'est l'équivalent des structures de C# qui permet d'avoir les primitifs, sous-classe d'Object, sans pénalité de performance de gestion de mémoire de ces objets. A suivre.
  • Deux articles au sujet du langage Groovy pour les programmeurs Java. Groovy est un langage normalisée pour la plateforme Java qui est très adapté à construire des DSL (Domain Specific Langage). Un exemple avec un Hello World.
Bonne lecture.

Software Architecture for the eCar of the Future
In a recent news release the Siemens AG addressed how important new information and communications technology will be in future electric cars. A German government funded project investigates in appropriate software architecture for such cars.
Currently, a lot of software is already deployed in cars such as functionality for the emergency braking system, proximity-controlled cruise control, or actice parking aids. However, all the´se features are making the introduction of new features increasingly labor-intensive and expensive. For instance, some components need to be connected with various data transmission systems. Thus, it is almost impossible to add new functions that were not planned before the manufacturing system starts. According to the Siemens researchers, electromobility offers the opportunity to rework the ICT architecture and to quickly integrate new functions.
The central research division of the company is participating in a project funded by the German Government called RACE (Robust and Reliant Automotive Computing Environment for Future eCars). Goal of the project is :

Rémi Forax au Paris JUG
Mardi 13 mars 2012, Rémi Forax est venu au Paris JUG (Java User Group). Au coeur des expressions Lambda en Java La présentation de ce soir porte sur les expressions Lambda. Un sujet passionnant, une fonctionnalité que C# a déjà depuis quelques temps, mais que Java n'a pas encore.

Java News Flash! Oracle Lays Out Java 9, 10 Roadmap
Java 9 and 10 will tackle big data, multi-language interoperability, cloud and mobile and ship in 2015 and 2017 respectively, Oracle said Wednesday.
For the Java Development Kit (JDK) 10 or after, a fundamental change is being discussed: making the Java language Object Oriented. This might see the introduction of a unified type system that turns everything into objects and means no more primitives.

C++11 Concurrency – Part 1 : Start Threads
This post is the first of a series of posts about the new thread library of C++11. C++11 introduced a new thread library. This library includes utilities for starting and managing threads. It also contains utilities for synchronization like mutexes and other locks, atomic variables and other utilities. In this serie of posts, I will try to explain most of the features provided by this new library. To compile the samples of this article, you will need a compiler with C++11 support. In my case, I used GCC 4.6.1 (you need to pass the -c++0x or -c++11 option to get the C++11 support activated).

HTML5 roundup: access a virtualized desktop from your browser with VMware

VMware is developing an impressive new feature called WSX that will allow users to access virtualized desktops remotely through any modern Web browser. VMware developer Christian Hammond, who worked on the implementation, demonstrated a prototype this week in a blog post.

WSX: Virtual Machines in Your Browser
Virtual Machines have always been a great way to work with different operating systems, carry your desktop around with you, and manage lots of servers or configurations. In the past, you'd run the virtual machine on your computer and then use a product like VMware Workstation or Player to interact with them.
In Workstation 8, we introduced the ability to share VMs across a network with other copies of Workstation, and to use VMs running on ESXi/vSphere. You could use any computer in your network to reach any other VM and to manage your servers. I covered this in a previous post, and as I said there, we were very proud of this release.

value types in the vm
A value type is a data type which, generally speaking, is designed for being passed by value in and out of methods, and stored by value in data structures. The only value types which the Java language directly supports are the eight primitive types. Java indirectly and approximately supports value types, if they are implemented in terms of classes. For example, both Integer and String may be viewed as value types, especially if their usage is restricted to avoid operations appropriate to Object. In this note, we propose a definition of value types in terms of a design pattern for Java classes, accompanied by a set of usage restrictions. We also sketch the relation of such value types to tuple types (which are a JVM-level notion), and point out JVM optimizations that can apply to value types.

A quick introduction to the Groovy language (part 1)
Before I start talking about using Groovy's capabilities to create a DSL (mostly in Java), let's take a few minutes to go over what Groovy is.
Groovy is a general purpose scripting language which runs on the JVM, and can largely be viewed as a superset of Java. Take the following program:

A quick introduction to the Groovy language (part 2)
In my previous post, I started with a simple Java program (which also worked in Groovy), and slowly stripped out the cruft until I was left with the following Groovy script:

Aucun commentaire: