IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Ceylon se lance à la conquête des développeurs Java
Le langage de Red Hat basé sur les points forts de Java sort en version 1.0.0

Le , par Hinault Romaric

203PARTAGES

4  1 
Les développeurs rebutés par certaines faiblesses de Java, dues entre autres à son âge avancé (environ 17 ans), ont désormais à leur disposition une alternative fondée sur ce qui a fait le succès de ce langage.

Après plus de trois ans de développement, Red Hat vient de dévoiler la version stable de Ceylon 1.0.0, son langage de programmation open source, conçu pour concurrencer directement Java.

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 son auteur, Ceylon est un langage orienté objet facilement compréhensible avec un typage statique. Parmi les atouts-clés de Ceylon, on note :

  • un accent mis sur la lisibilité et un penchant pour l’omission et l’élimination des parties potentiellement nocives ;
  • un système de type extrêmement puissant, qui combine sous-type et polymorphisme paramétrique ;
  • un traitement unique des fonctions et des types tuple, permettant une abstraction puissante ;
  • une syntaxe flexible ;
  • des types génériques entièrement réifiés, à la fois pour la JVM et les machines virtuelles JavaScript.



Ceylon 1.0.0 dispose d’un compilateur qui peut produire soit du bytecode Java ou JavaScript. Ce qui suppose que le même code peut s’exécuter sur une JVM ou sur un environnement d’exécution JavaScript comme Node.js.

Ceylon 1.0.0 est accompagné de son SDK, qui dispose de nouveaux modules ceylon.build (un framework pour l’écriture des scripts de compilation en Ceylon) et ceylon.html (une bibliothèque pour définir du contenu HTML en Ceylon).

La version 1.0.0 de l’environnement de développement de Ceylon est également disponible. Basé sur Eclipse, l’EDI supporte l’autocomplétion, le refactoring, la compilation incrémentale, etc. Certaines fonctionnalités ont été améliorées comme la vue hiérarchique des types, la coloration syntaxique et la recherche.

Le code source de Ceylon est disponible en open source sur GitHub.

Red Hat planche déjà sur la version 1.1, dont la feuille de route a été divulguée. L’attention de la société portera essentiellement sur des améliorations des performances du langage, de son compilateur et de son SDK.

Les outils liés au langage

Télécharger le SDK de Ceylon

Télécharger le code source de Ceylon sur GitHub

Télécharger l'EDI de Ceylon

Source : Le site du projet

Et vous ?

Que pensez-vous de ce langage ? Allez-vous l'adopter ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Olfredos6
Membre du Club https://www.developpez.com
Le 14/11/2013 à 12:44
Que pensez-vous de ce langage ?
Allez-vous l'adopter ?
Si c'est réellement du java++, il est le bienvenu. Sinon c'est encore très tõt pour juger....
1  0 
Avatar de professeur shadoko
Membre chevronné https://www.developpez.com
Le 14/11/2013 à 13:05
Citation Envoyé par Hinault Romaric Voir le message

[*]un accent mis sur la lisibilité et un penchant pour l’omission et l’élimination des parties potentiellement nocives ;
curieusement je ne connais pas de créateur de langage de programmation qui ai fait des études systématiques et fondées sur la notion de "lisibilité".
chacun trouve son langage "lisible" sur des bases purement personnelles liées à son histoire... l'ergonomie de la programmation reste, à mon avis, un sujet peu étudié.
autre point: je trouve que beaucoup de langages accumulent des concepts parcellaires certes intéressant mais on voit peu de grandes lignes de force. Certes java est aussi un produit d'hybridation ... mais j'ai beaucoup d'espoirs sur la nouvelle notion de "stream" de java 8: on a là un paradigme (pas nouveau: il est sous-jacent dans pas mal de shells) qui pourrait bien se combiner avec des approches objets pour créer vraiment quelque chose de marquant.
1  0 
Avatar de tchize_
Expert éminent sénior https://www.developpez.com
Le 14/11/2013 à 14:34
Citation Envoyé par Hinault Romaric Voir le message
Ceylon se lance à la conquête des développeurs Java
Pour son auteur, Ceylan est un langage orienté objet facilement compréhensible avec un typage statique.
Faut savoir, c'est long ou c'est lent? Rien qu'avec la blague "Ceylon à programmer", ils risquent d'avoir beaucoup de mal à obtenir du succès en francophonie
1  0 
Avatar de Carhiboux
Expert éminent sénior https://www.developpez.com
Le 14/11/2013 à 15:55
Citation Envoyé par Hinault Romaric Voir le message
Les développeurs rebutés par certaines faiblesses de Java, dues entre autres à son âge avancé (environ 17 ans), ont désormais à leur disposition une alternative fondée sur ce qui a fait le succès de langage.
Je vois pas en quoi l'age est une faiblesse.

Et surtout, c'est pas comme si la dernière version de Java datait d'il y a 17 ans non plus...

Ou comme si la communauté était morte il y a 17 ans.

Ou que les gros frameworks n'étaient plus maintenus depuis 17 ans.

Java à des faiblesses, certainement, mais je ne vois pas bien en quoi cela peut être rattaché à l'age de ce langage...

Cobol date de 1959, C de 1978 (K&R), C++ des années 1980, ...
1  0 
Avatar de Traroth2
Membre émérite https://www.developpez.com
Le 14/11/2013 à 17:43
Citation Envoyé par Carhiboux Voir le message
Je vois pas en quoi l'age est une faiblesse.

Et surtout, c'est pas comme si la dernière version de Java datait d'il y a 17 ans non plus...

Ou comme si la communauté était morte il y a 17 ans.

Ou que les gros frameworks n'étaient plus maintenus depuis 17 ans.

Java à des faiblesses, certainement, mais je ne vois pas bien en quoi cela peut être rattaché à l'age de ce langage...

Cobol date de 1959, C de 1978 (K&R), C++ des années 1980, ...
Plutôt que l'âge de Java (C, C++, Objective C, Python, PHP ou Erlang sont tous plus vieux), c'est plutôt la vitesse d'évolution qui pose un problème : 5 ans entre Java 6 et Java, tout ça pour un pétard mouillé, Java 8 repoussé plusieurs fois et certaines fonctionnalités encore repoussées à Java 9, ça commence à faire beaucoup !
Java 8 devrait (enfin) apporter des closures en Java, et beaucoup de gens imaginent déjà faire de la programmation fonctionnelle en Java. Ca sera de la programmation fonctionnelle sans objets immutables et sans tuples, dans ce cas. Autant dire que ce ne sera pas encore Erlang...

Pour les objets immutables, il y a bien la JSR 305, mais son intégration à Java SE, qui était initialement prévue pour Java 7, semble ne plus du tout être à l'ordre du jour, et la page sur le site du JCP indique que cette JSR est en sommeil. Une annotation @Immutable ne serait d'ailleurs sans doute pas suffisante, tant il est difficile de garantir qu'un objet Java est bien immutable. Il faudrait un véritable modificateur immutable, mais ça, ça demanderait des modifs assez importante de la JVM et du compilateur.

Quant aux tuples, rien n'est prévu, à ma connaissance...

Concernant Ceylon, d'aucuns vont dire "encore un nouveau langage"... Mais s'il y a des bonnes idées, c'est une bonne chose.
1  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 15/11/2013 à 8:46
Pour avoir suivi le langage depuis son annonce y'a quelques années. Je trouve qu'il a des arguments. Contrairement à d'autres langages sur la JVM qui se sont focalisés sur plus de features, plus de concepts, plus d'opérateurs, plus de syntaxes etc... Ceylon s'est vraiment concentré sur plus de sécurité.

Avec la distinction entre variable et valeur et référence nullable ou non, le renoncement à la visibilité "protected", je trouve qu'ils nous proposent quelque chose d'intéressant et d'effectivement lisible. Si je vois une méthode qui retourne un String? je sais tout de suite que ça peut être "null" et le compilateur ne laisse pas utiliser la valeur sans test préalable.
Donc ça donnerait des librairies avec des APIs très propres et très lisibles et pas de surcharge à tout va puisqu'on ne peut overrider que ce qui est prévu de l'être. Les union types et les tuples sont aussi des additions sympathiques, et de nouveau leur usage est très encadré par le compilo.
La stratégie de venir avec un IDE de référence abouti et du typage statique qui, on le sait, donne le plus de possibilité pour le tooling, notamment le refactoring, n'est pas non plus du hasard. Ca montre que les auteurs veulent disposer d'un outillage au moins d'aussi bonne qualité que java.

Donc perso, même si je vais sûrement pas m'en servir de sitôt, ceylon me donne l'impression d'être fait par des gars qui ont l'habitude de maintenir des grands projets avec des équipes de développeurs de niveaux inégaux. Des mecs qui connaissent les réalités de l'industrie et qui savent qu'on passe énormément de temps à LIRE du code (et pas malheureusement pas que le sien). Tout est fait et pensé pour un maximum de détection d'erreur lors de la compilation. C'est pas comme d'autres langages faits par des universitaires dont l'objectif principal est d'économiser des retours chariots en faisant des one-liners dans leur emac. Vous voyez, ces langages avec des avalanches de features orthogonales, plein de nouveaux opérateurs cryptiques, qui vous donnent du code style ASCII art compilable qui met des minutes à compiler.

En gros, c'est pas dans ceylon qu'on trouve le plus de nouveautés, et ce n'est pas avec lui qu'on va économiser la molette de la souris pour scroller. Par contre du côté sécurité du code et maintenance, c'est pas bidon.
Donc y'a deux ou trois trucs qui me dérangent, notamment sur les types disponibles (élimination des short et bytes, quoi que ce dernier ils parlaient de l'introduire car il est quand même trop nécessaire pour tout ce qui est IO et sockets), mais globalement je le redis, je trouve que c'est chouette pour un nouveau langage de s'appuyer sur l'existant et de l'améliorer plutôt que de vouloir juste plus de features et moins de lignes de code.
1  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 22/11/2013 à 8:52
Tout comme Nemek (et Traroth2 il me semble...), je n'attends plus grand chose de java et du JCP. Tout ce que je sais, c'est que dans la version prévue en 2014 il n'y aura toujours pas les features dont j'espérais me servir en 2009, toutes repoussées aux calendes grecques. Et c'est sans compter l'impossibilité de remise en question de l'existant.

Je suis un peu étonné que ce projet ne suscite aucun enthousiasme sur DVP, juste des jeux de mots sur le nom ou des "encore un nouveau langage". C'est clair que c'est nouveau, et jeune, etc... Mais ça débarque avec un IDE de référence basé sur eclipse bien complet (autocomplete, navigation, refactoring), une spécification complète et à jour et un système de module et de gestion de dépendances directement pris en charge au niveau langage (et non au niveau d'un build system ce qui limite déjà le besoin de recourir à ceux-ci).
Y'a peu de nouvelles technos qui se pointent avec autant de choses. Quand je vois les similarités avec java, perso plutôt que me dire "oh c'est nul c'est pas révolutionnaire", je me dis plutôt "le prix du ticket d'entrée pour le javaïste sera faible" et cela pour des gains potentiellement très intéressants.
Ailleurs sur le net, et sur la mailing list du projet, les gens sont assez positifs, ont des idées, proposent des projets... Bref il y a sans doute un potentiel, perso ça me laisse pas indifférent.
1  0 
Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 14/11/2013 à 14:23
On peut douter qu'il réussisse a s'imposer. Pour faire la différence, il faut une réel différence soit dans la simplicité de codage, soit dans la rapidité d'exécution, soit dans la sécurité, idéalement un peu partout. Actuellement on a Python/PHP pour la simplicité, C/C++ pour la rapidité et Java pour l'aspect sécurité grâce à la JVM.

A priori les points de Ceylan absolument nécessaire sont :
- Open-Source (Comme Java) et est promu par un poids lourd : Red-Hat
- Peut tourner sur une VM Java puisqu'il se compile en ByteCode
- Est moins verbeux que Java et plus souple.

S'il veut vraiment faire la différence, a mon avis, c'est dans l'analyse et la compilation du code que cela peut se faire en optimisant le code pour alléger le travail du garbage collector.
0  0 
Avatar de pcaboche
Rédacteur https://www.developpez.com
Le 14/11/2013 à 15:22
Citation Envoyé par tchize_ Voir le message
Faut savoir, c'est long ou c'est lent?
Les deux mon capitaine !

Ceylon (en Anglais) ou Ceylan (en Français) désignent l'ancien nom du Sri Lanka, ancienne colonie Britannique réputée pour son thé (et aussi pour sa cannelle). D'où le terme "thé de Ceylan" ("Ceylon tea").

Sachant que Java est un mot d'argot pour désigner le café en Anglais (d'où la tasse dans le logo de Java ou le terme "java bean" ("grain de café"), pour faire la distinction Red Hat a choisi le nom d'un thé (Ceylon).

Malheureusement, c'était sans compter sur les jeux de mots trollesques qu'autorise la langue Française ("c'est long, c'est lent, ou les deux ?"...

À la réflexion, ils auraient sans doute dû choisir autre chose. Oolong peut-être ? (en plus il y a OO dans le nom, pour "Object-Oriented"...).
0  0 
Avatar de horn37
Candidat au Club https://www.developpez.com
Le 14/11/2013 à 15:22
Petite erreur sur le nom de celui qui a initié le projet, ce n'est pas "Davin King" mais "Gavin King"

De même, ce n'est pas "Ceylan", mais "Ceylon"

0  0