Crédit photo JD Hancock
Il souffle une petite brise d’excitation dans le microcosme Java depuis quelques mois. Non, ce n’est pas la sortie de Java 7, aussi attendu que la prochaine coupe de cheveux de Lady Gaga. Je souhaite plutôt vous parler des nouveaux langages qui tournent sur la JVM : Kotlin, Ceylon et consorts. Il y a du bon, il y a des choses à regarder, et nous allons en parler ce matin.

Ceylon

Tout commence par une « non-annonce » lors d’une conférence en Asie par Gavin King, développeur chez JBoss Red Hat, l’un des fondateurs du framework Hibernate. Si vous ne connaissez pas Hibernate, merci de reposer ce blog où vous l’avez trouvé et de reprendre une activité normale. Au printemps 2011 donc, Gavin King à InfoQ China, annonce qu’il travaille sur Ceylon. Il s’agit d’un nouveau langage pour la JVM, non pas destiné à remplacer Java, mais à proposer une approche différente.

Voici tout d’abord le classique Hello world en Ceylon :


doc "Print a personalized greeting"
void hello() {
    String? name = process.arguments.first;
    String greeting;
    if (exists name) {
        greeting = "Hello, " name "!";
    }
    else {
        greeting = "Hello, World!";
    }
    writeLine(greeting);
}

Un développeur Java « moyen » ne doit pas avoir de soucis pour comprendre ce code je pense. C’est l’un des premiers intérêts de Ceylon : le ticket d’entrée se veut assez bas, afin que la majorité des développeurs Java soit efficace en quelques jours.

En Java, une variable peut être null. En Ceylon, la gestion s’effectue avec un type précis, un « ad-hoc union type » de type T|S. Un type qui peut donc contenir soit T, soit S. La définition du type Optionel est donc Nothing|X. Ceylon permet d’abréger cela en X?. Ce principe ajoute donc la possibilité de gérer les cas où votre valeur est null avec un type simple. En Scala, nous utilisons Option et l’approche peut être un peu plus fonctionnel qu’avec Ceylon.

Selon un post de Gavin King publié fin juillet 2011, le langage devrait pouvoir proposer un environnement complet d’ici à la fin de cette année. On espère en entendre parler à Devoxx 2011.

Liens :
Introduction à Ceylon
Scala, Ceylon, Kotlin, let’s start by being honest est un post au vitriol contre les baby-langages. Lisez aussi les commentaires.

Kotlin

Kotlin est aussi un nouveau langage pour la JVM, développé par les équipes de JetBrains. Cet éditeur fournit un bon paquet de bons logiciels comme IDEA IntelliJ ou ReSharper. Le premier point qui semble évident : au moins nous aurons un éditeur de code capable de supporter ce langage parfaitement. Ce qui en soit, est une bonne nouvelle. Ne passez-vous pas plus de 8h par jour dans votre IDE préféré ?

fun main(args : Array) { 
    for (name in args) println("Hello, $name!") 
}

L’objectif de Kotlin est de couvrir les manques de Java, que ce soit sur la gestion des null ou en prenant l’option des exceptions non-checkées comme en Scala. Kotlin ajoute aussi la réification des génériques pour renforcer le typage à l’exécution ou proposer des collections sur des Objets natifs. En Java, vous ne pouvez pas créer une List, ce sera une List avec le coût de création des objets. Scala 2.8 supporte la notion de réification d’une certaine manière avec l’apport des Manifests (lisez cet excellent article).

Crédit photo FlickR http://www.flickr.com/photos/st3f4n/

De nouveaux langages pour la JVM c’est bien non ?

Je ne sais pas si nous pouvons parler de déferlement de nouveaux langages, mais il se passe des choses sur la JVM. Il est maintenant clair pour tout le monde que la JVM est un outil très puissant, qui permet de faire tourner un grand nombre de langages, autre que Java.
Ces nouveaux langages, avant de changer quoique ce soit, permettent à la communauté de faire l’effort d’apprendre et de regarder de nouveaux concepts. Personnellement, je vois ces langages comme des PomPom-Girls qui nous permettront d’être meilleur et de mieux comprendre des concepts plus avancés.

Car il faut bien le reconnaître : nous ne sommes pas très bon.

Nous, Javaistes, nous sommes par contre très productifs. Prenez l’industrie de l’informatique dans le monde de l’entreprise : Java et .NET partout. Nous sommes les rois des frameworks et des outils, les champions des conférences et des JUG. Il y a 19 associations en France de développeurs Java, une seule à Paris pour .NET et il y a un irréductible gars qui fait du Python, mais qui vient souvent aux JUGs.
Oui, sur ce point nous sommes bons : faire des spécifications, construire des logiciels, mettre des cravates et produire des logiciels qui vont en production. Gardez cela en mémoire, nous y reviendrons.

Par contre, à force de penser que nous sommes les meilleurs, ce qui reste à prouver, nous avons pris du ventre. Et plus les années passent, et moins nous avons envie d’apprendre de nouvelles choses. Le fait d’être arrivé en haut de la chaine informatique dans l’industrie nous cause du tord : nous ressemblons à un big-fat-american et nous avons perdu le goût d’apprendre.

C’est pour cette raison que ces langages, et ensuite les blogs, puis les conférences seront utiles pour notre communauté. Voyez Kotlin, Ceylon et ses amis comme une bonne grosse liposuccion.

Oui mais…

Oui mais nous pouvons déjà tirer quelques observations de tout ceci :
– il existe déjà d’autres langages prêts à être utilisé, le premier pour moi est Scala
– développer un langage coûte beaucoup d’argent
– Java 7 et 8 n’a pas dit son dernier mot, et reste piloté par Oracle
– lancer un langage en pensant faire « plus compliqué que Java mais plus simple que Scala » est assez débile en soit
– les développeurs Java sont des grosses feignasses, mais ça on l’a déjà dit

Scala est là, avec des livres, des formations et de nombreux articles pour apprendre. Langage mature, je suis séduit par l’équipe qui le développe. Comprenez que si vous êtes un génie, ce ne sera pas suffisant pour développer un bon langage et une communauté. Scala aujourd’hui est porté par TypeSafe, une entreprise dirigée par Martin Odersky. Fondateur de Scala, il a travaillé sur la JVM et il connaît bien mieux que tout le monde son fonctionnement. Par ailleurs, pour avoir été professeur à l’Ecole Polytechnique Fédérale de Lausanne, c’est vraiment quelqu’un qui travaille avec une équipe d’informaticiens de haut niveau. Jonas Bonér qui a écrit Akka l’a rejoint. Si certains fantasment devant Ceylon et sa simplicité, moi je fantasme sur le niveau de l’équipe. Et des investisseurs. TypeSafe n’est pas RedHat : c’est un éditeur créé uniquement pour Scala.

Développer un langage coûte énormément d’argent. Plusieurs millions de dollar. Quel retour sur investissement pour JetBrains ? Quelques licences d’IDE en plus ? Mais ce ne sera pas suffisant pour financer le développement d’un langage comme Kotlin. Il sera nécessaire d’ouvrir à la communauté le code, comme pour Ceylon. L’espoir peut venir de la communauté open-source, mais j’ai des doutes. Terminé le temps où un développeur bien gentil codait pour vous, du fin fond de l’Alsace. Aujourd’hui ils veulent être salariés et en télé-travail, ce qui se comprend. Bref j’ai un doute sur la capacité à financer ces développements, que ce soit RedHat pour Ceylon, ou Jetbrains pour Kotlin. Attendons de voir.

Java 7 ne fait pas beaucoup de bruit mais il est là. Vous pouvez fantasmer autant que vous voulez, il est possible d’écrire et d’aller en production avec Java 7 les amis. Et je ne pense pas qu’Oracle va laisser tomber la poule aux oeufs d’or. Finalement, si le mammouth accélère, je me demande même s’il ne fera pas qu’une bouchée de Ceylon et Kotlin. Car oui, Ceylon est mieux. Mais le souci c’est que la communauté ne prendra pas le temps d’aller voir. Croyez-moi, le danger pour ces petits langages (en terme de déploiement) vient directement de Java lui-même.

Le FUD qui entoure parfois l’évangélisation de nouveaux langages est intéressant. Scala est mieux que Java qui est un mammouth. Ceylon est peut-être mieux que Scala, Gavin King dit simplement sur son blog ceci :

Scala is an interesting language and it’s one of several languages that influenced Ceylon. We looked closely at Scala, but we collectively concluded that it wasn’t the right thing for us. Personally, I find that Scala’s type system is simply more complex than I want or need, with several features I think actually harm understandability/readability, and I find its syntax a bit of a dog’s breakfast. (Oh and I guess there’s way too much use of cryptic punctuation where words would be clearer and more readable.)

We’re trying to live with a lot less language features than Scala. Leaving stuff out is, in and of itself, often a Good Thing. And we think it’s important to have a very regular, visually pleasing, readable syntax.

Interestingly, Scala takes much more from ML/Haskell than Ceylon does, but whereas I think I can imagine myself getting into writing code in Haskell or even ML, I just don’t feel the same way about Scala. I guess I just really don’t feel that the whole language really « hangs together » the way Smalltalk or Haskell hang together.

But look, that’s just a very personal view, and I simply don’t want to get into criticizing Scala or arguing back and forth about specific language features. Ceylon is a quite different language and stands or falls on its own. And clearly Scala has one incredible selling feature that we simply can’t match right now: an actual working compiler 😉

Je le redis donc : lancer un langage sur la base du débat « simple/compliqué » est complètement stupide. Vous savez comme moi qu’il est possible de faire des choses compliquées en Java, mais que cela ne représente pas la majorité de notre travail. Idem pour Scala : il est possible de bien travailler et la complexité n’est pas nécessaire, quoiqu’en pensent certains.

Enfin soyons bien sport pour terminer : nous sommes des grosses feignasses. Nous avons passé beaucoup de temps à apprendre le langage, puis les différents frameworks autour de Java. D’ailleurs l’une des raisons de notre succès en entreprise : nous sommes habitués à utiliser de bons outils, comme JEE avec JPA, ou l’IoC avec Spring. Reconnaissons qu’en dehors du langage, nous avons tous une bonne maîtrise d’un gros paquet d’outils.

Et c’est là que je vois un souci. Est-ce que la motivation sera suffisante pour aller ré-apprendre à utiliser ces nouveaux frameworks sur ces nouveaux langages dans 10 ans ? Car ne croyez pas qu’il y aura un serveur d’application ou un framework web d’ici 12 mois avec ces nouveaux langages. La question n’est pas le WHAT mais le WHY.
Pour quelles raisons/motivations/intérêts dois-je apprendre ce nouveau langage ?

Finalement, notre côté conservateur est vraiment ce qu’il faut à une entreprise utilisatrice. Si j’étais un gros assureur, je refuserai de jouer la carte « Ceylon » ou « Kotlin » au risque de ne pas trouver de ressources.

Et Scala ?

Je crois sincèrement qu’il faut s’y mettre. Bien plus que Ceylon ou Kotlin ou MachinChose. Posez vous cette question : si vous n’avez pas eu le temps/l’envie de regarder Scala, pour quelles raisons regarderiez-vous ces nouveaux langages ? Quels outils utilisent les compagnies qui font de l’informatique ? Pourquoi la finance s’intéresse aux profils Scala ?

Vous le sentez le petit vent qui passe ? Celui du changement ?

Liens
http://ochsenreither.posterous.com/scala-kotlin-ceylon-lets-start-by-being-hones
Ceylon, Interesting for the wrong reason

Ceylon JVM Language sur InfoQ
FAQ What is Kotlin ?
It is possible for Scala to have reified generics without changing the JVM ?
Sources des photos de l’article, regardez le boulot de cet artiste c’est excellent.

19 réflexions sur « Une petite brise, un gros vent »

  1. Ca fait vraiment plaisir de lire ça, et surtout la conclusion.

    Je ne comprends pas comment certaine personne peuvent avoir subitement un interet énorme pour ces languages (dont aucun n’est réelement utilisable) alors que Scala exist depuis plus de 6ans et qu’il n’y sont jamais intéresser!

    Le plus gros problème reste la flemmardise imo.

    Très bon résumer de la situation, merci pour ce poste de qualité.

    A+

  2. Hello,

    C’est clair que ceylon et kotlin me laissent circonspect.

    Clairement la justification du développement de « Yet another language » est pas évidente.
    Chacun prend un set différents de features qui existe déjà ailleurs, pour les réarranger à sa sauce (la plupart du temps seul la syntaxe change). Mais il y’a rien de vraiment innovant…

    Quand on regarde l’argumentation des créateurs de ces language, quand on leur demande comment ils se comparent à scala (ou autre), les réponse sont pour le moins décevante.
    (a savoir: la syntaxe de scala est caca, et scala caytrokompliké lol)

    La syntaxe est un argument idiot, on trouve Java plus lisible simplement par habitude.
    Concernant la complexité, il faudrait aussi prendre garde à ne pas confondre simple et simpliste.
    Pour moi le plus grand travers de Java, c’est que le language est «  » » » » » »trop simple » » » » » » »

    Posez vous la question:
    – Pourquoi je met Spring dans mon projet ? (et je détecte des erreurs qui devrait être gérées par le compilo au runtime….)
    -> parce qu’il n’y a pas d’héritage multiple, ni de module / mixin dans Java
    – Pourquoi JPA
    -> parce que Java n’offre pas les outils qui permettent de mapper les résultats d’une requête SQL simplement
    – Pourquoi je me fais encore ch*** avec des « for(toto: fuckingList) » alors qu’une api List digne de ce nom m’éviterai ça (ahhh map, flatMap, collect, filter, groupBy, sortWith, etc. je vous aime….)
    – Pourquoi je met des if(machin == null) partout dans mon code ???
    -> Cf: Null References: The Billion Dollar Mistake et Option de scala, ou Maybe de Haskell
    – Qui peut penser faire « monbigint.add(new BigInt(4)) » est plus simple que « monbigint + 4 » ???
    – Pourquoi je copy/colle du code pour faire une implémentation de Observable ? (bordel, mais donnez moi un moyen de mutualiser du code (et pas un workaround pourris genre délégate codé a la mimine)) (et non l’heritage ça ne sert pas à mutualiser du code, merci.)

    Simplement parce que Java se veut simple (et franchement Java n’est pas si simple, Cf: les erreurs bizarres des types génériques, la présence des types primitifs, les bizarreries genre « pour lancer la méthode run, je fais thread.start », an so on), on construit des pattern / frameworks complexes pour contourner la pauvreté du langage (Spring, JPA, Maven…).

    Alors oui, il faut se remettre en question, sortir de sa tour d’ivoire et regarder ce que les autres communautés font autour, admettre que, des fois, un truc que l’on fais depuis X années est complètement idiot, et ça c’est pas facile.
    Mais chacun doit faire sont choix, évoluer, ou bien camper sur ces positions. Les javaistes sont en train pour la plupart de marcher sur les traces des cobolistes. Dans 30 ans ils travailleront sur les même programmes qu’a leur début, avec les même techno, et les jeunes dev se fouterons de leur gueule.

    jto

  3. Hello, une question, et une remarque.

    Est-ce que Scala est enseigné dans le supérieur en France ? Finalement, c’est un langage idéal pour ses facultés « 2 en un » FP+OO et il pourrait remplacer avantageusement CAML ? Avoir des livres sur un langage ou un framework, c’est indispensable, mais avoir des jeunes formés, ni chauves, ni ridés, c’est mieux…

    La remarque, c’est qu’en entreprise, choisir Scala, c’est quand même encore quelque chose qui engage plus que sa simple personne. Autant on peut individuellement faire entrer Groovy en périphérie, par exemple pour du scripting qu’on aurait fait en Perl, autant Scala, ce n’est pas anodin, et à mon avis cela relève du choix d’entreprise (les développeurs Scala sont … rares).

    Paradoxalement, je pense que ce qui peut faire décoller Scala, c’est une émancipation de la JVM, justement. Le fait que le portage du compilateur sur .Net ait été relancé récemment va peut être faire du bien à Scala, car c’est un facteur positif d’adoption.

  4. Merci Nicolas, excellent post et à 100% d’accord avec toi, surtout sur l’interêt croissant de scala pour les métiers de la finance de marché. Maintenant attendons voir qu’il tourne en un autre FUD anti scala, comme ça finit souvent.

  5. Article intéressant…
    Scala est là depuis longtemps mais on peut dire merci aux « nouveaux » langages sur la JVM grâce auxquels on commence a beaucoup parler de Scala…
    P.S. Martin Odersky est toujours professeur à l’EPFL…

  6. Sympa l’article ! IMO c’est une question de point de vue. J\aurai tendance à penser que l’évolution est bénéfique, pourtant j’ai cet arrière goût d’effet d’annonce et de hype.

    Depuis quelques années, il y a une explosion de langages, de frameworks, un danger moulte fois évoqué dans la communauté Java, la dispersion. Même les consultants et autres javaistes visibles sur le web donnent l’impression de ne pas pouvoir s’empêcher de twitter ou blogger sur la dernière découverte du jour plutôt que d\’approfondir un concept. D’ailleurs, pourquoi avoir fait un article sur ces embryons de langages qui de toutes façons aliment les débat depuis leur sortie ?

    Tout bon informaticien est conscient que sa vraie valeur ajouté se trouve dans l’apprentissage rapide et hétérogène, mais là pour ces 2 nouveaux langages, il me semble trop opportuniste de les regarder en détail avant 2 ou 3 ans, le temps qu’un tooling et un écosystèmes de frameworks apparaissent.

    Questions bonus : Que foutre avec ces choses comme Clojure, Haskell ? Est-ce que je fais du Web 99% du temps ? Est-ce que je peux travailler en équipe de manière professionnelle, avec ce que j’écris (lisibilité, support tooling, modularité, découplage, CI, deps, testabilité, productivité…) ? Est-ce que je dois jeter l’infra payée 100000$$$ de serveurs java ? Pourquoi la communauté Scala semble tirer à vue sur ces langages (et parfois d’ailleurs sur Groovy qui ne demande rien et qui se porte trés bien lui aussi merci d’avoir demandé :p) ?

  7. Salut,

    J’ai bien apprecié cet article. J’aime surtout l’image des pom-pom girls qui nous aident de comprendre une nouvelle langue:

    2,4,6,8 Who do we appreciate? Kotlin et sa réification de génériques et gestion des objets nulls. Yaaaayyyyy!!

    Belle image.

    Il y a un mot qui me vient chaque fois les gens parlent d’autres langues: Ecosystème. Ton nouveau truc est formidable. Je peux le compiler. (Même pas actuellement pour Kotlin & Ceylon). Mais est-ce que connecter à une base de données? Est-ce qu’il y a des web frameworks qui marchent avec? Est-ce qu’il y a un IDE? Est-ce qu’il marchent avec hibernate? Spring? Soap? XML? Est-ce le compilateur fait du dual-compilation avec Java?

    Tout ça prends du temps pour stabiliser.

    Une langue pourrait être utile pour un nouveau projet, mais les autres projets qui utilise Java, Hibernate, Spring, etc. doivent interagir avec.

    Pour moi, Scala est en train de devenir utile pour les projets d’entreprise. Groovy aussi. Mais je ne sais pas combien de temps qu’il faudrait avant que Kotlin ou Ceylon soient utile.

  8. J’ai passé une bonne partie de l’été a découvrir les bases de scala. Passé les bases j’ai voulu mettre en application, j’ai pris une lib « réputée » pour utiliser des idiomes scala (databinder dispatch) et j’ai essayé de faire un truc un tout petit peu plus complexe que l’exemple de la première page de la doc :

    h(url("http://www.scala-lang.org/") >>> System.out)

    J’ai donc tenté de lire la scaladoc surtout pour comprendre quelles opérations je pouvais bien faire je vous laisse admirer et essayer de comprendre une définition prise au hasard:

    def >+> [T] (block: (HandlerVerbs) ⇒ Handler[Handler[T]]): Handler[T]
    Chain two request handlers. First handler returns a second, which may use values obtained by the first. Both are run on the same request.

    http://databinder.net/dispatch-doc/#dispatch.HandlerVerbs

    les autres sont dans le même style, franchement pour l’instant j’ai abandonné.

    Et au risque de déplaire à notre hôte: je ne vois rien de « beau » dans

    .as( Post ~< User ^^ flatten * )

    Il y a une raison pour laquelle tant de gens détestent le Perl, c’est la même raison qui fait que la plupart des gens sont incapables de relire du code Perl qu’ils ont écrit six mois avant.

    Bref je vais continuer d’étudier Scala mais pour l’instant, autant j’aime le langage autant je trouve la scaladoc assez difficile à lire et les libs idiomatiques complètement incompréhensible.

    On dira ce qu’on veut mais en java les libs qui sont les plus utilisées sont celles qui permettent d’écrire du code facile à relire.

  9. Je suis entièrement d’accord sur tous les points évoqués dans l’article. Le problème de la veille, c’est qu’on se retrouve bien vite avec 3 millions de trucs à étudier, et il est bien difficile de savoir si oui ou non la technologie va perdurer. Du coup, certains ont tendance à se réfugier dans la facilité et à se dire que de toute manière, rien ne percera. « Yet Another Language ».

    Je suis à titre personnel convaincu que Scala va percer (non pas remplacer Java mais compléter sa simplicité), et que se réfugier derrière son apparente complexité n’est pas la solution (d’autant qu’une fois que les concepts clé sont acquis, le confort de code est inégalable). Il suffit simplement d’accepter (et / ou d’avoir le temps) de réapprendre un paradigme (d’ailleurs les experts LISP qui se faisaient traiter de vieux cons has-been à tout bout de champ doivent bien rigoler). Les opérations orientées « fonctionnel », et les actors hérités de Erlang…..on reprend un certain nombre d’ingrédients sympas dans différentes recettes, on mixe tout, et on obtient Scala.

    Ceci étant, ce serait bien d’avoir un « vrai » framework web à se mettre sous la dent. Lift me fait envie, mais là par contre, on peut vraiment parler de complexité. Play et le module, je les pratique en ce moment, et en l’état actuel des choses je suis vraiment pas convaincu (oui je sais, faut’ attendre la 1.0). Il manque un certain nombre de choses, et ça ne me semble pas tout à fait « ready for production ». Et après, il existe une pléthore de frameworks plus ou moins intéressants……………….ou pas. A voir.

  10. @Trs80
    D’abord, super nom:)
    Appelles moi ZX81 😉 Parce que Pet c’est plus ambigu

    Sinon : « Est-ce que Scala est enseigné dans le supérieur en France ? »
    Oui à une école de Telecom (Télécom ParisTech je crois) par Samuel Tardieu, un gars assez formidable, en tout cas de ce que je connais de son twitter et de son blog https://twitter.com/#!/rfc1149
    Je l’ai connu par ce post là qui expliquait beaucoup de choses sur facebook, ses api, comment se désinscrire, et comment tout est concrètement fait pour freiner ça.

    Pub gratuite, je ne le connais ni d’Eve ni d’Adam, sauf par internet

    PS : Gavin King et beaucoup d’autres parle de « post-java »
    Rien que d’en parler montre qu’on y est.
    ça correspond aussi , économiquement, à un recherche de nouvelles voies, de nouveaux débouchés, à de plus petites structures plus innovatrices, bref à un nouvel élan. Le « petit vent » dont tu parles, même économiquement il se justifie

    (Voilà, tout à l’heure je lirai l’article 🙂 )

  11. Je suis tout à fait d´accord avec le fait que Scala est là, maintenant, marche et peut être utilisé en prod. Après tout Scala a quand même 8 ans, donc c´est normal à ce niveau, le contraire aurait été décevant.

    Je suis aussi d´accord avec le fait que Ceylon et Kotlin sont difficilement évaluables en tant qu´options, vu que rien n´est encore sortit de concret, et même quand ils sortiront ils ne seront pas prêts pour la prod, loin de là, on aura une bonne période de décantation. Ceci dit, si les gens utilisent Ceylon ou Kotlin en prod avant 8 ans ça sera déjà un bon signe de succès 🙂

    Après voila, dire que votre appli utilisera Ceylon ou Kotlin en 2012 en prod ça me semble pas seulement un mensonge, mais surtout inutile.

    En 2012 vous pourrez utiliser Java ou Scala en prod, et évaluer/apprendre/contribuer à Ceylon ou Kotlin si vous trouvez que le langage est attirant.

    Après les syntaxes, les features, tout ça c´est une question de goût aussi, après tout Scala reprend énormément de features de ML et Haskell, qui n´ont jamais percé pour diverses raisons, dont la syntaxe (qui n´est peut-être pas la plus importante je vous l´accorde). Ce qui fera que Ceylon, Kotlin ou scala seront ou non utilisés dans 3-4 ans sera une combinaison de mode, features, libs, marketing et éducation.

  12. Je ne crois pas que les derniers (futurs) arrivants à savoir Kotlin et Ceylon deviennent un jour « mainstream ». Même si leurs apports sont intéressants (enfin on dirait des clones de C#=Java done right) cela reste trop peu pour faire sauter le pas à des développeurs Java. Malheureusement pour eux 2 d’un coup qui se prétendent successeurs de Java c’est aussi sans doute 1 de trop (Kotlin parait en ce sens + intéressant avec un meilleur support de Java). Il y a aussi une question de timing, le temps qu’ils sortent et se forgent une communauté Java8 sera sorti et comblera une partie du fossé creusé entre Java et ses prétendants. Pour moi ce sont des initiatives mort-nées.

    Pour Scala, même s’il présente plus d’intérêt à apprendre par son aspect fonctionnel, je continue à penser que le language reste compliqué (syntaxe, concepts) pour un développeur Java et la courbe d’apprentissage n’est pas anodine. Peut-être qu’un framework génial (comme ROR avec Ruby) pourrait le faire vraiment décoller. J’ai des doutes sur le fait qu’il arrive sur Tiobe à se mettre à la hauteur un jour d’un pyton voir d’un C# ou que l’on voit massivement des annonces de poste avec Scala demandé.

  13. Zut on ne peut pas éditer son post (pyton -> python).

    Sinon je voulais ajouter sur Scala que le fait qu’il n’y a pas de support IDE digne de ce nom en dit long sur la complexité du compilateur et du language.

    Pour ma part, je vais adopter une position conservatrice et attendre de voir ce que ça donne en entreprise (allez y les jeunes ;-). Trop d’incertitudes…

  14. Un nouveau langage ? Toujours bon pour améliorer sa culture personnelle et élargir son point de vue. Mais pour ce qui est de l’adoption d’une manière large par des boites qui ne sont pas des start-up, faut pas réver. Pour émerger il ne suffit pas que le nouveau langage permette de faire mieux ce que l’on fait déjà avec l’existant. Il doit permettre de répondre à de nouveaux besoins mal gérés par les langages en place. C’est le web qui a permis à java et php d’exister. Les devs mobiles on t-ils besoin d’un nouveau langage ? La programmation con urrentielle pour tirer partit des procs multi-coeur et du cloud ? Rien n’est moins sûr.

  15. Un bon musicien sur un mauvais instrument jouera toujours mieux qu’un mauvais musicien sur un bon instrument! Donc soyons de bons musiciens avant de rechercher l’ultime instrument!! Nos clients y gagneraient tellement

  16. Il y a quelques années, vous auriez pu écrire le même article : « tiens un nouveau langage qui tourne sur la JVM ? Quelle bizarrerie, quelle étrangeté ! Comment s’appelle ce nouveau langage : Scala. N’importe quoi ….. ».

    Bref Ceylon, Machin, Go, etc, etc, on n’en sait rien. Wait and See …. and taste !

    De toutes façon, c’est Python le top ! La preuve, il est utilisé par Play !

  17. @pj pour python cela ne concerne que la partie ligne de commande, et j’ajouterai : plus pour très longtemps. Dans la version Play 2 il y aura une surprise de ce côté là. Cela ne remet pas en question la qualité de Python, c’est juste que cela faisait une dépendance en plus. Sur Solaris 9 par exemple, il y a eu quelques soucis car la version de python packagée sur cette plateforme est trop vieille. On a du remettre les scripts python de play à l’ancienne sauce.
    Le futur pour play sera plus « tout sur la JVM » avec Java ou Scala.
    A suivre…

  18. @NM

    C’est une très bonne nouvelle que la V2 ne soit plus python dépendante ! Car cela constituait un frein évident dans beaucoup de DSI (installer python sur les postes de dev).

Les commentaires sont fermés.