vendredi 24 février 2012

Veille technologique semaine 8



Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • Le Wifi Gigabit avec une puce qui l'implémente.
  • La loi de Moore aurait-elle une limite ? Un laboratoire a réalisé un transistor avec un seul atome (de phosphore).
  • Microsoft met à jour son offre de stokage Cloud SkyDrive et propose 25Go gratuitement pour ses 100 millions d'utilisateurs inscrits.
  • Microsoft, le processeur ARM, Windows 8 et Office : la face caché de l'iceberg.
  • La spécification du langage Java et de la machine virtuelle ont été mis à jour avec la version 7.
  • Oracle viens de prolonger la date le fin de vie (EOL : End Of Life) du JDK 6 : prolongation jusqu'à novembre 2012. Plus de mise à jour gratuite au delà de cette date. Oracle recommande fortement la migartion sur le JDK 7 avant cette date. Le JDK 7 à une date de péremption en juillet 2014.
  • Les fuites mémoires avec les langages à garbage collector :  c'est un problème de l'application.
  • La programmation concurrente en Java : c'est l'application qui doit prendre en compte l'évolution des processeur multi-cores.
  • Une question théorique : quel est le type de null ? Avez vous la réponse avant de regarder le solution.

Bonne lecture.

Gigabit Wi-Fi chips emerge, will power super-fast home video streaming
The first wireless networking chips capable of powering gigabit-per-second speeds using the forthcoming IEEE 802.11ac standard are starting to emerge, with routers and other consumer networking products expected to launch in the second half of 2012. With speeds three times faster than the current generation of Wi-Fi routers, the new products will speed up synchronization between home devices and greatly improve the quality of in-home audio and video streaming, according
to Gigabit Wi-Fi vendors.

New Qualcomm chips aim to bring 1.3Gbps WiFi to one and all


La fin de Moore
La loi de Moore, tout la monde la connait sans la connaitre. On la cite souvent en disant que la puissance des processeur double tous les 18 mois, alors qu'elle concerne la densité de transistors sur une puce de silicium.


Un transistor composé d'un unique atome
Un transistor composé d'un unique atome Alors que l'on grave maintenant de manière industrielle des processeurs à la finesse de 22nm, on sait très bien que la barrière quantique n'est plus si loin et qu'il faudra totalement révolutionner la manière dont les processeurs sont fabriqués d'ici moins de 20 ans. Dans cette course à la nouveauté, des scientifiques ont réussi une prouesse, fabriquer un transistor composé d'un unique atome.


We can do no Moore: a transistor from single atom
At the center of modern technology lies the logic circuitry provided by semiconductor devices. Extending circuit logic to the realm of nanotechnology requires the construction of atomic-scale systems, which has proven challenging. Both the electric nature of individual atoms and the need to place them at specific points within a crystal lattice has kept scientists from creating atom-scale transistors until the present.


Bigger files, remote access, OpenDocument, and more coming to SkyDrive
Microsoft's SkyDrive cloud storage service is set to receive some substantial upgrades this year, according to news from both official and unofficial channels. File synchronization, secure remote access, and Windows 8 integration have been demonstrated by Microsoft, and rumored improvements include paid storage upgrades, secure storage of BitLocker keys, a new Mac client, and support for OpenDocument (ODF) files.


Windows On ARM : entre deux chaises
Après des mois de suspense, Microsoft a enfin levé le voile sur le degré de compatibilité de Windows dans sa version ARM, une question qui laissait nombre d'observateurs dubitatifs. Et la réponse est pour le moins surprenante…


JLS7 and JVMS7 online
Java Language Specification 7 and the JVM Specification 7


Updated Java 6 EOL date
The Java SE Support Roadmap reflects an updated timeline for the EOL of public support and public releases for JDK 6. The EOL date has been extended from July 2012 to November 2012, to allow some more time for the transition to JDK 7. The JRE is free software, and as is the case with most free software, users are encouraged to adopt the latest stable version.


Oracle Java SE Support Roadmap
Java SE 6 will no longer be publicly available after November 2012. Customers interested in continued access to critical bug fixes and security fixes as well as general maintenance for JDK 6 have the option to purchase Oracle Lifetime Support.


What is a memory leak?
When we talk to people about our solution for discovering memory leaks – Plumbr – we immediately get positive feedback. But when we add Java into the equation, the initial excitement is often complemented with questions: "Are there memory leaks in Java? Isn't Java a garbage-collected language?" In this post I will explain why memory leaks are in fact a common problem for Java applications.


Fork and Join: Java Can Excel at Painless Parallel Programming Too!
How do the new fork/join tasks provided by Java SE 7 make it easier to write parallel programs?
Multicore processors are now widespread across server, desktop, and laptop hardware. They are also making their way into smaller devices, such as smartphones and tablets. They open new possibilities for concurrent programming because the threads of a process can be executed on several cores in parallel. One important technique for achieving maximal performance in applications is the ability to split intensive tasks into chunks that can be performed in parallel to maximize the use of computational power.
Dealing with concurrent (parallel) programming has traditionally been difficult, because you have to deal with thread synchronization and the pitfalls of shared data. Interest in language-level support for concurrent programming on the Java platform is strong, as proven by the efforts in the Groovy (GPars), Scala, and Clojure communities. These communities all try to provide comprehensive programming models and efficient implementations that mask the pain points associated with multithreaded and distributed applications. The Java language itself should not be considered inferior in this regard. Java Platform, Standard Edition (Java SE) 5 and then Java SE 6 introduced a set of packages providing powerful concurrency building blocks.
Java SE 7 further enhanced them by adding support for parallelism The following article starts with a brief recall of concurrent programming in Java, starting with the low-level mechanisms that have existed since the early releases. It then shows the rich primitives added by the java.util.concurrent packages before presenting fork/join tasks, an essential addition provided in Java SE 7 by the fork/join framework. An example usage of the new APIs is given. Finally, a discussion on the approach precedes the conclusion.
In what follows, we assume that the reader comes from a Java SE 5 or Java SE 6 background. We present a few pragmatic language evolutions of Java SE 7 along the way.

Concurrent Programming in Java


La Classe De Null ?
La valeur null peut être affectée à toutes les références. Quel est son type ? Si null est du type Object, cela oblige à convertir toutes les valeurs null avant une affectation.

String s = (String)null;

Sans la conversion, le compilateur refuserait la compilation. Pour éviter cela, les concepteurs de Java n'ont pas donné de type à null. Le compilateur converti implicitement la valeur null dans le type du pointeur participant à l'expression. Cela fonctionne dans la majorité des situations.

vendredi 17 février 2012

Veille technologique semaine 7

Pour le bulletin de la semaine 7, je vous propose les sujets suivants :
  • Microsoft a présenté windows 8 porté sur un processeur ARM : le processeur le plus utilisé dans les smart phones et les tablettes. Microsoft suite office est également en cours de portage.
  • Le forum DVD se met en pause : plus de réunion prévue au sujet des standards CD et DVD. C'est de début de la fin des supports optiques ?
  • Le consortium MPEG annonce la sortie du successeur du H264 : le H265 qui permet de gérer les vidéos jusqu'à 8K x 8K pixels
    (7680x4320). De plus, ce nouveau standard de compression permet de réduire les images HD actuelles de 35% à 65%.
  • Un article au sujet des tests de validation fonctionnels des IHM. L'article est écrit par Robert Martin (une référence dans l'industrie du logiciel) explique qu'il ne faut pas construire des tests de validation du niveau fonctionnel avec un dépendance sur le GUI (Graphic User Interface = les JavaBeans et les pixels), car le GUI (les pixels) sont trop fragiles : ils peuvent changer très souvent sans que le fonctionnel change. Il faut donc s'en abstraire.
  • Un article au sujet de la société Azul qui propose une JVM (Java Virtual Machine) avec un garbage collector sans pause (pauseless). Le temps de latence correspondant est de l'ordre de 100 micro secondes.
  • Une liste des frameworks Java pour des applications à très hautes performances. On peut donc constater que les performances sont plus dépendantes de l'architecture du logiciel plutôt que de sa technologie.
  • La spécification Type Annotations JSR 308 (Java Specification Request) propose pour le JDK 8, des extensions pour les annotations Java. C'est une avancé, proposé par l'université de Washington.
  • Le définition du mot clé Java volatile.
Bonne lecture



Microsoft Details Windows 8 for ARM
Microsoft has detailed Windows 8 for ARM: architected for low power consumption, apps that can only target WinRT, restricted desktop that allows only Office 15 and some Windows components to run. Microsoft demonstrated Windows running on ARM System-on-a-Chip (SoC) at CES 2011, and showed Windows 8 (Win8) for the first time at D9 Conference in Taipei, including running it on a prototype ARM machine. While there has been some rumors related to Microsoft's true intentions regarding ARM, it was not clear if ARM will be considered an equal member of the PC family, whether legacy x86 applications will be able to run on ARM and if Win8/ARM will include the desktop interface besides Metro. Steven Sinofsky, President of the Windows and Windows Live Division at Microsoft, published a blog post offering clear details on their plans with ARM.

First of all, Sinofsky wanted to make sure this move won't be seen as a departure from Intel/AMD architecture, but rather the opening up of new opportunities for Windows and its entire ecosystem:


Microsoft va porter sa suite office sur les processeurs ARM
Selon un message posté sur le blog de Steven Sinofsky, président de la division Windows de Microsoft, la société va porter sa suite office sur les processeurs ARM sous la forme de 15 applications indépendantes. Parmi ces applications on trouvera Word, Excel, PowerPoint et OneNote.
Visiblement, seul Windows en version ARM permettra de faire tourner ces logiciels (dans sa version 8). Elles devraient même être offertes avec !

Il semble bien que Microsoft veuille utiliser sa suite toujours très prisée des professionnels pour lancer la nouvelle version de son OS sur un marché où elle n'a pas encore eu de succès, les tablettes. Ce sera sans conteste un argument de poids sur le marché professionnel, si l'on peut continuer à éditer et modifier ses documents sur une tablette lors de déplacements ou avant une présentation. Penser que cela sera suffisant pour assurer le succès de tablettes sous Windows 8 serait prématuré, mais c'est un argument de poids que personne n'a encore pu mettre en avant face à la tablette d'Apple.


Le DVD forum se met en pause
Il y a peu, nous vous parlions du déclin constant des ventes de DVD, qui a conduit certains fabricants de médias vierges à cesser d'en produire. Une nouvelle décision montre que ce format est maintenant en roue libre vers sa mort. Le DVD Forum, qui dicte les normes liées à ce format, a annoncé son intention de se mettre en veille le premier avril prochain. Il n'y aura ainsi plus de réunions planifiées autour de ce format et seules d'importantes décisions à prendre pourront provoquer la convocation de ses membres.
Avec la disparition progressive du DVD, on va plus que certainement assister à la mort programmé des lecteurs / graveurs optiques en informatique, sachant que la présence du Blu-ray reste anecdotique dans les ordinateurs.
A posteriori, on aurait pu prévoir que les graveurs de Blu-ray ne perceraient pas:
  • Lorsque les premiers CD-R de 650 Mo sont arrivés, les disques durs avaient une capacité qui leur était inférieure d'au moins la moitié,
  • Lorsque les premier DVD-R de 4,7 Go sont arrivés, les disques durs avaient une capacité qui leur était 15 fois supérieure,
  • Lorsque les premiers BD-R de 25 Go sont arrivés, les disques durs avaient également une capacité 15 fois supérieure, mais les choses se sont rapidement emballées et aujourd'hui, le rapport est de 40 fois.
Ces médias vierges sont donc devenus trop coûteux par rapport au prix d'un disque dur et ont même perdu leur compétitivité face aux produits dotés de mémoire flash, comme les clés USB, dont l'usage est de plus bien plus flexible. Si l'on rajoute à cela la disparition progressive des appareils optiques avec les Ultrabook, DVD et Blu-ray finiront leur carrière comme supports de distribution de vidéos, tout du moins pour ces derniers tant que la bande passante Internet ne permettra pas de faire de la VoD en HD de manière confortable.


Le format H.265 arrivera en 2013
Une réunion s'est tenue la semaine dernière entre la MPEG LA et l'UIT-T (qui définit les normes de télécommunication). Elle a permis d'en savoir plus sur le prochain format de vidéo compressée, le H.265. (note : le H264 est le format actuellement utilisé pour les vidéos HD : TNT HD et Blu-ray).



Pour commencer, ce nouveau format supportera de très hautes résolutions, le 4K, mais aussi le 8K (7680x4320) de quoi envisager l'avenir sereinement mais aussi permettre aux diffuseurs de films dans les salles de cinéma de l'adopter.

Outre ces hautes résolutions, ce qui en fera certainement un succès sera sa bien meilleure efficacité, qui permettra de garder une qualité équivalente au H.264 tout en économisant sur la taille du fichier final ou du flux de streaming de 35 à 67% du volume/taille.

Ce nouveau format, rien que pour ces dernières raisons, sera certainement très vite adopté par des plateformes de diffusion à moins coût en bande passante films et séries TV, que ce soit en 720 ou 1080p.

Comme à chaque sortie d'un nouveau format, il devrait être entériné en janvier 2013, on aura quand même au départ un problème de décodage sur nos appareils. Actuellement, tous ou presque sont optimisés matériellement pour décoder le H.264, ce qui ne sera pas immédiatement le cas pour le H.265. Il faudra donc que les processeurs centraux s'en chargent, ce qui limitera le décodage aux machines les plus puissantes.


Le successeur du H.264 est sur les rails
Alors que le camp H.264 et le camp WebM se disputent toujours la gestion de la vidéo dans le HTML5, le MPEG-LA et l'International Telecommunication Union se sont mis à pied d'oeuvre sur le H.265, ou plus exactement le HEVC (High Efficiency Video Coding).
Le successeur du codec vidéo tirera parti de l'augmentation de puissance des machines sur deux fronts : le premier concerne le rapport qualité/taille, permettant de réduire la mémoire occupée par les vidéos (et la bande passante lors de leurs transferts) de 35 à 40 % à qualité égale (jusqu'à 67 % en pointe).


Comment faire des tests d'IHM sans se tirer une balle dans le pied ?
L'automatisation des tests d'IHM peut être souvent une mauvaise idée. Le constat est très souvent le même : bien que simple à mettre en place en général, leur apport est souvent mineur par rapport à leur coût (je vous dirige vers l'excellent article de Robert Martin pour creuser le sujet). Comment faire si l'on veut cependant s'engager dans cette voie?

Dans
cet article, Gojko Adzic (commiter fitnesse et auteur du livre passionnant "Bridging the communication gap" ), nous livre des pistes pour maximiser le retour sur investissement sur ceux-ci. Tout d'abord, ne surtout pas partir sur de l'enregistrement brut des cas de tests les uns après les autres (avec Selenium IDE par exemple). C'est dans ce cas-là que l'on se tire une balle dans le pied. Les coûts de maintenance explosent et l'intérêt des tests est remis en question au fil du temps.
La clé est de représenter les tests d'IHM sur plusieurs niveaux :
  • Règles métiers
  • Worfklows
  • Technique
Les niveaux supérieurs sont plus stables dans le temps et sont plus compréhensibles que ceux du dessous. Les niveaux supérieurs s'appuient bien évidemment sur les niveaux du dessous pour fonctionner.
Le but de cette approche est de faire en sorte que les tests restent compréhensibles (bon courage pour aller comprendre la règle métier cachée derrière une centaine d'instructions Selenium) et surtout de promouvoir la réutilisabilité afin de garder la main sur la maintenance des tests.



Ruining your Test Automation Strategy.


Posted by Uncle Bob


The Azul Garbage Collector
The Java language specification mandates some form of automatic garbage collection to reclaim unused storage, and forbids manual memory deallocation. Automatic garbage collection frees the programmer from much of the worry about releasing objects that are no longer needed, which can otherwise consume substantial design effort. It also prevents some kinds of common bugs occurring, including certain kinds of memory leaks, dangling pointer bugs (which occur when a piece of memory is freed while there are still pointers to it and one of those pointers is then used) and double free bugs (which occur when the program tries to free a region of memory that has already been freed and perhaps already been allocated again).


Azul's Pauseless Garbage Collector Goes Native on Linux
Azul Systems have today announced Zing 5.0, eliminating their previous requirement for a hypervisor, and therefore bringing their pauseless JVM to unmodified 64-bit Linux for the first time.
One end is the higher end, the low latency trading guys. These are guys that count [on] 50-100 microsecond response times; they really want to get rid of garbage collection effects but they can't pay an extra 200 microseconds to do it. Those were customers who were very intrigued by Zing 4.0, but the virtualised mechanism with the proxy and the extra hop across it, whilst invisible to any human response time app, would be a 3 times wire latency increase for these guys, so they couldn't use it. With Zing 5.0 it just drops straight in, there's no proxy mechanism, and so no additional cost at all.
But what if all you have is a 3GB heap, and you are just annoyed at the pauses. You can't really go and ask for virtual infrastructure changes to do it. ZingLX is just a better VM for Linux. So it becomes a possibility for these guys too.


High performance libraries in Java
There is an increasing number of libraries which are described as high performance and have benchmarks to back that claim up. Here is a selection that I am aware of.

  • Disruptor library
  • Java Chronicle
  • Colt Matrix library
  • Javolution
  • Trove collections for primitives
  • MG4J: Managing Gigabytes for Java
  • Overview of 8 performance libraries
  • Serialization benchmark

Type Annotations Specification (JSR 308)
The JSR 308 webpage is http://types.cs.washington.edu/jsr308. It contains the latest version of this document, along with other information such as a FAQ, the reference implementation, and sample annotation processors.

Introduction
JSR 308 extends Java's annotation system so that annotations may appear on any use of a type. (By contrast, Java SE 7 permits annotations only on declarations; JSR 308 is backward-compatible and continues to permit those annotations.) Such a generalization removes limitations of Java's annotation system, and it enables new uses of annotations.
This document specifies the syntax of extended Java annotations, but it makes no commitment as to their semantics.


What Volatile Means in Java
Today, I'm going to talk about what volatile means in Java. I've sort-of covered this in other posts, such as my posting on the ++ operator, my post on double-checked locking and the like, but I've never really addressed it directly.
First, you have to understand a little something about the Java memory model. I've struggled a bit over the years to explain it briefly and well. As of today, the best way I can think of to describe it is if you imagine it this way:

vendredi 10 février 2012

Veille technologique semaine 6

Pour le bulletin de cette semaine, je vous propose les articles suivants :
  • Intel annonce l'intégration de la gestion des transactions mémoire dans la prochaine architecture Haswell prévue pour 2013.
  • Des chercheurs propose l'unification du CPU et du GPU pour améliorer leur performances globales.
  • un article au sujet de l'obsolescence dans l'industrie du logiciel.
  • IBM qui propose la définition des architectures orientées services (SOA) et orienté événements (EDA) comme complémentaires.
  • Une liste d'articles de wikipedia sur les acronymes : CRUD, DAO, DTO, DAL, SDO
  • Oracle mise sur JavaFX pour les IHM en Java.
  • La manipulation du système de fichier avec le JDK 7.
  • Les expression lambda en Java : état des lieux. Pour le JDK 8, c'est promis.
  • La première spécification des modules du JDK 8. C'est la première fois qu'un langage de programmation propose ce niveau de concept.
  • Les premières infos du JDK 9 ?

Bonne lecture.



Intel: Haswell arrivera au premier semestre 2013 et supportera un nouveau système de gestion mémoire
En 2011, Intel a pris un conséquent retard sur le lancement des processeurs Sandy-Bridge lié à un bug touchant leurs chipsets. C'est en partie la raison pour laquelle Ivy-Brige n'est pas sorti en tout début 2012, le temps de laisser une carrière à son prédécesseur.
Pour Haswell, la prochaine architecture, Intel ne compte pas essayer de refaire le retard et devrait lancer ces nouvelles puces entre mars et juin 2013.


Pour rappel, l'essentiel de la nouveauté d'Ivy Bridge est lié à la gravure 22 nm 3D de ses transistors. Haswell quant à lui utilisera la même gravure mais verra son architecture interne fortement remaniée. Parmi les nouveautés qu'Intel va introduire, il y aura la gestion de la mémoire transactionnelle.

Son arrivée correspond à un besoin lié à la multiplication des coeurs dans les processeurs et au nombre toujours plus conséquent de logiciels capables d'en tirer le meilleur parti. Lorsque l'on décide de découper un processus de programmation en plusieurs threads pour en accélérer le traitement, on doit gérer toujours plus finement l'usage que chacun fera au niveau de la mémoire partagée, avec le risque qu'une modification d'une donnée en mémoire ne fausse tout le calcul.

Dorénavant, grâce à un jeu d'instructions spécifiques, il sera possible de demander au processeur de surveiller les zones de mémoire partagées, mais aussi d'en rendre l'accès exclusif à certains threads seulement, une sorte de super mémoire protégée qui déchargera le système d'exploitation de ces tâches qu'il remplit plus ou moins bien.

L'usage de cette mémoire transactionnelle obligera quand même les développeurs à un nouveau travail puisqu'ils devront spécifiquement choisir la manière dont fonctionnera chaque thread de leur logiciel en choisissant les instructions les plus appropriées.



Haswell et mémoire transactionnelle
C'est par l'un de ses blogs qu'Intel vient d'annoncer une mise à jour de sa spécification AVX2 concernant Haswell, le prochain "Tock" d'Intel attendu pour 2013.
Cette extension d'AVX2 baptisée TSX apporte de nouvelles instructions qui permettent de gérer ce que l'on appelle mémoire transactionnelle. Contrairement à ce que son nom indique, la mémoire transactionnelle n'est pas un type de mémoire différent, il s'agit plutôt d'une manière différente d'accéder à la mémoire. Le principe de transaction n'est pas nouveau en informatique et se pose dans les cas où une ressource partagée peut être accédée de manière concurrente par plusieurs autres ressources


Transactional Synchronization in Haswell
By James Reinders (Intel)



Engineers Boost Computer Processor Performance By Over 20 Percent
Researchers from North Carolina State University have developed a new technique that allows graphics processing units (GPUs) and central processing units (CPUs) on a single chip to collaborate – boosting processor performance by an average of more than 20 percent.


Software Obsolescence – Complicating the Part and Technology Obsolescence Management Problem
Software obsolescence (more specifically COTS – Commercial Off The Shelf software obsolescence) is generally due to one of three main causes:
1. Functional Obsolescence
2. Technological Obsolescence
3. Logistical Obsolescence

"The only big companies that succeed will be those that obsolete their own products before someone else does"
Bill Gates, Founder, Microsoft Corp.


Event-Driven Architecture and Service-Oriented Architecture
This paper explores what event-driven architecture is, and how it relates to service-oriented architecture and enterprise service bus.


CRUD, DAO, DTO, DAL, SDO : définitions


L'avenir des clients Java passera par JavaFX
Durant la dernière conférence JavaOne 2011, Oracle a dévoilé sa stratégie concernant les applications clientes Java. Sans surprise, Oracle mise sur JavaFX.
Pour rappel, JavaFX est une API pour développer des RIA (desktop ou mobile), apparue il y a quelques années, mais qui n'a pas rencontré le succès escompté. Face à cet échec, une nouvelle version 2.0 de JavaFX a été présentée à la conférence JavaOne 2010.
Parmi les nouveautés marquantes, on peut noter l'abandon du langage Fx Script pour une API full Java. Cela permet notamment l'utilisation d'autres langages compatibles avec la JVM, tels que Groovy ou Scala. On voit aussi apparaître un descripteur d'interface graphique au format FXML. Celui-ci sera accompagné d'un outil graphique (standalone pour le moment), Java Fx Scene Builder, facilitant la création des interfaces. Cet outil fera son apparition courant 2012. Enfin, JavaFX pourra embarquer des composants HTML5 et JavaScript via l'utilisation de
WebKit. Le projet Avatar pousse même encore plus loin, en proposant des applications hybrides avec des interactions entre le monde JavaFx et HTML5.
Afin d'accélérer son développement, JavaFX va devenir open-source et sera intégré directement dans le projet OpenJDK. En parallèle, J2ME, l'API mobile historique de Java, va être unifié aussi dans le prochain JDK.
L'objectif d'Oracle est de diffuser JavaFx sur un maximum de périphériques possibles: desktops, mobiles et tablettes. Potentiellement, tous les périphériques compatibles avec la JVM pourront supporter JavaFX. Une version bêta est d'ores et déjà disponible pour Mac OS X. Une version pour Linux (Ubuntu) fera son apparition en 2012. Au final, JavaFx 3 sera intégré dans le JDK 8 prévu pour 2013 et sera compatible avec toutes les plateformes.

Manipulating Files in Java 7
The following is a modified snippet from a draft of The Well-Grounded Java Developer. It
gives you a quick taster of how much easier it is to manipulate files in Java 7 than in previous
versions. By using the new Files class and its many utility methods, you can perform the
following operations on files with only a single line of code:
  • Create
  • Delete
  • Copy
  • Move/Rename

Let's start by looking at the creation and deletion of files.


Java Lambda Syntax based on C#, Scala
One of the most anticipated new features of Java 8 is the introduction of Lambdas, which are anonymous functions that can be passed around like data in arguments and variables. However, the syntax for these wasn't widely decided, with polls asking for input on what would be most familiar to others.
A recent posting on the lambda-dev mailing list announced the conclusion that the Java Lambda syntax will be based on C# syntax. This is already widely known and used (as C# had delegates back in 1.0, support for delegate functions in 2.0 and lambda expressions in 3.0).


State of the Lambda December 2011 4th edition
This is an informal overview of the enhancements to the Java programming language specified by JSR 335 and implemented in the OpenJDK Lambda Project. It refines the previous iteration posted in October 2010. A formal
description of some of the language changes may be found in the Early Draft Specification for the JSR; an OpenJDK Developer Preview is also available. Additional design documents—in particular a more detailed examination of default
methods—can be found at the OpenJDK project page. As all of these artifacts are works-in-progress, there may be inconsistencies between them, which will be resolved by the time the spec and implementation are finalized.
The high-level goal of Project Lambda is to allow programming patterns that require modeling code as data to be convenient and idiomatic in Java. The principal new language features include:
  • Lambda expressions (informally, "closures" or "anonymous methods")
  • Expanded target typing
  • Method and constructor references
  • Default methods
These are described and illustrated below.


Java Modularity : Project Jigsaw: The Big Picture — DRAFT 1
This document is an overview of the current state of Project Jigsaw, an exploratory effort to design and implement a module system for the Java SE Platform and to apply that system to the Platform itself and to the JDK.
This document is not yet complete. Additional sections covering compilation, packaging, libraries, repositories, the module-system API, and the modularization of the JDK are in preparation. Every feature mentioned here has been implemented in the main Jigsaw repository unless otherwise noted.


Premières infos sur Java 9
  • Reified Generics ?
  • Primitives unifiés ?