Le Touilleur ExpressLe Touilleur ExpressLe Touilleur ExpressLe Touilleur Express
  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express

Scala, son histoire

    Home Java Scala, son histoire

    Scala, son histoire

    Par Nicolas Martignole | Java, Scala | 4 commentaires | 23 mars, 2010 | 0 | 3 059 affichages
         

    Tag image Scala
    Note importante : au moment où j’écris ces lignes, je découvre Scala. Cet article n’est pas destiné à être une référence. Il ne prétend pas être exhaustif, exact et parfait.

    L’histoire de Scala est intéressante, elle nous permet de comprendre les fondations du langage. Elle renforce à mon avis l’intérêt du langage et me donne encore plus envie d’avancer dans mon apprentissage.

    L’histoire de ce langage débute en 2001, à l’Ecole Polytechnique Fédérale de Lausanne (EPFL), plus précisément au Laboratoire des Méthodes de Programmation (LAMP). Martin Odersky son fondateur est professeur à l’EPFL.

    En 1995 lui et Philip Wadler découvrent la JVM. Quelques travaux de recherches plus tard, SUN Microsystems demande à Martin de travailler sur le compilateur Java 1.1. Martin sera par la suite le responsable du développement du compilateur javac de la version 1.1 à la version 1.4.
    En 1997 Martin et Philip travaillent sur des concepts pour apporter de la programmation fonctionnelle et générer du bytecode Java. Le projet appelé Pizza donnera naissance plus tard à Scala indirectement :

    Pizza is a strict superset of Java that incorporates three ideas from the academic community: parametric polymorphism, higher-order functions, and algebraic data types. Pizza attempts to make these ideas accessible by translating them into Java. We mean that both figuratively and literally, because Pizza is defined by translation into Java. It turns out that these features integrate well: Pizza fits smoothly to Java, with only a few rough edges.

    David Pollak (fondateur du framework Web Lift écrit en Scala), dans l’introduction de son livre « Beginning Scala » explique que Pizza a ensuite donné les Generics dans Java. Martin Odersky a été membre de l’expert group de la JSR-014 (Add Generic Types To The JavaTM Programming Language) qui a finalisé son travail en 2004. Les Generics en Java sont le fruit du travail de Martin Odersky.

    Dès 2001, Martin commence à travailler sur Scala. La première version date de 2003. Son équipe et lui ont ensuite commencé à enseigner Scala à l’EPFL. Scala 2.0 est sorti en 2006. La dernière version est Scala 2.7.7 au moment où j’écris ces lignes.

    Scala 1.4 est aussi capable de générer du bytecode compatible avec la CLR de la plateforme .NET de Microsoft (voir cette page).

    Ce que cela m’inspire
    C’est un langage mature, structuré par des chercheurs et des professeurs. La force de Scala est de se reposer sur la JVM et sur le bytecode Java, tout en proposant une approche différente. Et j’avoue que plus j’avance dans mon apprentissage, plus je comprends l’engouement et le plaisir à programmer en Scala.

    Je réfléchis aux meilleurs moyens de parler Scala à l’ensemble des développeurs Java. Je pense qu’attaquer de manière frontale, 10 ans d’orienté objet et de programmation procédurale n’est pas une bonne idée. Je pense aussi que cristalliser l’écueil de formation en France des ingénieurs dans le domaine fonctionnel n’est pas une bonne idée. Scala restera un langage de niche si personne ne fait l’effort de comprendre comment construire des ponts entre nous, développeurs Javas, et vous, développeurs Scala.

    Comme un Français qui découvre l’Anglais, et qui parle au départ avec un fort accent étranger, je pense que les premiers programmes que j’écrirai en Scala auront l’accent Java. Ensuite je m’efforcerai de progresser, jusqu’à arriver à un niveau d’aisance, qui me fera peut-être oublier ma langue maternelle, qui reste Java.

    Sérieusement, prenez le temps de regarder Scala.

    Références
    http://en.wikipedia.org/wiki/Higher-order_function
    http://en.wikipedia.org/wiki/First-class_function
    http://infoscience.epfl.ch/record/64384?ln=en
    Articles, présentations et thèses autour de Scala
    L’histoire de Scala sur le site officiel.

    Articles similaires:

    Scala Days 2016 Berlin Default ThumbnailTypesafe : une solution d’entreprise en Scala Scala dans les entreprises en France Default ThumbnailQuelques livres pour apprendre Scala
    No tags.
    • Avatar
      Brice 24 mars 2010 at 9 h 17 min

      Et encore 10 ans d’orienté objet, en 4ans d’expérience Java, je n’ai vu du véritable Objet que dans une seule mission. J’ai plus vu du code procédural mis dans des « objets » du genre helper et compagnie que du véritable orienté objet. Ou alors des concepts pas clair, mal défini, des rôles mal identifiés.

      Du coup le marché forme inévitablement l’expérience des développeurs avec les mauvais paradigmes (pour un langage objet).

      Je digresse mais à propos du développement orienté objet, j’ai lu une entrée de Misko Hevery assez sympa sur un livre : http://misko.hevery.com/2010/01/06/growing-object-oriented-software-guided-by-tests/

      Et ça c’est un véritable écueil pour le monde Java.

    • Avatar
      Sébastien Douche 28 mars 2010 at 3 h 54 min

      Salut Nico,
      ton billet me fait sourire car tu te voila maintenant (temporairement) dans le camps des « minoritaires ». Le camp qui pousse un langage inconnu de la plupart des développeurs et qu’on ne voit pas sur les couvertures de magazines pour DSI.

      A toi les « Je ne vois pas l’intérêt, tu peux tout faire en Java » ou le classique « tous les langages se valent » ou ma phrase préférée « ok ton truc c’est bien, mais on peut faire n’importe quoi dans tous les langages, suffit de coder proprement ».

      Bon, tu as la chance de parler 1/ d’un truc à la mode, 2/ à un moment ou les développeurs ont conscience qu’ils existent autre chose (merci Groovy, GAE..) et 3/ qu’ils commencent à se poser des questions sur le langage Java mais je n’ai qu’une chose à te dire :

      Bienvenu dans mon monde ! 🙂

      Je suis curieux d’avoir dans quelques temps ton expérience sur le sujet,

    • Avatar
      mra 1 avril 2010 at 14 h 30 min

      … effectivement, Java et la programmation OO a l’air de prendre un virage (à ne pas rater ) au vu des news cette semaine :
      http://www.infoq.com/news/2010/04/scala-q

      Je promets je vais garder un oeil sur Scala.

    • Avatar
      Brice 10 avril 2010 at 15 h 56 min

      @mra
      Cet article à été écris le 1er avril 🙂
      Cela dit il faut surveiller le petit scala.

      @Sébastien Douche
      Oui, la programmation polyglotte c’est une bonne chose. J’adhère à ce principe : « the right language for the right job ».
      http://www.infoq.com/articles/paradigm-based-polyglot-prog

    Recent Posts

    • GitHub Actions : le tueur de Jenkins ?

      Avouez-le : ce titre de blog est super racoleur. J’avais aussi pensé

      15 février, 2021
    • Comment recréer du lien social dans l’Entreprise avec des outils numériques en 2021

      Nous sommes en février 2021 pendant le 3ème confinement lié à la

      10 février, 2021
    • FizzBuzz en Java et Scala (surtout Scala)

      L’exercice FizzBuzz est un petit exercice très simple, à tester par exemple

      9 février, 2021

    Recent Tweets

    •  @fanf42   @doctolib  Oui toussa 😎

      9 hours ago
    •  @Clever_Support  du coup pr l’instant je reste sur le vieux add-on ElasticSearch chez vous sans SSL qui marche (CFP Devoxx)

      10 hours ago
    •  @Clever_Support  et pas forcément possible de désactiver SSL SNI coté client Java :(

      10 hours ago
    •  @Clever_Support  Je galère avec SSL + unrecognized_name (SNI). Testé Java8,Java11, Java15. Testé avec AsynchHttp. Testé avec Elastic4S

      10 hours ago
    •  @Clever_Support  car Elastic4S par exemple fixe à 9200 si le port n’est pas présent https://t.co/4qVv0qVoVu

      10 hours ago

    Mots clés

    agile (18) ajax (11) Apple (11) architecture (6) barcamp (5) BarCampJavaParis (5) ddd (5) devoxx (33) esb (6) exo (6) flex (9) geek (5) google (11) grails (5) groovy (10) humeur (12) humour (7) independant (6) iphone (12) Java (77) javascript (7) jazoon (28) jboss (22) jboss seam (12) jsf (9) jug (16) Linux (11) mac (6) mule (5) parisjug (7) paris jug (22) pjug (6) play (8) playframework (6) portlet (5) recrutement (6) ria (8) Scala (21) scrum (44) spring (23) Startup (11) usi (21) usi2010 (9) web (16) xebia (7)

    Le Touilleur Express

    Contactez-moi : nicolas@touilleur-express.fr

    Suivez-moi sur Twitter : @nmartignole

    Copyright© 2008 - 2020 Nicolas Martignole | Tous droits réservés
    • A propos de l’auteur
    • A propos du Touilleur Express
    Le Touilleur Express