Le blog francophone consacré
aux technologies Esri

Flex vs. Silverlight - Les langages


On l'a vu dans l'article précédent, Adobe a une longueur d'avance sur Microsoft pour ce qui de démontrer la capacité de Flex/Flash à répondre à des exigences de design d'interfaces utilisateur évoluées. Pour autant, l'angle choisi pour cette comparaison Flex vs. Silverlight est le développement d'applications web d'entreprise. Dans ce contexte, le coût de développement de fonctionnalités métiers parfois complexes sera de toute évidence plus significatif que les coûts inhérents au look-and feel de l'application (pour autant que chaque technologie choisie ne soit pas trop limitée dans ce domaine). C'est donc par le langage de développement que je commence véritablement cette comparaison entre Flex et Silverlight.

Les deux technologies utilisent un langage de balises XML pour décrire l'interface utilisateurs. Les listes déroulantes, boutons radio, cases à cocher, zones de texte, menus, …) sont décrit dans le langage MXML pour Flex et XAML pour Silverlight. Pour le code-behind (fonctionnalités associées aux contrôles et développement des composants métiers), chaque technologie dispose de son propre langage. Pour Flex c'est le langage ActionScript, pour Silverlight c'est un langage .Net (VB .Net ou C#).

MXML vs. XAML

MXML et XAML adressent le même besoin: définir les éléments de l'IHM et les animations graphiques associées (effets, rendus, comportements, …). MXML est relativement simple à apprendre, intuitive et assez peu verbeux. XAML est pour sa part un peu plus verbeux dans sa syntaxe et moins rigide, il est donc plus puissant mais plus difficile à appréhender.

Silverlight est conçue de manière à faire une séparation beaucoup plus stricte entre le code et la description de l'IHM en proposant des classes partielles permettant l'écriture du code-behind. En Flex, il est possible (et même assez courant) de retrouver des blocs de code ActionScript à l'intérieur du fichier MXML ce qui n'est pas aussi facilement lisible et maintenable.

Langages C# et ActionScript

C# est un langage de programmation conçu dès son origine comme un langage orienté objet. Mature et large adopté par les éditeurs de solutions logicielles, C# a été largement éprouvé pour tout ce qui concerne le développement d'applications métier. ArctionScript est au départ le langage de scripting du Flash Player pour évoluer ensuite vers un langage de programmation avec ActionScript. Pour les puristes, pour être un véritable langage orienté objet, il manque à ActionScript quelques fonctionnalités que l'on trouve depuis un certain temps dans .Net ou Java (par exemple: Private constructors, Abstract keywords, Overloading Mmethod signatures, Public getters/private setters, …).

De mon point de vue, ces manques ne sont pas essentiels car ils sont contournables. On notera simplement qu'ils peuvent rendre le code moins clair et plus difficile à maintenir. Ce qui distingue les deux langages c'est plutôt les quelques éléments listés ci-dessous:

C#
- Support du Threading
- Notions de Structures et d'Enumérations
- Linq
- Typage implicite des variables

ActionScript
- Classes et types dynamiques


Une dernière remarque concernant la comparaison des deux langages, il semble que des écarts significatifs existent entre la performance du compilateur ActionScript qui serait plus lente que celle du compilateur C# sur des applications conséquentes (100000 lignes de code). De même, il semble que l'exécution du code ActionScript soit également plus lente que le code C# (ou VB .Net). Ces informations émanent de différentes sources mais je n'ai pas testé personnellement ces deux derniers points.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: