Accueil Nos publications Blog La Formation ‘Functional Programming principles in scala’ 1/2

La Formation ‘Functional Programming principles in scala’ 1/2

Cela fait maintenant quelque temps que j’entends parler de la programmation et des langages fonctionnels (F#, Caml, Lisp, etc…),  sans jamais penser à creuser pour voir comment ça marche vraiment. En gros, je savais que ça consistait à développer en considérant le calcul comme étant une évaluation récursive, tout en assurant l’immutabilité des objets. Ce modèle de développement, qui s’avère un peu trop différent de la programmation impérative, ne m’a pas trop convaincu : la récursivité pose souvent un problème de débordement de la pile d’exécution,  je ne voyais pas trop comment on pouvait l’utiliser quand on doit implémenter une règle métier, ou encore comment déclarer tous les attributs d’une entité immuable alors que l’objectif est de les modifier.

En même temps, les problèmes liés à la programmation impérative et ses inconvénients m’ont poussé à chercher à mieux connaitre les principes de la programmation fonctionnelle pour pouvoir comparer entre les deux paradigmes, mais là encore, comment trouver un langage fonctionnel qui peut être compatible avec les langages actuels et qui offre un grand nombre de bibliothèques et librairies ? Facile : Scala

Martin Odersky, qui a travaillé avec Sun Microsystems sur la conception des Generics Java  et sur la version actuelle de javac, a beaucoup fait parler de lui en créant le langage Scala. C’est un langage qui est fonctionnel et orienté objet et la compilation d’un programme Scala donne un bytecode Java ou .Net (d’autres plateformes peuvent éventuellement être supportées dans le futur), ce qui veut dire que l’on peut utiliser toutes les librairies des langages supportés par Scala d’une manière transparente. Ainsi, Scala bénéficie des bibliothèques qui ont fait la force de ces langages depuis leur création (c’est plutôt bien mais c’est de la triche non ? :p).

Formation  ‘Functional Programming principles in scala’ par Martin Odersky

La plateforme d’enseignement coursera, une entreprise numérique donnant des cours en ligne, propose une formation Scala gratuite et certifiante par l’école polytechnique fédérale de Lausanne. La formation est assurée par Martin Odersky lui-même.

Si vous souhaitez vous inscrire à la formation, C’est par ici.

Comment ça marche ?

La formation se compose de plusieurs conférences vidéos, qui ont entre 6 et 15 minutes chacune. Celles-ci contiennent des quiz avec des corrections, des devoirs autonomes qui ne font pas partie des conférences vidéos et un examen final.

Afin de travailler sur les devoirs et les quiz, vous devez disposer des outils nécessaires. Un certain nombre d’instructions & une série de vidéos mises en ligne vous expliquent comment configurer votre machine en fonction de  votre système d’exploitation.

Programme de la formation

La formation est étalée sur 7 semaines avec comme chapitres :

Semaine 1 : Programming paradigms; overview of functional programming and the Scala programming language

Semaine 2 : Defining and using functions, recursion and non-termination, working with functions as values, reasoning by reduction

Semaine 3 : Defining and using immutable objects, review of inheritance and dynamic binding.

Semaine 4 : Working with collections: Sequences, sets and maps

Semaine 5 : Defining recursive data and decomposition with pattern matching

Semaine 6 : Reasoning about functions

Semaine 7 : Case study

Comment décrire une semaine de cours ? Chaque mardi matin, des nouvelles conférences vidéo qui portent sur un sujet particulier lié au cours ainsi que les devoirs sont mis en ligne. Les vidéos sont toutes présentées par Martin Odersky (enfin, jusqu’à présent). L’échéance pour rendre les devoirs est de 10 jours, sinon, la note sera réduite de 20% pour chaque jour de retard.

Après deux semaines, le feedback :

Pendant les deux premières semaines de cours sur la programmation fonctionnelle en Scala, j’ai trouvé plaisir à développer en utilisant des nouvelles approches. C’était aussi l’occasion de remettre plein de choses en question concernant notre manière de concevoir et de développer.

Il s’avère qu’Oracle a également réalisé les avantages de la programmation fonctionnelle en annonçant l’introduction des expressions Lambda sur la version 1.8 du JDK. Il semble que les langages fonctionnels seront à la mode prochainement.

Restez à l’écoute, pour le prochain article qui sortira à la fin de la formation et songez à suivre le cours vous-même.

Pour aller plus loin: