Je ne sais pas pour toi, mais moi je me considère comme un développeur de base. Je croise de très bons développeurs. J’ai travaillé avec des développeurs vraiment excellents. Certains sont célèbres, tellement célèbre que les femmes en Papouasie du sud se laissent pousser de longs cheveux longs noir pour ressembler à leur icône. D’autres sont des brutes de programmation, avec un cerveau qui semble survitaminé, un esprit affuté et une capacité à apprendre tout simplement impressionnante…
Et puis il y a nous, les simples développeurs de base.
Nous, nous sommes des gars (et des femmes) qui développons avec passion (merci Twitter). Nous n’avons pas encore eu l’idée du siècle (ou elle n’a pas marché). Nous sommes plutôt au fait des dernières technologies. Mais nous ne sommes pas dans le créneau « brutasse level 25 » .
Et nous sommes une majorité.
Prenez un langage comme Java. C’est certainement le meilleur langage, la meilleure plateforme et la communauté la plus importante pour l’industrie. Reviens me voir lorsque ton langage aura 17 user-groups et une conférnce de 3200 personnes organisées par un user-group… pas par un éditeur comme Microsoft…
Java a remporté plusieurs victoires : le débat du « write once/run everywhere », la gestion de la mémoire, une plateforme d’entreprise, un écosystème open-source énorme… Il est enseigné dans les universités et les écoles d’ingénieurs.
Mais si Java est votre seule langue maternelle, je pense qu’il est temps d’apprendre d’autres langages. Scala par exemple est très intéressant. La communauté, les outils, les livres et l’énergie qui anime ce langage méritent que l’on s’y intéresse. Nous avons déjà eu toi et moi la discussion sur l’utilité ou non d’apprendre Scala, et un débat pour savoir s’il sera mainstream un jours (voir la saison 1). Pour l’instant il ne remplacera pas Java, c’est mort pour les 5 à 8 ans qui viennent. Le débat est clos. Mais cela n’en fait pas un argument justifié pour ne pas apprendre Scala.
Scala est un langage mature qui tourne sur la JVM. Il propose une approche différente pour résoudre nos problèmes. La majorité des développeurs que je connais n’a pas eu de formation à la programmation fonctionnelle. On ne va pas en parler des heures, je parle des faits, pas d’un débat inutile sur la formation en France des Informaticiens. La majorité sont des développeurs de base, qui sont plutôt bons en Java. Et donc si l’on souhaite intéresser une partie de cette communauté à Scala, il va falloir adapter la façon de présenter Scala. C’est du marketing, tout simplement.
Il y a tellement de concepts intéressants, une approche si complémentaire et intéressante, qu’il est vraiment dommage de ne pas s’y mettre. J’y suis jusqu’au cou en ce moment, je nage de grandes longueurs dans un univers que j’utilise depuis un an : Play! Framework.
Plutôt que de partir dans des débats théoriques sur tel ou tel concept, il est intéressant d’avoir une approche pragmatique de Scala. Si vous voulez aller plus loin, je cite un commentaire de Stéphane Epardaud de l’an passé sur le Touilleur :
Je pense qu’au delà de l’inférence de type, chaque programmeur devrait lire Structure and Interpretation of Computer Programs de Hal Abelson and Gerald Jay Sussman, histoire de bien comprendre la programmation fonctionnelle, ou même se faire plaisir et comprendre les continuations avec The Scheme Programming Language de R. Kent Dybvig.
Sur les 3 livres que j’ai acheté l’an passé, mon préféré sur le ton comme sur la forme est le livre « Beginning with Scala« , écrit par David Pollack, l’un des auteurs du framework Web Lift.
J’encourage les développeurs de base comme moi à découvrir le langage en commençant par prendre un outil, puis en écrivant une vraie application de la vraie vie.
C’est fun et c’est intéressant.
Voici des articles écrits l’an dernier :
– Scala partie 1
– Scala partie 2
– Scala, case, Option, None et Some
– Scala, son histoire
– Présentation de Lift par David Pollack à QCon 2009
– Scala for Java Refugees, une série écrite par Daniel Spiewak sur son blog. Assez marrant à lire, c’est l’histoire d’un gros Java-iste qui débarque dans le monde Scala…
… et ça fait pas du bien de dire : je suis un développeur de base ? non ?
Exactement la réflexion que j’ai menée ces derniers mois, qui m’a naturellement conduit vers le Scala.
A cet égard, je conseille vivement le bouquin « Programming in Scala » by Odersky himself (qui m’a été conseillé par Alexandre Bertails pour ceux qui le connaissent).
L’enseignement que je t’en tire est des plus riches et permet de prendre un peu de recul par rapport aux limites/contraintes du Java. Son caractère à la fois impératif et fonctionnel ouvre la voie à de nouvelles manières de répondre aux besoins et participe pleinement à une ouverture de l’esprit indispensable pour un développeur digne de ce nom.
Quant au « développeur de base », je me considère plutôt comme un éternel padawan toujours prêt à apprendre des Java gurus 😀
Etant un débutant et un admirateur du language scala, je suis tout à fait d’accord avec vous. Moi j’essaie d’apprendre scala avec le framework lift car lift exploite à fond les concepts fonctionnels. J’ai commencé avec le livre « Programming scala » de Alex Payne(twitter) que je trouve très complet. Maintenant il est disponible en ligne.
http://programming-scala.labs.oreilly.com/
Et juste une petite correction. Si je ne me trompe pas c’est David Pollak
Merci pour l’article.
« Je me considère comme un développeur de base » : ça me rappelle un entretien d’embauche dans une des très bonnes ssii de Paris, il y a 4 ans … Le cto chargé de l’interview avait commencé : « vas y présentes toi »
J’ai commencé : »je suis développeur… » Pas architecte, pas je ne sais quoi senior, pas chef à bord d’un projet titanic, non… Sans le savoir j’avais dit le mot qu’il fallait. Ils m’ont fait une proposition tout de suite 🙂
Sinon… Je plussoie d’abondance
Scala fait redécouvrir une partie inutilisée du développeur : le cerveau 🙂
Note : Il faut aussi apprendre et pratiquer javascript, sinon on veut aujourd’hui être un développeur responsable.
Heh, quelle mémoire pour cette citation 🙂
Sinon il faut aussi dire que quiconque fait du JavaScript programme dans un langage fonctionnel. En fait j´irai même jusqu´à dire que JavaScript est LE langage fonctionnel le plus utilisé au monde de nos jours.
Pourquoi refuser de considérer .NET, son (ses) langage(s), sa plateforme, sa communauté ? Uniquement parce qu’il y a Microsoft derrière ?
Je suis moi aussi développeur de base mais je ne veux pas le rester. J’ai envie de faire les choses 3 fois plus vite demain que je ne les fait aujourd’hui et j’ai réalisé que c’était possible de passer à cette vitesse supérieure en abandonnant Java pour un language plus puissant. Ca pourrait être Scala, pour ma part je trippe sur Clojure. Ca fait un peu mal au cerveau au début mais ça vaut la peine.
+1
Mais je trouve un peu péjoratif de parler de développeur de base, car n’importe qui peut se mettre devant un bon bouquin ou devant son ordi, et commencer à lire ou à exécuter du code.
Côté marketing, je ne pense pas qu’il y ait trop de soucis. Les concepteurs de Scala ont créé le langage pour que ça parle le plus possible aux dév Java. Il suffit de lire les bouquins d’intro sur le sujet, c’est vraiment clair.
Le vrai problème vient surtout des gens que je qualifierais de fainéants (et surtout pas d’idiots), qui pensent pouvoir parler d’un langage sans l’avoir vraiment utiliser, sans en comprendre ses concepts, et n’ayant pas le bagage technique pour le comparer à leur langage favori… C’est un FUD très difficile à combattre.
Je vais parler de tout ça à Telecom ParisTech vendredi prochain aprem. Vous êtes tous invités.
Ça va etre dur vendredi prochain avec la conf What’s next où justement il y aura une session vendredi apres midi de Jonas Boner. Mais juste au cas où c’edt à quelle heure et dans quelle salle?
Je trouve que scalaest un bon langage de programmation et c’est un grand avantage d’apprendre d’autre langage mais comme tu l’as déjà dit il ne remplacera peut être jamais Java.
c’est quoi un développeur de base?
C’est agréable de voir les langages fonctionnels poussés par un des bloggueurs JAVA les plus reconnus en France ! Merci !
Je conseille fortement le projet Euler pour s’autoformer sur les langages fonctionnels en général : http://projecteuler.net/
C’est un peu le sachet de Dragibus pour un développeur gourmand, des exos à la complexité croissante pour appréhender les réflexes à avoir en programmation fonctionnelle.
Juste un point sur le tacle à destination de Microsoft. Bien que conscient que ce blog est orienté JAVA, je pense qu’il faut reconnaître à Microsoft sa prise de position pour l’adoption en natif d’un langage fonctionnel. F# est natif sur la plateforme .NET et sur l’IDE Visual Studio (sans compter les efforts sur le langage C# : closures, lambda expression, linq…).