lundi 26 avril 2010

Scala et outillage

Ce week end j'ai commencé à coder un petit projet personnel avec Scala. Pour bien démarrer, j'ai cherché l'IDE le plus approprié pour développer avec ce langage. Ayant récemment obtenu une licence pour IntelliJ IDEA, j'ai commencé par installer son plugin Scala.

--------------------------------------------------------------------------------------------------------------------------
MAJ du 29/03/2011 :  A peu près un an après avoir écrit cet article, les choses ont beaucoup évolué. J'utilise désormais IntelliJ 10.0.2 avec son plugin scala et cela fonctionne vraiment bien. Par contre je n'ai pas retenté l’expérience avec d'autres IDE.
--------------------------------------------------------------------------------------------------------------------------

En essayant ce plugin, on se rend tout de suite compte que ça ne marche pas bien : en utilisant le menu contextuel dans l'arbre des projets et en choissant l'option "new Scala class", on tombe immédiatement sur le message fatidique, "cannot create class", sans plus d'explications... difficile d'aller plus loin pour tester le plugin...

Je ne me démonte pas, je passe à Netbeans, mon deuxième IDE préféré... j'installe le plugin Scala, cette fois je peux créer et éditer des classes. Super! Par contre dès que je veux utiliser l'autocomplétion, une jolie popup d'erreur avec une ClassNotFoundException sur une classe interne du plugin... Le problème c'est que l'autocomplétion s'active automatiquement, par exemple dès qu'on utilise le caractère '.', pour nous proposer les méthodes ou les champs disponibles. Au final je me suis donc retrouvé avec un message d'erreur toutes les 2 secondes, difficile de travailler comme ça...

On m'avait dit que le plugin Eclipse Scala IDE était également buggé... j'ai quand même voulu essayer. Et finalement ce plugin, pourtant proposé sur le site officiel de Scala, a été le pire de tous. En important les classes que j'avais créé précédemment (dans la douleur) avec les autres IDE, non seulement le code est tout rouge comme si il était bourré d'erreur (alors qu'il compile bien avec Maven) mais en plus impossible de l'éditer, mon code est en lecture seule...

Finalement mon choix se porte sur TextMate et E-TextEditor, son équivalent pour Windows,  malheureusement tous les deux payants. Ces éditeurs de texte n'ont pas des fonctions aussi avancées que des IDE mais ils permettent grâce à ce plugin d'avoir de la coloration syntaxique avec Scala et quelques fonctions basiques d'autocomplétion (quoi qu'un peu aléatoires), tout ça sans bug apparent :)

Pour le build, j'ai eu un peu plus de chance, grâce à Maven.
En rajoutant les lignes suivantes dans mon pom, je peux compiler du scala et packager un jar avec les commandes Maven standard :


        2.7.7
    

   
        
            scala-tools.org
            Scala-Tools Maven2 Repository
            http://scala-tools.org/repo-releases
        
    

    
        
            scala-tools.org
            Scala-Tools Maven2 Repository
            http://scala-tools.org/repo-releases
        
    

    
        
            org.scala-lang
            scala-library
            ${scala.version}
        
 
  
        src/main/scala
        src/test/scala
        
            
                org.scala-tools
                maven-scala-plugin
                
                    
                        
                            compile
                            testCompile
                        
                    
                
                
                    ${scala.version}
                
            
        
    

Pour conclure restons positifs, de plus en plus de personnes s'intéressent à Scala, je pense donc que l'outillage sera rapidement amélioré!
Et vous quelle est votre expérience avec l'outillage Scala? Avez vous eu plus de chance que moi avec les IDE ?