Infrastructures programmatiques (4/4) : perspectives

42 views
Skip to first unread message

Laurent Caillette

unread,
Feb 12, 2016, 1:20:39 AM2/12/16
to tec...@googlegroups.com
Kable n'est pas supposé dépasser le stade de maquette. Recoder la
sous-partie d'Ansible dont j'ai besoin représente un boulot
considérable, sans que le retour sur investissement soit garanti.

L'important c'était de démontrer le potentiel de Kotlin dans la
réalisation de mini-langages dédiés, qui continuent de bénéficier de
toutes les facilités de Kotlin. C'est le rêve qui a été poursuivi par
toute une génération d'outils d'assemblage ou d'orchestration basés
sur du XML, et qui se transformaient en langages de programmation
non-assumés. Des langages dynamiques comme Python et Ruby ont permis
de hausser le niveau de fonctionnalités, grâce à leurs bibliothèques
standard (à commencer par le réseau et l'accès aux fichiers). Leur
omniprésence a permis de déployer pour pas cher des outils comme
Buildbot, SCons ou Ansible. On pourrait aussi mentionner Gradle, au
sein de l'écosystème Java.

Maintenant que leurs principes sont validés, on rêve de les faire
rentrer dans des solutions de développement intégrées, avec du
versionnage et de l'automatisation, mais aussi des éditeurs
interactifs. Autrement dit, les infrastructures programmatiques
devraient bénéficier d'un langage et d'un outillage aussi poussés que
le code applicatif.

Des éditeurs de solutions de développement ont déjà mené de sérieuses
avancées. Par exemple, IDEA permet d'éditer des projets Maven avec un
minimum de souffrances, grâce des aides interactives très bien
conçues. Il fait de même pour Spring, Hibernate, et d'autres machins
pénibles. Mais rattraper les fonctionnalités des dernières versions
est une course sans fin, avec toujours plus de micro-fonctionnalités
intéressant un public toujours plus restreint.

Aussi complexes que soient ces fichiers de configuration, ils
demeurent principalement déclaratifs -- on n'est pas en train de coder
un pilote de carte réseau par exemple-_. Le plus gros du boulot
consiste à maintenir la cohérence entre ces fichiers de configuration
et d'autres symboles, comme des classes Java ou des noms de fichiers.
Un critère déterminant pour établir leur grammaire et leur structure,
c'est le coût d'intégration. Par exemple, Maven utilise une
correspondance automatique entre le XML et un modèle objet interne.
Buildbot et SCons se contentent d'exécuter du code Python. Gradle est
un idiome de Groovy, qui se base sur la JVM omniprésente dans projet
Java.

Groovy a tenté sa chance comme langage d'assemblage et d'orchestration
au sein de l'écosystème Java. Son succès demeure marginal, faute
d'apporter une amélioration décisive. Groovy a cru résoudre la
verbosité de Java en enlevant du typage statique. Mauvaise pioche.
Kotlin attaque la montagne par le versant super-difficile, et résoud
la verbosité avec //plus// de typage statique (grâce à de l'inférence
de type notamment). On a le beurre et l'argent du beurre. Fromage,
dessert, café, pousse-café, rincette : une JVM ultra-performante qui
démarre en moins d'une seconde, des tonnes de bibliothèques
multiplateformes, un environnement de développement de premier choix
pour Linux, OS X et Windows.

Avec les devops qui font pencher la balance du côté des développeurs,
et le terrain bien déblayé par Python et Ruby en matière d'outillage,
les environnements de développement sont appelés à endosser un rôle
encore plus large. Il est probable que JetBrains ait eu cette vision,
et cherche, à travers Kotlin, à faire se recontrer différents univers
sur sa plateforme. Ils avaient déjà réussi pour différents langages
(dont `C++`, PHP, Python, Ruby, JavaScript). Les langages
d'orchestration et d'assemblage pourraient être l'étape suivante, avec
une solution qui offre une continuité du domaine applicatif jusqu'à la
plomberie.

Pour l'instant l'écosystème Kotlin demeure très discret. C'est une
bonne nouvelle, surtout quand on pense à la ménagerie JavaScript. Avec
une version beta tout à fait utilisable, Kotlin pourrait bien être le
prochain Eldorado pour ceux qui rêvent de réinventer Buildbot,
SaltStack ou Ansible. Il y a des places à prendre, et moyen de se
faire plaisir en même temps.
Reply all
Reply to author
Forward
0 new messages