vendredi 28 janvier 2011

Veille technologique semaine 4

Je vous propose les articles suivants :
  • Intel montre ses prochains processeurs "Sandy Bridge" : première gravure des processeurs Intel en 32nm, avec chipset et processeur graphique intégré.
  • L'index Tiobe de Janvier 2011 sur un scan du web au sujet des langages de programmation, qui est une mesure de la popularité des langages. Ce n'est pas une mesure de la qualité de ces langages.
  • L'état actuel de l'industrie du logiciel : pourquoi la plupart des logiciels développés aujourd'hui sont plus mal conçus et mal écrit ?
  • Quelle est la différence entre une architecture orienté événements (Event Driven Architecture : EDA) et le modèle de conception observer ? Cela est-il également applicable au modèle publish / subscribe ? Quand pensez vous ?
  • Une série d'articles au sujet du langage de programmation scala, pour les développeurs Java.
  • Un zoom sur la notion de "trait" de scala pour faire du "mixin".
  • Utilisation du "mixin" pour faire du tissage des préoccupations transverses, une solution pour réaliser de la programmation par aspect (AOP).
  • Les fonctionnalité du JDK 7 (prévu pour mi-2011) ont été figées.
  • Une de ces fonctionnalités correspond aux modifications du langage avec le projet Coin, le JSR 334.
  • Un navigateur web en Java : un adaptateur Java sur le navigateur natif de l'OS.
Bonne lecture.

Intel Launches 'Sandy Bridge' Processors

It's the Consumer Electronics Show in Las Vegas, so it's time for new stuff to spend your hard-earned cash on. This time around, Intel is making headlines by officially launching its Sandy Bridge line of processors, which, up until now, were totally next-generation.

Sandy Bridge is just the codename, of course, and now they're known simply as the 2010 Intel® Core™ Processor Family. The biggest innovations here are the 32nm manufacturing process on the company's second-generation high-k metal gate transistors (which sounds like a line from a Mass Effect weapon description, but allright, I'll roll with it), and Intel HD graphics integrated onto the 32nm die.
"The all new 2010 Intel Core processor family is the first to integrate graphics into mainstream PC processors. With Intel HD Graphics, the processors deliver stunning visuals and smooth high-definition video playback," the press release reads, "It's also the industry's first integrated solution to deliver multi-channel Dolby TrueHD and DTS Premium Suite home theater audio."
The new processors (the Core i7 and i5 variants, at least) also come with Intel Turbo Boost Technology, which allows cores to temporarily run at a higher operating frequency than the base one, but only "if it's operating below power, current, and temperature specification limits".
Expect to see these things in your local laptop and desktop population soon enough.

TIOBE Programming Community Index for January 2011
The TIOBE Programming Community index is an indicator of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, Wikipedia and YouTube are used to calculate the ratings.
Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

Statically Typed Languages : 60.4%
Dynamically Typed Languages : 39.6%

The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system.

The State of the SW Industry
To know how to move Software (SW) Industry, we need to know where we are and where we have been.

Well designed and well-built software has been implemented throughout time since the beginning of the SW Industry regardless of methods and
tools. Poorly written software has also existed throughout that time and continues to be developed today. Unfortunately, most software systems developed from the early days until today fall into the poorly designed and poorly written category. And to be honest, some software developed today falls into the poor category as well.

To be objective, one has to stand back and ask the question: Is the enterprise better off today with the systems it is buying or building than it was 30 years ago? I believe overall that answer is a resounding no.

What are the differences between Observer Pattern and Event-Driven Architecture?

A Scala Tutorial for Java programmers
This document gives a quick introduction to the Scala language and compiler. It
is intended for people who already have some programming experience and want
an overview of what they can do with Scala. A basic knowledge of object-oriented
programming, especially in Java, is assumed.

A first example
As a first example, we will use the standard Hello world program. It is not very fascinating
but makes it easy to demonstrate the use of the Scala tools without knowing
too much about the language. Here is how it looks:

object HelloWorld {
   def main(args: Array[String]) {
      println("Hello, world!")

Introduction à Scala : Les Traits

La définition d'un trait en Scala se présente comme suit:

trait nom [extends un-trait | une-classe [with un-autre-trait ...] ]

Ici, ce qui est entre [ ] dénote un élément optionnel, le | indique que l'une ou l'autre des alternative est applicable, et ... indique que ce qui précède peut être répété à volonté.

Bref, le plus important c'est le mot clé "trait", qui la différencie d'une classe ordinaire.

Real-World Scala: Managing Cross-Cutting Concerns using Mixin Composition and AOP

Crosscutting concerns and AOP

OOP has given us tools to reduce software complexity by introducing concepts like inheritance, abstraction, and polymorphism. However, developers face daily problems in software design that can't be solved easily using OOP. One of these problems is how to handle cross-cutting concerns in the application. So what is a cross-cutting concern? A concern is a particular concept or area of interest. For example, in an ordering system the core concerns could be order processing and manufacturing, while the system concerns could be transaction handling and security management. A cross-cutting concern is a concern that affects several classes or modules, a concern that is not well localized and modularized.
Symptoms of a cross-cutting concern are:

  • Code tangling – when a module or code section is managing several concerns simultaneously
  • Code scattering – when a concern is spread over many modules and is not well localized and modularized

These symptoms affect software in various ways; for example, they make it harder to maintain and reuse software as well as harder to write and understand.

Mixin composition stacks
Mixin composition stacks is a core language feature of Scala and is similar to Rickard Oberg's idea on using the so-called Abstract Schema pattern for type-safe AOP in plain Java.

JDK 7 is Feature Complete
The JDK 7 project says it has hit a major milestone, with the first feature complete build shipping in build 123. Henrik Ståhl, who is responsible for product strategy in the Java Platform Group and is an official spokesperson for Oracle on Java SE, blogged :

This means that development and QA have finished all planned feature and test development work in the release and are moving the focus to testing and bug fixing on all supported JDK 7 platforms. This is a major step towards JDK 7 General Availability (GA) and implies that we are tracking close to the plan published on

Project Coin/JSR 334 Draft Specification v0.75
Project Coin/JSR 334 is an effort to add a set of small language changes to Java SE 7 under the JSR 336 umbrella JSR with the reference implementation developed in OpenJDK. The changes must be simultaneously small in specification, implementation, and testing. The small changes to the Java programming language in Java SE 7 are:
  • Strings in switch
  • Binary integral literals and underscores in numeric literals
  • Multi-catch and more precise rethrow
  • Improved Type Inference for Generic Instance Creation (diamond)
  • try-with-resources statement
  • Simplified Varargs Method Invocation

Web browser in your Java Swing application
Do you develop a desktop Java Swing application and need a component that could display all modern web pages including Flash and Ajax? In this case JxBrowser library is what you need.
JxBrowser gives you a possibility to embed a rich web browser component into your Swingbased Java desktop applications. So web documents, inside your application will look exactly like in a web browser that they are designed for. JxBrowser supports integration with Internet Explorer and Mozilla (corresponding Firefox 3) under Windows, Apple Safari and Mozilla under Mac OS X, and Mozilla under Linux platforms.