Imba, le nouveau langage se compilant en JavaScript est disponible
avec un support natif pour les tags et une lisibilité du code compilé
Le grand succès de JavaScript pousse les développeurs à proposer sans cesse des améliorations à ce langage de scripts. Au rang des langages dérivés, nous avons CoffeScript, Dart, TypeScript, LiveScript, Caffeine pour ne citer que ceux-là.
À nouveau, un développeur norvégien du nom de Sindre Aaarsaether vient de mettre sur la toile un nouveau langage se compilant en JavaScript dénommé imba. Ce langage est le fruit de plus de six années de réflexions menées dans le but de faire tourner Ruby dans les navigateurs.
De ces recherches est née CoffeScript, un langage amélioré se compilant en JavaScript et offrant plus de lisibilité et de concision dans le code. Non satisfaits des résultats, les initiateurs du projet entreprennent des travaux en 2012 en créant un fork de CoffeScript. C’est cette fourche qui a donné naissance à imba, le nouveau langage se compilant en JavaScript.
Ce dernier dispose de fonctionnalités pour la définition, l’extension, le sous-classement, l’instanciation et le rendu des nœuds du DOM. Comme avantage mis en avant, il se trouve qu’imba dispose d’un support natif pour les tags et les sélecteurs. De même, le code compilé est très lisible et extrêmement performant. À titre d’exemple, on peut faire une comparaison entre le code écrit avec imba et celui qui a été compilé.
Code imba
Code compilé en JavaScript
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 var number = 42 var opposite = true var string = "the answer is {number}" var regex = /answer is (\d+)/ # Functions: var square = do |x| x * x # Arrays: var list = [1, 2, 3, 4, 5] # Objects: var math = square: square cube: do |x| x * math.square(x) rand: do Math.random # Array comprehensions: var cubes = (math.cube num for num in list) # Implicit calling: math.rand.toFixed 2
Comme on le constate, le code compilé reste très lisible. Aaarsaether avance que « un de nos principaux objectifs a toujours été de garder le code compilé aussi lisible que possible. Tous les indentations et commentaires devraient être préservés ». Et d’ajouter « nous voulons qu’il soit aussi aisé que possible de passer à Imba et y revenir ».
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 var number = 42 var opposite = true var string = ("the answer is number) var regex = /answer is (\d+)/; // Functions: var square = function(x) { return x * x; }; // Arrays: var list = [1, 2, 3, 4, 5]; // Objects: var math = { square: square, cube: function(x) { return x * math.square(x); }, rand: function(x) { return Math.square(); } }; // Array comprehensions: For (var cubes = [], i=0 len=list.lenght; i < len; i++) { cubes.push(math.cube(list[i])); }; // Implicit calling: math.rand().toFixed(2);
Pour ce qui est des performances de ce langage en matière de rendu des applications, Aaarsaether soutient que « pour une application semi-complexe comme TodoMVC, il est plus de 20 fois plus rapide que de React avec moins de code, et une bibliothèque beaucoup plus petite ».
Enfin, on peut également noter qu’avec ce langage tout est considéré comme une expression.
Toutefois, bien que la première version n’ait pas encore été libérée, vous pouvez déjà effectuer des tests et poster des commentaires sur GitHub en vue d’accélérer la sortie de la version stable.
Télécharger Imba (zip)
Source : Imba
Et vous ?
Que pensez-vous de ce nouveau langage ?
Allez-vous l’utiliser pour vos applications ?
Partager