Modern technologies ?

I just love these incredible fake vintage drawings of our "modern" technologies (see below). What is modern, what is not ?

And how old is too old in computer science ?
We've been using computers on a large scale for less than 30 years, and Internet for less than 15 years. Compare this to 1 century of industrial age, 6 of text printing, and 53 of writing...

Lire la suite...

Compte-rendu du Paris JUG, part. 2 : Servlets 3.0

Voici le compte-rendu de la seconde séance du Paris JUG du 13 octobre.
Cette fois, il s'agissait de présenter les dernières avancées de la spécification Servlets 3.0, avec au micro Rémi Maucherat (RedHat), responsable de l'implémentation des specs Servlet/JSP et membre de l'Expert Group Servlets 3.0.

Lire la suite...

A lire : Principes de conception objet

Le cabinet de conseil Crossbow Labs propose sur son site un excellent récapitulatif des principes de conception objet.

A lire (et à télécharger) d'urgence !

Java : les exceptions enfin expliquées (ou pas)

Merci au Touilleur-Express d'avoir signalé cette page, qui vous fera sûrement sourire en ce lundi matin : Explanations of common Java exceptions.

Edit : je complète avec cette liste des choses que les ordinateurs font dans les films. C'est si vrai !

Des nouvelles de Java 7

Suite à Devoxx'08 et en prévision de JavaOne'09, Alex Miller publie une synthèse des nouveautés de Java 7 : quelles API seront ou non intégrées, quelles modifications seront apportées au langage... Un tableau récapitulatif est également disponible.

L'absence la plus remarquée est celle des closures, autour desquelles le débat fait rage depuis plusieurs années. En revanche, on se réjouira de voir apparaître certaines fonctionnalités réclamées depuis longtemps, comme la possibilité d'utiliser des Strings dans les blocs switch.

Java7, évolution plus que révolution ?

Java : un problème sur la LinkedBlockingQueue

En s'appuyant sur le code de la classe LinkedBlockingQueue, Alex Miller (Pure Danger Tech) démontre que la moindre erreur d'algorithmique dans une structure de données complexe peut avoir des conséquences catastrophiques au niveau des performances : une simple référence conservée trop longtemps sur un objet devenu inutile peut empêcher le garbage collector de faire son travail, et saturer la mémoire.

Un billet à lire d'urgence, surtout si vous prévoyez de développer vos propres collections.

De l'intérêt des portails

Il y a quelques mois, j'assistais à une présentation d'Exo Platform animée par Tugdual Grall. Dans mon compte-rendu, sans remettre en cause la qualité du produit, j'émettais des réserves quant à l'intérêt même des portails d'entreprise.

Comme il semble que je ne sois pas le seul à m'interroger, Tugdual a publié un article répondant point par point aux objections les plus courantes. Une lecture intéressante, qui n'a cependant pas suffi à changer mon avis sur la question...

CopyOnWriteArrayList concurrency fun : un billet d'Alex Miller

Alex Miller a publié aujourd'hui un article intéressant sur le fonctionnement interne de la classe CopyOnWriteArrayList.
En voici une traduction rapide.

J'ai déjà mentionné la classe CopyOnWriteArrayList dans un billet précédent de la série "bugs relatifs aux accès concurrents". Il se trouve que j'ai eu besoin de regarder son code source aujourd'hui, et il apparaît qu'elle repose sur une architecture concurrente remarquable mais pas forcément évidente à comprendre.

Lire la suite...

Un coup d'oeil sous le capot de la JVM

Chapardés en partie sur le blog de Xebia, trois liens vers des articles permettant de s'initier au fonctionnement interne de la JVM, de découvrir la structure interne des classes Java (dont le fameux CAFE BABE), et s'amuser à optimiser des paramètres mémoire de la JVM.
Une lecture recommandée à tout développeur Java !

De la bonne implémentation du pattern producteur-consommateur

Le Touilleur-Express vient de publier un article technique présentant l'interface BlockingDeque. Introduite avec Java6, elle étend et améliore BlockingQueue en permettant d'agir sur les deux extrémités de la file.

Ces composants permettent d'implémenter facilement des architectures de type producteur-consommateur, érpargnant au développeur les affres de la synchronisation manuelle et fournissant un ensemble de fonctionnalités pratiques (blocage, timeout...).

Si ces problématiques vous intéressent, je vous recommande l'excellent livre Java Concurrency in Practice.

- page 1 de 2