[Mono] 2.6 revet son plus beau costume, il sort ce mois ci.
Cette version aura pris son temps pour sortir. Elle devrait arriver d'ici la fin de ce mois s'il n'y a pas de contre-temps. Elle embarquera des nouveautés intéressante, mais assez peu par rapport à ce qu'ont pu apporter précédentes versions qui avaient pourtant un cycle de développement plus court. La raison est simple, les employés de Novell qui développent Mono ont eu beaucoup à faire avec Mono-Touch, les outils d'intégration Visual Studio, MonoDevelop... Bref je soupçonne l'équipe d'avoir utilisé pas mal de leur temps sur des produits commerciaux dérivés qui espérons donnera une meilleure visibilité de Mono et lui garantiront un avenir plus sain.
Rassurez vous, il y a tout de même des nouveautés intéressantes à se mettre sous la dent, en voilà une liste non exhaustive.
Linq 2 SQL
C'est un premier pas de Linq vers base de données pour Mono... Mais il reste encore du travail, le but étant d'avoir la même API que System.Data.Linq.dll, mais pour un choix assez large de base de données à savoir:
- Microsoft SQL Server
- SQLite
- Oracle
- MySQL
- PostgreSQL
- Firebird
- Ingres
Pour des raisons de compatibilité le connecteur par défaut de la chaine de connexion est SQL server. Un exemple simple pour utiliser sqlite:
var conn = new SqliteConnection (
"DbLinqProvider=Sqlite;" +
"Data Source=Northwind.db3"
);
var db = new DataContext (conn);
Il manque encore la prise en charge des requêtes compilées, d'appel de certaines méthodes en milieu de requêtes SELECT et globalement des lacunes au niveau de la compatibilité avec le LINQ to SQL de Microsoft.
.NET 4 (ParallelFx, DLR)
Mono 2.6 commence à implémenter C# 4.0 et .NET 4.0, peut être amené à changer significativement si Microsoft en fait de même d'ici leur version finale de .NET 4.0.
Grâce à Jérémie Laval et ses deux saisons de Google Summer of Code, nous avons de ParallelFX le Parallel Linq, Task Parallel Library, Data Structures For Coordination.
Pour l'instant il faut explicitement activer le mode .NET4.0 dans mono. Que ce soit pour faire des compilations de C#4 ou l'exécution en profitant des modifications pour les variables dynamiques.
LLVM
LLVM est un interpréteur poussé par Apple, d'autres boites dont google s'intéressent de prêt à ce projet. Au lieu d'une Machine virtuelle standard, il est plus comme un "Processeur virtuel" qui a un assembleur propre. LLVM une fois que le code dans son assembleur lui est transmis fait des optimisations et génère éventuellement du code Natif.
Citation de Macpuissancedix ( cas du langage C/Objective-C ) http://www.macpuissancedix.com/Sir_06_09.php
Clang/LLVM apportent deux attributs importants que vous êtes en droit d'attendre d'un nouveau compilateur au goût du jour : des délais de compilation plus courts et des exécutables plus rapides. Selon les tests d'Apple avec ses propres applications (ex: iCal, Address Book ou même XCode) et des applications tierces (ex: Adium ou Growl)... Clang compile à peu près trois fois plus vite que GCC 4.2. Quant à la vitesse du produit fini, LLVM en arrière plan, [...] les exécutables sont 5% à 25% plus rapides que ceux créés par GCC 4.2.
Mono peut compiler du langage intermédiaire vers de l'assembleur LLVM. Ça permet au cout d'une première compilation plus longue et plus gourmande et d'un temps de démarrage supérieur d'augmenter significativement les performances de votre solution. Pour les parties de Code que LLVM ne compile pas encore, l'application, à l'exécution saura automatiquement appeler le JIT de mono.

C# Shell
La complétion est arrivée dans le C# shell! C'est vrai qu'on s'habitue vite à ces outils... C'était vraiment le détail qui en faisait un outil plus élitiste que purement pratique.
Xbuild
Xbuild est la réimplémentation de la méthode standard de compilation de Visual Studio.
Des avancées ont été menées autour de Xbuild, l'implémentation de MSBuild. les valeurs ajoutées:
-
Prise en charge des projets ASP.NET à la fois WebApplication et WebSite projects.
-
Des possibilités d'extentions de Xbuild ont été ajoutées.
-
Les assemblies locales sont mieux détectées.
-
Les évènements Pre/PostBuildEvents du projet sont désormais gérés.
-
Et de nombreux bugs de compatibilités qui restaient...
SIMD
Le Namespace SIMD a été revu pour avoir des noms répondant mieux aux conventions de nommage de Mono, quelques instructions SSE ont été ajoutées, et enfin, l'API a été implémentée pour les systèmes installés en 64 bits.
Mono.Tasklet.Continuation
C'est une nouvelle classe qui elle n'est pas portable .NET car requiert des modifications du Runtime, permet de gérer des états, faire des "Rollback" pour revenir à un lieu d'exécution pré-établi...
Autre :
- Possibilité de débogage distant (Utilisé par Mono-Tools for VisualStudio et MonoTouch)
- De nombreuses corrections de bugs notamment dans l'api winform comme à chaque release.
-
Une bien meilleure prise en charge des classes génériques en AOT (compilation complète).
-
System.IO.Packaging qui c'est popularisé dans les projets .NET est passé de la branche Olive de mono à sa distribution principale. C'est un fait rare, la branche Olive est la branche ou le projet mono fait avancer à petite vitesse les librairies compatibles MS qui n'intéresse pas grand monde directement... On trouve encore dans cette branche de délaissés WCF, WPF, les Workflow.
Remarque
Il ne serait pas étonnant que Mono 3.0 qui succèdera à Mono 2.6 et 2.8 se coordonne avec Gnome 3.0 qui lui a une date de sortie fixée en septembre 2010. Le rythme des sorties de mono ayant ralenti, on peut s'attendre à un rythme comparable avec une sortie tous les 6 mois qui est la façon de faire de gnome et Ubuntu. Trêve de spéculations, l'avenir nous en dira bien assez.
[Mono] Privilégié pour les super-calculateurs.
Effectivement, pour la gestion de grosses tables, de matrices, l'usage
en calculs intensifs sur de super-ordinateurs, Mono présente des
avantages sur .NET et Java.
On peut constater que même si la
norme du .NET permet l'usage de long en index pour des tables, Windows
64 bits lui-même ne gérera pas de tables de plus de 2,147,483,648
entrées contre 9,223,372,036,854,775,808 pour mono (autrement dit plus
de quatre milliards de fois plus grande).
Java lui a une norme qui ne permet pas l'usage de tables aussi grandes, il faudrait modifier le bytecode pour lui permettre d'arriver à la même limite que Mono.
Mono est compatible avec plusieurs architectures dont ARM et MIPS.
On peut voir des serveurs utilisant des processeurs MIPS moins cher et moins gourmands que les processeurs Intel/AMD.
Voici un exemple de constructeur (sicortex.com) dont je traduis la phrase de spécifications sur les processeurs de son serveur haut de gamme:
- " Ces serveurs contiennent 5,832 processeurs MIPS 64 bits d'1.4GFlops, chacun consommant seulement 900 milli-Watts."
Mono permet de bénéficier pour les calculs vectoriels et matriciels
des optimisations SIMD des processeurs modernes. Cette optimisation
permet de rattraper le retard de performance par rapport à du code C si
ce dernier est compilé sans SIMD.
Pour finir on devrait voir
arriver des outils de gestion de tâche intéressants avec Mono 2.6, ces
fonctions étant particulièrement utilisées dans les jeux vidéos et un
peu technique et de plus étant part d'une nouvelle version de Mono, ils seront objets d'un autre article.
[Mono] ASP.NET MVC est bien là grâce à sa licence MS-PL.
Et oui, l'équipe Mono n'as pas eu à re-faire l'intégralité de ce set d'outils facilitant la mise en place de projets respectant l'architecture de programmation MVC: Modèle Vue Contrôleur.
Ce set d'outils embarque un plug-in Visual-Studio, un Template Visual Studio (projet vide), et la bibliothèque contenant des classes .NET (assemblie), les fichiers javascript et autre.
Comment mettre en place un site ASP.NET MVC avec Linux grâce à Mono:
Il faut au moins mono 2.4 et les références aux assemblies suivantes:
-
System.Web.Abstractions
-
System.Web.Extensions
-
System.Web.Routing (Pour ces trois premières références, il faut le paquet
mono-extras sous OpenSuse.)
-
System.Web.Mvc (Si vous utilisez MonoDevelop, cette assemblies est dans le plugin MVC, mais elle sera intégrée dans Mono 2.4.1 et Mono 2.6)
Vous pouvez ajouter le plug-in MVC dans MonoDevelop grâce au gestionnaire de greffons du menu "Outils":
Ceci vous installe le template, l'assemblie et ajoute quelques fonctions contextuelles à MonoDevelop.
Nous pouvons créer un site en faisant une Nouvelle solution MVC:
Nous avons donc un projet complet qui respecte l'architecture MVC grâce au Template.
Nous pouvons graphiquement ajouter des vues partiellement générées à la demande.
Bref si le fonctionnement vous intéresse, vous pouvez suivre la suite d'articles de Bertrand Vergnault à ce sujet dont voici le premier: ASPNET-MVC-Partie-1-Presentation-de-MVC
Pour ma part, j'espère que cette petite présentation vous aura intéressé.
[Mono] [QT] Qyoto relancé par Synapse
Qyoto qui est le Bind mono pour application QT était un projet intéressant, mais inutilisé donc relativement voué à l'abandon.
Heureusement un projet est né: Synapse. Ce projet est donc le premier de telle ampleur à utiliser Qyoto. Le mainteneur principal de Synapse (Eric Buttler) a aussi développé un plug-in
pour monodevelop nommé Qyotodevelop. Il permet d'importer les fichiers
UI de QT Designer et donc de créer l'interface graphiquement.
Ce projet est un client de messagerie instantanée intégrant un certain
nombre de services web (Flicker, Youtube, Twitter...), mais aussi
Banshee qui est un gestionnaire de bibliothèque musicale pour afficher
le morceau en cours de lecture.
Remarque:
Ceux qui ont vu antitrust auront compris la référence. Je précise pour
l'anecdote que Miguel De Icaza a participé à ce film et y figure même
un bref instant dans son propre rôle. Pour rappel c'était un film ou la
société Synapse qui s'occupait de gérer tout ce qui est communication
et multimédia sur internet volait du code GPL et parfois venait à tuer
pour éviter que ça se sache..
Image extraite du film
Text Template Transformation Toolkit (T4)
Heureux soient les amateurs du module MVC d'asp.NET,
vous avez apprécié la simplicité d'organisation du texte, la
possibilité d'organiser le code en plein milieux de texte en ayant une
sortie avec du code interne centrée autour du texte et non autour du
code.
T4 est basé sur ASP.NET,
il permet d'appliquer une transformation similaire à celle que l'on
pourrait porter sur un site .NET dont les balises seraient en HTML...
Bien que ce ne soit pas très connu il parait que c'est déjà pas mal utilisé, supporté sous Visual Studio mais aussi MonoDevelop, le T4 apporte un moyen simple de mettre en forme du texte.
L'extension de fichier utilisée pour les texts templates est .tt.
Voici un exemple utilisé pour générer les RPM de mono.
Ma découverte et l'image sont issus de cet article: http://tirania.org/blog/archive/2009/Mar-10.html
.NET 4.0 apporte System.Shell.CommandLine
Et c'est bien évidemment là que l'on constate que Microsoft connait les lignes de commandes!
Qui, même sous windows, n'as jamais bidouillé les options d'un
raccourci en espérant une sortie d'erreur plus verbeuse ou pour avoir
accès à des fonctionnalités cachées?
.NET 4.0 l'as compris et amène une "Great New Shell Feature"!
Cet espace de nom palie donc à un manque en simplifiant le parsages d'options de lignes de commandes.
Mono ayant bien entendu des librairies propres et issu d'un monde ou la
ligne de commande est plus utilisé avait déjà des outils pour ce genre
de choses, vous allons donc pouvoir grâce à l'article de Miguel De
Icaza (en) comparer System.Shell.CommandLine et Mono.Options.
Monodevelop 2.0 Alpha2
Voilà deux semaines que cette révision est sortie et je me dois quand même de faire un récapitulatif des améliorations de Monodevelop par rapport à la version 1.0 qui était considéré par beaucoup déjà comme le meilleur IDE sous linux. MonoDevelop 2.0 rattrape beaucoup de son retard sur visualstudio en ajoutant un nombre très important de fonctionnalités et de plug-ins proposés que je vous présenterai fonction de mon intérêt, car il serait long de viser l'exhaustivité.
Notez que les impressions d'écran sont tirées des Release notes officielles. Pour les voir en pleine résolution vous pouvez faire clic-droit afficher.
- Les nouveautés de gestion des projets
- Les WorkSpaces permettent de lancer/ouvrir en même temps plusieurs solutions indépendantes.
- Possibilité d'ouvrir plusieurs solutions distinctes depuis la même instance
- Possibilité d'organiser plus finement l'agencement par défaut et le dossier des solutions ou de définir pour un WorkSpace spécifique
- Les Nouveautés sur le XML et le Web
- Enfin la complétion sur les documents XML, ASPX, HTML...

- La complétion sur les documents XML est disponible pour tout XML dont on a le XSD (XML Schema Document)
- Bien qu'il n'y ait pas d'interface wysiwyg la toolbox permettra d'ajouter simplement les contrôles ASP.NET
- Début de support pour faire des applications moonlight et pour la complétion XAML
- Les Nouveautés de l'édition de Texte
- La complétion est plus pertinente

- La complétion peut suggérer (dans le cas d'un abonnement à une méthode il vous sera proposé de créer une classe anonyme avec la bonne signature)
- Repliement du code (Régions, Méthodes) avec aperçu au survol

- Large choix de coloration
- Possibilité de splitter l'affichage (par exemple pour comparer deux sources)
- Possibilité de voir sous la liste d'autocomplétion (Control la rend transparente)
- Possibilité d'insérer des extraits de code dans la ToolBox (Contien les Snipets par défaut)
- Mode VI pour les gens qui ont appris à être productif avec cet éditeur.
- Les Nouveautés en support de langages
- La syntaxe C#3 est désormais comprise et complété correctement. (méthodes d'extension...)
- Support du Boo.
- Support du Python (Python natif, sans .NET... Pas Iron-Python)
- Support du Vala (Un langage très inspiré du C# destiné a faire des applications GTK, ce langage compile vers du C et a de bonnes performances)
- Support de IKVM ( une machine Java .NET)
- Les Nouveaux outils
- Ajout d'un navigateur d'assemblies (permet de voir les classes et signatures de méthodes de l'arbre des classes et namespaces)
- Un menu de navigation (Ctrl+tab) qui permet de naviguer en avançant par onglet, permet aussi de passer sur un outil (les éléments de la solution la liste d'erreur...)

- Un menu qui propose d'overrider ou implémenter les éléments d'une classe ou interface.
- Intégration du debugger et avancée pas-à-pas.

- Gestion graphique des bases de données
- Attribut qui permet d'ajouter les CustomControl GTK# dans la toolbox
Notez donc que MonoDevelop 2.0 promet des améliorations très notables et une sortie normalement en mars 2009.
Vous avez envie d'essayer MonoDevelop 2.0 ? Le support des projets VisualStudio 2005 et 2008 y compris pour les web-projets ne peut que vous aider à le faire.
Une des valeurs ajoutée de Mono: la portabilité et l'embarqué.
Mono a pour défaut d'être un peu moins performant que .NET et
pourtant il a une place non négligeable dans "l'embarqué" ou les
ressources sont souvent guettés sans vergognes pour gagner en masse, en
cout de production en réduisant les spécifications du CPU, en
autonomie...
Cet article vise à vous faire saisir les enjeux
de Mono et les raisons pour lesquelles il est choisi malgré une
stabilité et des performances un peu inférieure.
L'embarqué proposé par des compagnies:
Pourquoi Sandisk, grande entreprise de renom, marque de choix pour les
cartes SD ou autre, a préféré utiliser la plateforme Mono pour
développer son lecteur "Sansa Connect"? L'info n'est pas fraîche mais n'en est pas moins d'actualité. Les plus de cet appareil étaient outre le Wifi l'intégration avec Yahoo! Music, une interface fluide avec des effets corrects, la radio en streaming, bref... Un appareil correct encore noté correctement sur Amazon
bien qu'il soit moins d'actualité plus d'un an et demi après sa sortie.
L'intérêt de Mono est que l'on peut se créer son Embedded framework sur
mesure et le réduire à la demande, le compiler avec seulement le strict
nécessaire en spécifiant une option de compilation. Il suffira de
composer un document XML des éléments à compiler ou non. La structure
du Puzzle correspond à vrai dire mieux à Mono qu'au .NET. Même si on
doit se l'assembler et qu'à base égale ce n'est pas autant optimisé, on
peut enlever et mettre les pièces que l'on veut. En face .NET propose
un framework portable et un Framework PC complet et compilé par
version. De plus SanDisk en a profité pour s'économiser de nombreuses
licences Windows Mobile en se compilant ses applications et son
environnement pour sa plateforme.
La plateforme développement Unity3D servant à faire des jeux sur
serveurs (en s'intégrant par exemple dans le navigateur par le biais
d'un plugin) ou en local utilise aussi la plateforme Mono pour toute la
gestion de logique (Scripting, AI ... Mais évidemment pas le moteur
3D). Leur "IDE" semble bluffant de simplicité, o
n dirait une fusion
entre Blender et XCode (que connaissent les MacUsers). Unity marche sous Mac, XBox, PS3, Wii, IPhone (sans JailBreak), sous Windows mais pas
encore de paquets pour Linux. L'intérêt est que ce soit hautement
multiplateforme, puissant et que ça laisse le choix du langage. Les
langages proposés par défauts pour les scripts sont le Boo (Iron-Python
réadapté pour être mieux intégré au .NET), le C# et le JavaScript.
Certains auront peut-être le poil irisé à l'association de C# à un
langage de script, mais le projet Mono a développé un Interpréteur C#
prévu à cet effet. Microsoft devrait implémenter ça avec C#5.0 dans... Un moment.
L'embarqué par la communauté:
Mono arrive aussi avec ses applications sur les tablettes internet
Nokia (N800/N810 ...) dont la couche logicielle est open-source. Cet
environnement/plateforme de développement Maemo permet de coder en C++
avec du GTK+ standard. GTK# et Mono avec des bindings pour Maemo.
Mono Tomboy sur Nokia N810 Maemo
Les NetBooks sont une certaine réussite et ceux même sans Windows, une
initiative assez communautaire entamé avant la sortie du premier EeePC
le voyait venir. Un projet visant à succéder à la "console Open-Source
et Libre GP2X" en face de la GP2X Wiz, le projet OpenPandora. Cette
console de format comparable à une Nintendo DS et prévu pour le jeu
(notamment l'émulation car
ils savent qu'aucun éditeur ne proposera de jeux pour cette console) a
des spécifications qui peuvent laisser rêveur pour un prix abordable.
Le choix de l'architecture ARM Cortex permet pour une cadence à 600 MHz
un bon rendement et une faible consommation énergétique. Mono arrivera
dessus vu que Canonical éditeur de la distribution Ubuntu devrai
proposer des Jaunty Jackalope (dans cinq mois) une version compilée
pour ARM de sa distribution incluant Mono. Un pas vers les PC
incompatible Windows et Mono en seul recours pour le .Net.
Deux projets intéressants: Quake-light et Brahma
Deux projets ce matin me sont tombés sous les yeux et m'ont agréablement étonnés.
Le premier en en béta privée, c'est le portage de Quake 1 en silverlight (sous le nom de Quake-light). Aux vues de la vidéo/screencast même les réfractaires peuvent avoir une idée plus claire de ce qu'aporte le silverlight.
Lien vers la vidéo: http://channel9.msdn.com/shows/Continuum/QuakeLightPreview/
Un second projet me parait plus prometteur qu'une simple démo, c'est à la base un projet pour .NET 3.5 maintenant compatible Mono, c'est ou ce sera probablement la gamme au-dessus de Plinq (parallel Linq) niveau performance. En utilisant opengl et la carte graphique (GPGPU) Brahma calcule et effectue vos requêtes. Les unités de calculs des cartes graphiques étant souvant divisés, l'auteur du projet compte en plus paralléliser les requêtes.
Site officiel: http://brahma.ananthonline.net/
.NET4.0, C#4.0, ParallelFX ... Qu'est ce que la programmation concurentielle?
A l'approche de grands évènements de communication chez Microsoft (dont la Professional
Developer Conference), on commence à avoir quelques suspicions sur ce
que sera le C#4.0 et .Net 4.0. Le framework ParallelFx qui est à la
base un projet Microsoft destiné à multi-threader facilement les applications et des requêtes (PLinq). Ce framework commence à atteindre un certain stade de maturité, il va d'ailleurs bientôt fêter son anniversaire. Peut être ferat-il partie intégrante de .NET 4 ? Bien des éléments nous portent à le croire.
A quoi sert ParallelFX ?
Tirer parti des architectures des processeurs modernes en divisant nos
applications en processus concurrents. Mais qu'est-ce que peut bien
signifier des processus concurrents ? Je concède que cette notion n'est
pas encore familière à tout le monde, si le sujet vous intéresse je
vous propose un bref descriptif puis quelques ressources francophones à ce sujet
en fin d'article. La division en processus concurrents n'est pas
toujours évidente à faire manuellement, intégrer nativement ParallelFX
au framework .NET et l'utilisation commune de cette technologie
pourrait dissiper certains détracteurs du framework l'attaquant sur la
performance.
Qu’est-ce que la programmation concurrentielle ?
La programmation concurrentielle consiste à diviser en plusieurs tâches
nos applications. Quand il n'y a pas d'interactions entre les tâches on
parle aussi de programmation parallèle qui est un cas particulier (et
le cas le plus simple) de programmation concurrentielle. Ces tâches
s'exécutent en parallèle donc il n'y a pas de temps mort et nos
applications peuvent tirer parti des processeurs multi-coeurs qui sont aujourd'hui en standard sur les PC (à part netbooks). Sur le papier c'est beau, mais si c'est encore peu utilisé c'est je pense pour ces trois raisons principales :
- Les développeurs ont rarement étés formés au multi-thread ou préfèrent aller au plus simple
- Si les threads touchent aux mêmes variables les résultats peuvent devenir aberrants. Mettons une application bancaire ou les évènements sont sur des threads différents. Si un client fait un retrait et un dépôt en même temps il se peut que seul une des deux opérations soit effective (lecture simultanée de la valeur initiale, seul le dernier processus à écrire sera pris en compte).
- Les interactions entre les threads sont assez imprévisibles et la loie de Murphy pousse ces applications à planter en production mais jamais lors du debug.
Quelles solutions apporte ParallelFX ?
Répartir sur des threads
indépendants, c'est assez facile même aujourd'hui sans ParallelFX.
ParallelFX facilite encore plus et peut par exemple transformer des « foreach » en « Parallel.ForEach » voire en « forall » (dans le cas de requêtes Plinq) qui lancera en parallèle toutes les itérations. De plus il propose le PLinq qui permet donc de multi-threader
automatiquement les requêtes. De ce fait ParallelFX porte déjà une
bonne solution au premier problème qui est la difficulté. Dans le cas
ou les trheads sont indépendant c'est parfait.
Mais quand les threads
doivent communiquer entre eux, il reste le risque de valeurs
incohérentes et d'erreur aléatoires. Comme en mathématiques quand deux threads parallèles se croisent, il y a risque d'erreur . A l'heure actuelle le moyen le plus simple c'est d'utiliser le mot clef lock quand nécessaire pour verrouiller l'accès aux variables aux autres threads et limiter le risque d'erreur.
Mais une autre solution plus simple semble avancer de chez Microsoft...
Un développeur Microsoft a récemment ouvert un blog (en) ICI sur les
mémoires transactionnelles logicielles (STM -> Software transactional memory).
Que sont ces « mémoires de transactions logicielles » ?
C'est un moyen en programmation concurrentielle de contrôler la mémoire partagée entre les processus. Les threads ont leurs copies des variables utilisées et la traite sans problème. Si une opération à exécuter sur de la mémoire partagée a eu lieu pendant l'exécution du thread, ce thread est ré-exécuté, sinon il remplace la valeur réelle. Certains feront l'analogie entre ces variables spéciales et les requêtes
Et mono dans tout ça?
Mono grâce à un étudiant français (Jérémie Laval) a déjà PLinq et ParallelFX de pas mal implémenté. Jérémie
a porté sa contribution subventionné par Google Summer Of Code
(opération où Google donnes quelques pièces aux étudiants qui
contribuent au logiciel libre). L'idée de cet article m'est venue de
ses hypothèses que désormais je partage sur l'implémentation future de
ParallelFX dans .NET4. Voici en français mon interprétation de la fin
de son (en) article : « En attente de nouvelles de la PDC2008 voir ce que Microsoft réserve à ParallelFX que je commence à implémenter ça dans Mono ». Plutôt bon signe non?
Liens:
Vous trouverez ici une présentation de ce qu’est ParallelFx ( http://www.techheadbrothers.com/Articles.aspx/decouverte-parallelfx ).
Les soupçons en questions sont amené notamment par ce débat ( (en) http://channel9.msdn.com/posts/Charles/Anders-Hejlsberg-and-Guy-Steele-Concurrency-and-Language-Design/ ).
Un article expliquant brièvement la concurrence (exemples en java) : ( http://blog.xebia.fr/2008/08/13/programmation-concurrentielle-notions-fondamentales/).
Articles Wikipedia sur La programmation concurrente et Les mémoire transactionnelles logicielles