Ma découverte de ce langage fut un petit déclic ! On peut dire que Apache Spark a été le précurseur à tout cela bien évidemment. Pour rappel, Scala est un langage de programmation multi-paradigme conçu à l’École polytechnique fédérale de Lausanne, en Suisse. Elle connait actuellement un envol dans le secteur des analyse des données et le Big Data.
Il existe déjà quelques références sur toute l’historique de ce langage, que je vous invite à découvrir sur internet.
Comme tout débutant sur cette techno, Je vais commencer par écrire un petit programme qui affiche “Hello World”, un classique.
Apres avoir fini de télécharger et d’installer Scala, ouvrez une ligne de commande et faites
Pour voir si l’installation s’est bien passée, avec les variables environnements bien définis, faites
scala – version
Si vous voyez “Scala code runner…”, l’installation s’est bien passée, sinon désinstaller et réessayer.
Maintenant que vous avez Scala, bien installé, vous pouvez commencer à jouer un peu avec quelques lignes de code !
Notepad++ n’a a ce jour pas Scala comme syntaxe prédéfini. Donc, pour pouvoir avoir les avantages liés a un éditeur de code, je vous conseille de télécharger le fichier scala.xml disponible sur le lien suivant.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Keywordsname="Folders in code1, open"id="7">{ [</Keywords>
<Keywordsname="Folders in code1, middle"id="8"></Keywords>
<Keywordsname="Folders in code1, close"id="9">} ]</Keywords>
<Keywordsname="Folders in code2, open"id="10"></Keywords>
<Keywordsname="Folders in code2, middle"id="11"></Keywords>
<Keywordsname="Folders in code2, close"id="12"></Keywords>
<Keywordsname="Folders in comment, open"id="13"></Keywords>
<Keywordsname="Folders in comment, middle"id="14"></Keywords>
<Keywordsname="Folders in comment, close"id="15"></Keywords>
<Keywordsname="Keywords1"id="16">abstract case catch class def do else extends false final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try true type val var while with yield _</Keywords>
<Keywordsname="Keywords2"id="17">Any AnyRef AnyVal App Application Array Boolean Byte Char Cloneable Console DelayedInit deprecated deprecatedName Double Dynamic Enumeration Equals FallbackArrayBuilding Float Function Function1 Function2 Immutable inline Int language languageFeature Long LowPriorityImplicits MatchError Mutable native noinline None Nothing NotImplementedError NotNull Null Option PartialFunction Predef Product Product1 Product2 Proxy remote Responder ScalaObject ScalaReflectionException Serializable SerialVersionUID Short Some Specializable specialized StringContext Symbol throws transient Tuple1 Tuple2 unchecked UninitializedError UninitializedFieldError Unit volatile</Keywords>
Maintenant vous avez la syntaxe qui est correctement défini.
Sauvegardez le fichier dans un répertoire
N’oubliez pas l’extension ” .scala “
Sur ligne de commande, lancez la compilation en exécutant la commande suivante.
scalac HelloWorld.scala
Ensuite, executez le program en lancant
scala –classpath .HelloWorld
Félicitations, vous avez réussi à compiler votre premier programme Scala !
Il vous reste maintenant à commencer à explorer toutes les facettes intéressantes de ce langage, par example son interaction facile avec du code Java. Toutes les classes de java.lang sont importes par défaut. Le fait que Scala offre de reels capacités d’interopérabilité avec Java font qu’il n’y ai pas besoin d’implementer des classes équivalentes dans les bibiliotheques Scala. Nous pouvons simplement importer les packages java correspondants.
[code language="scala"]
import java.util.{Date, Locale}
import java.text.DateFormat
import java.text.DateFormat._
object AffichageDateFrancais {
def main(args: Array[String]) {
val now = new Date
val df = getDateInstance(LONG, Locale.FRANCE)
println(df format now)
}
}
[/code]