Scala: Débuter avec Activator

Dans le cadre de ce tutoriel, nous allons voir comment mettre en place un environnement de développement basique pour Scala à l’aide de deux outils que sont Activator et Eclipse.

J’utiliserais ici Windows (8.1) mais le tutoriel est transposable à Linux ou Mac très facilement, seuls les liens de téléchargement et le nom du script varient (activator.bat -> activator).

Scala ?

Scala est un formidable langage de programmation basée sur la JVM (Java Virtual Machine). Conçu à l’École polytechnique fédérale de Lausanne (EPFL), il combine à la fois la programmation objet de Java et la programmation fonctionnelle d’Haskell ou d’Erlang (insérer ici votre langage fonctionnel favori).

Pour le découvrir, je vous invite vraiment à parcourir la documentation officielle, très bien faîte, et à télécharger acheter le livre « Programming in Scala », une référence

Petit exemple de code:

object HelloWorld extends App {
  println("Hello, world!")
}

Typesafe Activator

Activator est un outil gratuit proposé par Typesafe, la société derrière Scala, pour débuter en quelques commandes avec les trois technologies maison:

  • Scala, le langage de programation
  • Play, un framework de programmation web en Scala
  • Akka, une librairie pour créer facilement des applications concurrentes & distribuées.

Il va nous permettre:

  • D’installer les dépendances (compilateur Scala, librairies en tout genre)
  • De créer de nouveaux projets à partir de templates
  • D’avoir une console interactive pour tester du code Scala à chaud

Et bien d’autres fonctionnalités…

Il est possible de l’utiliser soit via une interface web avec un éditeur de code embarqué soit en ligne de commande. Après avoir joué un peu avec l’interface web (AJAX powa!), j’ai préféré revenir aux « fondamentaux » avec Activator en ligne de commande et Eclipse comme IDE.

Scala IDE

Eclipse est un environnement de développement intégré (IDE) écrit en Java et qui ne connait pas de base Scala, il faut donc obligatoirement lui installer des extensions pour activer son support.

Ces extensions sont regroupées sous un projet nommé Scala IDE for Eclipse et peuvent être soit ajoutées dans une installation existante d’Eclipse soit pré-installées au sein du bundle Scala IDE.

J’ai tendance à préférer la seconde solution: avoir deux installations, l’une d’Eclipse Standard pour la programmation Java et l’autre, Scala IDE pour… la programmation Scala.

Assez discuté, passons à l’installation 🙂

Installation d’Activator

Allez sur le lien suivant: www.typesafe.com/platform/getstarted et cliquez sur « Download Typesafe Reactive Platform »:

2014-07-02-10_54_07

Une fois téléchargé, décompressez l’archive et rendez-vous y en ligne de commande:

2014-07-02-10_52_53

Si la commande java -version n’est pas reconnue, définissez manuellement le chemin vers le JDK (et non la JRE !) à travers la variable d’environnement JAVA_HOME:

2014-07-02-10_56_09-624x65.png

A noter que même si Scala supporte Java 1.6 et supérieur, la version actuellement en développement (2.12) intégrera des optimisations pour Java 8. Je vous encourage donc vivement à l’installer si ce n’est déjà fait.

Ne reste plus qu’à exécuter .activator.bat help pour vérifier qu’Activator fonctionne et lister ses options:

2014-07-02-10_59_16

Activator UI correspond à l’interface web.

Installation de Scala IDE

Passons maintenant à l’installation de notre IDE.

Allez sur le lien suivant: http://scala-ide.org/download/sdk.html et téléchargez l’archive correspondant à votre OS et à votre architecture processeur.

Une fois téléchargé, décompressez l’archive dans le répertoire de votre choix et lancez eclipse.exe qui se trouve à l’intérieur.

Au premier lancement, indiquez où vous souhaitez stocker vos projets et cochez la case pour définir cette valeur par défaut:

2014-07-02-11_07_04

L’IDE est prêt, passons à la création de notre premier projet.

sbteclipse-plugin

Activator va pouvoir, à travers SBT (Scala Build Tools), générer automatiquement le projet correspondant pour Eclipse, à l’aide d’un plugin nommé sbteclipse-plugin.

Allez dans le répertoire %USERPROFILE%.sbt.13 et créez le dossier plugins. Placez-y à l’intérieur un fichier build.sbt avec le contenu suivant:

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.5.0")

Bien évidemment, vous pouvez sauter cette étape si vous prévoyez d’utiliser un autre IDE qu’Eclipse / Scala IDE.

Créer un premier projet

Ajoutez le répertoire d’activator à la variable d’environnement PATH de votre console et déplacez-vous dans le répertoire où vous allez placer vos projets:

2014-07-02-11_09_30

Entrez ensuite la commande activator.bat new et attendez que la liste des templates soit téléchargé:

2014-07-02-11_10_46

Les deux principaux templates en Scala sont les suivants:

  • minimal-scala permet de créer un projet Scala de base pour une application en ligne de commande ou avec une interface graphique (« client lourd »).
  • play-scala permet quand à lui de créer une nouvelle application web avec le framework Play.

Saisissez minimal-scala puis le nom de votre application (par défaut le nom du template):

2014-07-02-11_14_18

Déplacez-vous ensuite dans le répertoire du projet (ici hello-world) et exécutez activator.bat run pour installer les dépendances si nécessaire.

Tapez ensuite activator.bat eclipse pour créer le projet associé:

2014-07-02-15_59_05.png

Ne reste plus à présent qu’à importer notre projet dans Eclipse. Pour ce faire, faîtes un clic droit dans Package Explorer ou passez par le menu File et cliquez sur Import:

2014-07-02-15_59_56.png

Dans l’assistant, sélectionnez Existing Projects into Workspace dans la section General. Indiquez l’emplacement du dossier de votre projet (Select root directory) et à cliquez sur le bouton Finish.

Bon développement !

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s