Ceylon : le langage pour la JVM de Red Hat sort en version 1.1
Avec un lot de nouveautés pour attirer les développeurs Java

Le , par Hinault Romaric, Responsable .NET
Dévoilé en version stable (1.0.0) il y a moins d’un an, le langage de programmation Ceylon évolue avec toujours pour objectif de captiver l’attention des utilisateurs de Java, rebutés par certaines faiblesses du langage.

Les développeurs du langage de programmation viennent d’annoncer la sortie de la version 1.1 de Ceylon avec ses outils de développement, qui apporte un lot d’améliorations et des correctifs de bogues.

Pour rappel, Ceylon est un langage de programmation moderne, modulaire et disposant d’un typage statique, pour les machines virtuelles Java et JavaScript. Initié par Gavin King de Red Hat, connu dans le monde Java comme étant l'auteur d'Hibernate et du framework Seam, Ceylon se distance de Java en proposant des bibliothèques de classes plus modernes et une syntaxe favorable à la définition d’interface utilisateur.

Pour ses développeurs, Cylon dispose d’une syntaxe flexible et facilement lisible, un élégant système de typage statique unique et rare, une puissante architecture de modules et un excellent ensemble d’outils de programmation.

L’optimisation des performances était au centre des améliorations de cette version. L’IDE, par exemple, est désormais plus rapide pendant la compilation.

L’interopérabilité avec Java figure également parmi les points qui ont eu droit à toute l’attention des développeurs de Ceylon. On va noter, par exemple, une meilleure prise en charge de la variance (wildcard, use-site, inférence), modularisation (support de maven, OSGi), gestion des erreurs (la capture n'est plus limitée à Exception), énumération (comme en Java et pas seulement des singletons énumérés), etc.

Cette version apporte une meilleure intégration avec l’environnement JavaScript grâce notamment au support de Common JS Modules (requireJS, NPM, etc.) et des interfaces dynamiques (qui offrent un moyen typé pour interagir avec les types dynamiques du code JavaScript).

L’IDE qui accompagne cette version s’enrichit de nouvelles fonctionnalités, dont un meilleur formatage du code, des améliorations du refactoring, un nouvel explorateur qui offre une meilleure présentation des modules et des dépendances, la synchronisation des raccourcis clavier et bien plus.

Du côté du SDK, trois nouveaux modules ont été introduits (ceylon.promise, ceylon.locale, ceylon.logging) pour offrir l’internationalisation et la journalisation. Le module ceylon.collection a aussi eu droit à plusieurs améliorations et est désormais stable.

Ceylon 1.1 apporte également une prise en charge de Vert.x 2.1.x. Pour rappel, Vert.x est un framework open source basé sur la machine virtuelle Java pour le développement d’applications Web évolutives « event-driven ».

Ceylon 1.1 est disponible en téléchargement sur le site du projet. Les développeurs y trouveront : la spécification complète du langage qui définit sa sémantique et sa syntaxe ; les outils en ligne de commande, y compris des compilateurs Java et JavaScript ; le SDK Ceylon ; un environnement de développement complet basé sur Eclipse, et bien plus.

Notes de version de Ceylon 1.1

Télécharger Ceylon 1.1 et ses outils

Et vous ?

Avez-vous testé Ceylon 1.0 ? Que pensez-vous du langage ?

A-t-il du potentiel pour rivaliser avec Java ?

Que pensez-vous des nouveautés de cette version ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Fanvan Fanvan - Membre actif http://www.developpez.com
le 14/10/2014 à 18:33
Cylon dispose d’une syntaxe flexible et facilement lisible

And they have a plan

Blague à part, je trouve que les projets de langages alternatifs pour la machine java sont des initiatives passionnantes. Malheureusement, et sans contester les qualités intrinsèques de ces langages, j'ai du mal à m'enthousiasmer. À part Scala, qui rencontre, toutes proportions gardées, un relatif succès, qui tient surtout au soutien de Twitter, il faut bien reconnaître que ces technologies restent assez confidentielles. Y a-t-il aujourd'hui une bonne raison de consacrer du temps à apprivoiser une telle technologie ? La communauté java est immense - bien plus importante que celles de Ceylon, Groovy, Clojure, Scala et consorts, toutes dynamiques qu'elles soient. Les opportunités d'emploi sont quasi-inexistantes. Les plate-formes ciblées sont les mêmes. « Oui, mais ces langages sont plus productifs ». Peut-être. N'y a-t-il donc là que la productivité ? Et au prix de quels efforts, de quel investissement, pour un développeur java confirmé qui maîtrise déjà une plate-forme tellement plus vaste que ces Terra Incognita ? J'ai du mal à évaluer le retour sur investissement.
Avatar de 23JFK 23JFK - Membre éclairé http://www.developpez.com
le 15/10/2014 à 6:28
La puissance de java c'est surtout la doc des API officielles qui est ultra propre, ultra clair, parfaitement codifiée et organisée. La doc Ceylon est pour l'heure assez mauvaise quand elle existe, surtout s'ils espèrent se poser en alternative à java.
Avatar de Grimly Grimly - Membre actif http://www.developpez.com
le 15/10/2014 à 11:10
Ce que je vois d'intéressant par rapport à d'autre langages, c'est la possibilité de compiler son projet pour une JVM ET un environnement Javascript.
On peux donc espérer que cela puisse réconcilier les développeurs java et les interfaces web.
Avatar de Philippe Bastiani Philippe Bastiani - Membre éprouvé http://www.developpez.com
le 15/10/2014 à 11:51
Citation Envoyé par Fanvan  Voir le message
Blague à part...

Je partage totalement ton point de vue... A passionnant je rajouterais enrichissant !

Une simple recherche sur la techno Ceylon sur Github montre que le langage reste confidentiel... Ceylon aurait besoin d'une communauté (et de projets de référence) qu'il n'a pas actuellement !

Scala et Groovy sont installés depuis plus de 10ans... Effectivement, Scala a la chance d'être soutenu par Twitter, LinkedIn, Foursquare, Tumblr ou Klout. Mais comme tu le dis peut-on évaluer le retour sur investissement ?
De son côté Java intègre, à petite dose, certains concept de ces langages dits alternatifs... Ces intégrations sont peut être incomplètes voire mal foutues, mais il montre qu'il peut encore évoluer...

Au passage : qu'elle stabilité peut-on attendre d'une solution Scala, Groovy, Ceylon, ... ? Ces langages prennent le choix d'une incompatibilité de version en version or l''industrie demande des solutions pérennes...

a+
Philippe
Avatar de Logan Mauzaize Logan Mauzaize - Rédacteur/Modérateur http://www.developpez.com
le 15/10/2014 à 13:13
D'un point de vue de la popularité, Ceylon est encore extrêmement jeune. Revenez à deux ans après la création de Groovy ou Scala, ils étaient sûrement peu plébisciter. En revanche, ils ont l'avantage d'être portés par d'autres projets de plus grandes envergures comme Gradle, Grails ou Play!.

De l'aveu de Gavin King, il n'espère pas voir Ceylon en production avant les deux prochaines releases.

Remplacer Java ?
1)
Il ne faut pas oublier que Ceylon se transpile aussi en JavaScript ; il rejoint ainsi Kotlin et Fantom. A l'heure de la multiplication des projets clients et serveur en Java (RCP, JavaEE)/JavaScript(Web, NodeJS), il ne semble pas déraisonnable d'envisager ce type de solutions.
Ainsi chez mon client actuel, nous avons une multitude de produits clients et serveurs qui fonctionnent sur des technologies différentes et avoir un code écrit une et une seule fois et partagé avec tous serait bien plus agréable que de jouer au jeu des sept différences. La convergence JS est la solution la plus simple à première vue mais l'utilisation d'un langage à typage dynamique pose beaucoup de problèmes en codage et partage d'API. Ces solutions au milieu me semblent de très bon compromis.
2)
Java n'est pas seulement un langage mais une plate-forme et son écosystème. Sur ces deux derniers points, l'avantage de tous les langages alternatifs à la JVM, c'est qu'ils en profitent également ! Une librairie peut-être écrite avec n'importe quel langage, ca reste du ByteCode interprété par la JVM.
Le langage Java n'a rien d'extraordinaire. Et l'avantage des solutions comme au moins Groovy et Ceylon c'est qu'ils sont très proches (voir identique pour Groovy). On ne peut pas vraiment dire qu'ils s'agissent d'apprendre réellement un nouveau langage.
C'est à mon avis pour ces deux raisons (même plateforme, langage similaire) qu'on ne voit pas fleurir d'offres d'emploi spécifique aux langages alternatifs.

Une raison d'apprendre ses nouveaux langages ? Uniquement en fonction des besoins :
  • Comme je le citais précédemment, on peut partager du code avec des plateformes Java et JS ;
  • L'exécution dynamique de code ;
  • ou bien l'utilisation d'outils dont les APIs sont optimisés pour un langage. Par exemple : Gradle, Grails, Play!, Akka, Vert.x(?), etc.


Concernant la stabilité, il est clair qu'avec un langage aussi peu mature (seulement deux releases), il risque d'y avoir du code qui casse à chaque montée de version. Mais restons lucides :
  • En vieillissant le langage et son API se stabilisera
  • Quoiqu'on en dise, les montées version de Java se font aussi dans la douleur.

La vraie question qu'il faut se poser, c'est l'importance et l'existence des workarounds à mettre en place.
Avatar de _skip _skip - Expert éminent http://www.developpez.com
le 15/10/2014 à 13:46
Je pense également qu'il faudrait avoir un projet de qualité qui pousse en avant, comme on peut voir que Play! a poussé pas mal de gens à s'intéresser à scala. Il y aurait certainement matière à faire un truc intéressant en créant un framework web capable de tirer parti de la compilation vers javascript. Imaginez déclarer vos DTO dans un répertoire spécifique du projet et aussitôt vous retrouver avec les versions client (JS) et serveur (JVM) des mêmes classes et un moyen de passer de l'un à l'autre sans effort via JSON, il y a certainement du potentiel à exploiter.
Avatar de yahiko yahiko - Rédacteur/Modérateur http://www.developpez.com
le 15/10/2014 à 23:10
Même si je reste très dubitatif quand au succès futur de Ceylon, certains pourraient voir en ce nouveau langage "dissident" un indicateur du lent déclin de Java, désormais contrôlé par Oracle.
Avatar de Fanvan Fanvan - Membre actif http://www.developpez.com
le 16/10/2014 à 9:15
Citation Envoyé par yahiko  Voir le message
Même si je reste très dubitatif quand au succès futur de Ceylon, certains pourraient voir en ce nouveau langage "dissident" un indicateur du lent déclin de Java, désormais contrôlé par Oracle.

Mouais... Il est où, le déclin de Java ? franchement, je ne le vois nulle part. Je ne dis pas que ça ne peut pas se produire, mais, quand même... Le déclin de Java, les Cassandre l'annonçaient bien avant le rachat par Oracle. Voilà où on en est aujourd'hui. Oracle n'a rien d'une association philanthropique, mais on peut quand même leur accorder qu'ils ont fait de l'assez bon boulot pour la remise à flots technologique du langage. Java 8 n'est peut-être pas parfait, mais la direction prise va plutôt dans le bon sens.
Avatar de Logan Mauzaize Logan Mauzaize - Rédacteur/Modérateur http://www.developpez.com
le 16/10/2014 à 9:58
Citation Envoyé par _skip  Voir le message
Je pense également qu'il faudrait avoir un projet de qualité qui pousse en avant, comme on peut voir que Play! a poussé pas mal de gens à s'intéresser à scala. Il y aurait certainement matière à faire un truc intéressant en créant un framework web capable de tirer parti de la compilation vers javascript. Imaginez déclarer vos DTO dans un répertoire spécifique du projet et aussitôt vous retrouver avec les versions client (JS) et serveur (JVM) des mêmes classes et un moyen de passer de l'un à l'autre sans effort via JSON, il y a certainement du potentiel à exploiter.

Une envie de GWT ? ;-) Sinon pour info en full-JS, il y a Meteor.
En tout c'est le type de philosophie que nous envisageons avec notre client. Nous avons déjà eu quelques succès à passer par le couple REST+JSON côté serveur pour avoir des versions Web et natives iOS de certaines applications.
Côté client on aura toujours une multitude de canaux, support, etc. car c'est à l'utilisateur de choisir la façon dont il est consomme les services. En revanche, côté serveur ce sont nos choix (équipe IT) alors autant converger/centraliser tant que possible.

Citation Envoyé par yahiko  Voir le message
Même si je reste très dubitatif quand au succès futur de Ceylon, certains pourraient voir en ce nouveau langage "dissident" un indicateur du lent déclin de Java, désormais contrôlé par Oracle.

Qu'est-ce qui se meurt ? Le langage ? Ce n'est pas le cas avec tout ce qu'il y a encore de prévu. La plateforme ? Vu la quantité de langage alternatif et de produits, ca ne risque pas.
Offres d'emploi IT
Chef de projet SI confirmé (H/F)
Société Générale - Ile de France - Val-de-Fontenay
Scrum master H/F
Safran - Ile de France - Osny (95520)
Analyste SI-métier (poste également ouvert aux stagiaires, alternants et VIE du groupe)-(H/F)
Société Générale - Ile de France - Val-de-Marne

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil