vendredi 19 mars 2010

Veille technologique semaine 11

Pour le bulletin de cette semaine, je vous propose les articles suivants :
  • Les statistiques du monde Java : il y a plus d'équipements avec du Java embarqué que d'humains sur la planète. Sinon il y a environs 6,5 millions de programmeur Java.
  • Les leçons des technologies Java et DotNet.
  • Une présentation du langage Scala : un résumé.
  • Microsoft qui a présenté IE 9 : support de HTML 5.
  • Présentation par Microsoft de Windows Mobile 7 : modèle de programmation, pas de multitâches utilisateur et pas de code natif (C++) : que du code managé DotNet.
  • Présentation de HTML 5 par Google, HTML 5 et JavaScript, les websockets.
  • Les règles de conceptions des API : c'est un sujet à soigner.
  • Les transaction mémoire non intrusive : le projet Deuce :
  • Le projet Jigsaw du JDK 7.
  • Commentaire sur le JSR 310 : Date and Time.

Bonne lecture.

What's Happening in the Java World?
Statistics for Java:
  • 15 million JRE downloads/week (doesn't count tax season in Brazil)
  • 10 billion-ish Java enabled devices (more devices than people)
  • 1 billion-ish Java enabled desktops
  • 100 million-ish TV devices
  • 2.6 billion-ish mobile devices
  • 5.5 billion-ish smart cards
  • 6.5 million professional Java developers

C++, Java and .NET: Lessons Learned from the Internet Age
His talk was a retrospective of the trade-offs compared to C++ illustrated by Java, C# and other VM-based programming languages with Garbage-Collection, scripting languages simultaneously thrived, and what this teaches us about the applicability of technology to emerging challenges and environments such as cloud computing. Why did Java become so successful? Some folks say it was marketed better, but it was Sun - so we know that could've have been possible.
Top 10 Reasons Why Java has been able to supplant C++.
The Top 10 list of advantages C++ has over Java.

The Scala Programming Language
Introducing Scala
Scala is a general purpose programming language designed to express common
programming patterns in a concise, elegant, and type-safe way. It smoothly integrates
features of object-oriented and functional languages, enabling Java and other programmers to be more productive. Code sizes are typically reduced by a factor of two to three when compared to an equivalent Java application.

MIX10 : Microsoft présente Internet Explorer 9

À l'occasion du MIX10, la conférence des développeurs de Microsoft, la firme de Redmond a levé le voile sur la prochaine version de son navigateur fétiche, Internet Explorer 9.

Microsoft semble encline à mieux respecter les standards, plaçant le HTML5 au cœur de son navigateur. Comme Safari ou Chrome, les formats H.264 et AAC ont été retenus pour la vidéo et l'audio. Le CSS est mieux géré, notamment les nouvelles fonctions d'opacité, mais IE 9 cale à 55 % de l'Acid Test 3.

Microsoft Details Internet Explorer 9
As predicted, more Microsoft news from MIX10, and this is some big stuff: Internet Explorer 9. As we all know, Microsoft really let Internet Explorer rot away, allowing competitors to make much better browsers with better standards compliance and performance. With IE9, Microsoft is aiming to not just close that gap -but to overtake the competition.

There's really a lot to tell about Internet Explorer 9, so I don't really know where to start. First of all, you can download a test version[], called the IE9 Platform Preview. This preview will be updated every eight weeks, and customer feedback will be taken into account - presumably much like the Windows 7 development phase.

So, what's new in IE9? Fist, there's a new JavaScript engine called "Chakra". It is a much, much faster engine than IE8 has, and it currently performs somewhere in the middle compared to other major browsers. The interesting thing about it is that IE9 will run Chakra (and thus, JavaScript code) on a separate thread, on a separate core (if available).

That's not the only thing that IE9 will hand off to hardware - text, graphics, and SVG rendering will be hardware accelerated as well, providing, according to Microsoft at least, better performance than other browsers.

A hot iron is obviously standards compliance, and it appears that Microsoft has finally learnt its lesson with this one. The post on the IEBlog announcing the IE9 MIX10 details is full of holding hands and flowers and free hugs, and the current Platform Preview build scores 55/100 on the ACID3 test. Microsoft is asking for feedback on this stuff.

"The main technologies to call out here broadly are HTML5, CSS3, DOM, and SVG," Microsoft writes, "The IE9 test drive site has more specifics and samples. At this time, we're looking for developer feedback on our implementation of HTML5's parsing rules, Selection APIs, XHTML support, and inline SVG. Within CSS3, we're looking for developer feedback on IE9's support for Selectors, Namespaces, Colors, Values, Backgrounds and Borders, and Fonts. Within DOM, we're looking for developer feedback on IE9's support for Core, Events, Style, and Range."

At the Platform Preview site, there's a whole bunch of browsers tests to perform, and, of course, you can download the latest IE9 build - new territory for Microsoft. This is what competition can do, and it's good. Especially the hardware acceleration sounds incredibly interesting.

Windows Phone 7 Series Programming Model
"The application model supported on Windows Phone 7 series will be managed only and will leverage Silverlight, XNA and the .NET Framework".

No native code development on Windows Phone 7 says Microsoft – so what about Flash?

Windows Phone 7 is a managed code platform, we've been told at Mix10 in Las Vegas. Development is via Silverlight or XNA; there is no native API.

Of course there is a native API; the question is more about what code is allowed to access it. Still, in the press briefing the spokesman was clear that native code development will not be supported.

What about projects like Adobe's Flash runtime, which both Microsoft and Adobe have said is planned, or at least (in Microsoft's case), not blocked – although we already know that Flash will not be available in the first release.

All my spokesman would say is that nothing has been announced about that.

My suspicion is that in reality certain privileged vendors will be able to, in effect, extend the operating system with native code libraries. Adobe could be one of those; so too could a company like Rhomobile, which has a cross-compiler for a variety of mobile platforms. So I doubt that Microsoft has yet given us the full story here.

Update: The latest on this is that Microsoft's Charlie Kindel says that Adobe will have special native access for Flash, but that no other vendor will have that privilege. This still does not make sense to me. Let's suppose that Windows Phone 7 is a big success. What justification could Microsoft have for supporting the Flash runtime but not the Java runtime, for example? I suspect that Microsoft is chasing the Flash checkbox to one-up Apple; but if Adobe gets native access, others will no doubt follow.

Microsoft: Windows Phone 7 Doesn't Do Multitasking - Yet
Charlie Kindel, who sets out Microsoft's Windows Phone developer strategy, explained in an interview that Windows Mobile Phone 7 Series will not support multitasking, for the same reasons we've heard before: to preserve battery life, and to keep the phone responsive at all times.

Présentation HTML5 par Patrick Chanezon, conférence
Patrick Chanezon de Google est passé en France pour présenter l'évolution du développement Web et de la plate-forme lors de la conférence « Innovation Web » en décembre 2009. Cette conférence est organisée par l'association étudiante GET. Celle-ci a pour but la promotion des technologies Google auprès des étudiants et plus largement, des développeurs.

HTML5 – Les API JavaScript
C'est le moment de passer à la deuxième partie de cette série sur HTML5, avec en ligne de mire les nouveautés côté JavaScript. La spécification a pris le parti de mettre
JavaScript en avant, avec des API standards qui pourront être implémentées dans tous les navigateurs. L'un des buts de la spécification est de faire monter HTML et JavaScript à un niveau de finition et de performance égalant les applications de bureau. Côté performance, il y a le parallélisme et quelques fonctions natives qui viendront remplacer des fonctions déjà implémentées par les frameworks JavaScript. Mais HTML5 fait aussi écho à l'explosion du Web mobile avec la géolocalisation et les applications hors ligne pour ceux qui ne sont pas connectés en permanence.

How HTML5 Web Sockets Interact With Proxy Servers
With the recent explosion of WebSocket server implementations, a lot of questions have come up about how HTML5 Web Sockets deal with proxy servers, firewalls, and load-balancing routers. Will proxy servers automatically kill WebSocket connections? Do HTML5 Web Sockets handle firewalls and proxy server issues better than Comet? Are Web Sockets the silver bullet in seamless proxy server traversal? In this article, I'll explain how HTML5 Web Sockets interact with proxy servers, load balancing routers, and firewalls. Additionally, I'll explain how Kaazing WebSocket Gateway and its Web Socket emulation can add additional value.

The Primary Goals of API Design: Functional Software Elegance
1.The primary goal of an API or component is to solve some problem the user has.
2.The secondary, but still important goal is to do so with as little effort required from the user as possible.
3.Third, your API should not create any new problems for the user.

Noninvasive concurrency with Java STM
Abstract. In this paper we present a complete Java STM framework, called
Deuce, intended as a platform for developing scalable concurrent applications
and as a research tool for designing new STM algorithms. It was not clear
if one could build an ef ficient Java STM without compiler support. Deuce
provides several bene ts over existing Java STM frameworks: it avoids any
changes or additions to the JVM, it does not require language extensions or
intrusive APIs, and it does not impose any memory footprint or GC overhead.
To support legacy libraries, Deuce dynamically instruments classes at load
time and uses an original "field-base" locking strategy to improve concurrency.

Deuce also provides a simple internal API allowing different STMs
algorithms to be plugged in. We show empirical results that highlight the
scalability of our framework running benchmarks with hundreds of concurrent
threads. This paper shows for the rst time that one can actually design
a Java STM with reasonable performance without compiler support.

Software Transaction Memory : Deuce
We present a complete Java STM framework,
called Deuce, intended as a platform for developing scalable concurrent applications and as a research tool for designing new STM algorithms.
Deuce provides several benefits over existing Java STM frameworks:

  • Avoids any changes or additions to the JVM.
  • Does not require language extensions or intrusive APIs.
  • Does not impose any memory footprint or GC overhead.
  • Dynamically instruments classes at load time.
  • Uses an original "field-based" locking strategy to improve concurrency.
  • Provides a simple internal API allowing different STMs algorithms to be plugged and test.

Jigsaw will come with JDK 1.7 and is now part of the openjdk project and so opensource. Other JDK implementations could simply reuse it.It will become interesting, because:

JSR 310 Date and Time API for Java
Stephen Colebourne, lead of the JSR 310 Date and Time API, has recently published an Early Draft Review of the proposed additions and changes to the Java language. InfoQ caught up with Stephen at QCon London to find out more about the project.
InfoQ: Why do we need a new Date and Time API? What's wrong with the existing one?
Stephen: The main problem with the current APIs (java.util.Date and java.util.Calendar) is that they are mutable.

Aucun commentaire: