7 raisons pour lesquelles les frameworks sont les nouveaux langages de programmation

Dans les années 1980, le moyen le plus simple de lancer un combat de nerd était de proclamer que votre langage de programmation préféré était le meilleur. C, Pascal, Lisp, Fortran? Les programmeurs ont passé des heures à expliquer exactement pourquoi leur façon particulière de créer une clause if-then-else était supérieure à la vôtre.

C'était alors. Aujourd'hui, les batailles de syntaxe et de structure sont largement terminées car le monde a convergé vers quelques standards simples. Les différences entre les points-virgules, les accolades et autres en C, Java et JavaScript sont mineures. Des débats intéressants sur la saisie et les fermetures existent encore, mais la plupart sont sans objet car l'automatisation comble l'écart. Si vous n'aimez pas spécifier un type de données, il y a de fortes chances que l'ordinateur puisse en déduire exactement ce que vous vouliez dire. Si votre patron veut JavaScript mais que vous aimez Java, un compilateur croisé convertira tout votre Java typé statiquement en JavaScript minifié, prêt à être exécuté dans un navigateur. Pourquoi se battre quand la technologie nous soutient?

Aujourd'hui, l'action intéressante est dans les cadres. Lorsque je me suis assis avec d'autres membres du corps professoral de l'Université Johns Hopkins pour planifier un nouveau cours, les cadres ont dominé la conversation. Angular est-il meilleur que Ember? Node.js est-il tout cela?

Nous avons conçu un cours d'enquête qui explorerait l'architecture des progiciels les plus importants qui sont à la base d'Internet. C'était le centre de l'action, digne d'un cours d'enquête qui explorerait l'architecture des progiciels les plus importants qui entourent l'Internet d'aujourd'hui.

En ce sens, les frameworks sont les nouveaux langages de programmation. C'est là que se trouvent les dernières idées, philosophies et aspects pratiques du codage moderne. Certains s'éteignent, mais beaucoup deviennent les nouveaux éléments fondamentaux de la programmation. Voici sept facettes qui alimentent la tendance du framework - et font des frameworks le nouveau foyer préféré des combats de nerds.

La plupart du codage consiste à enchaîner des API

Il fut un temps où écrire un logiciel signifiait déployer toutes vos connaissances du langage de programmation pour tirer le meilleur parti du code. Il était logique de maîtriser la complexité des pointeurs, des fonctions et de la portée - la qualité du code dépendait de la bonne action. De nos jours, l'automatisation gère une grande partie de cela. Si vous laissez des déclarations sans valeur dans le code, ne vous inquiétez pas. Le compilateur supprime le code mort. Si vous laissez des pointeurs en suspens, le ramasse-miettes le comprendra probablement.

De plus, la pratique du codage est différente maintenant. La plupart du code est maintenant une longue ligne d'appels API. Il y a un reformatage occasionnel des données entre les appels d'API, mais même ces tâches sont généralement gérées par d'autres API. Quelques chanceux parviennent à écrire du code intelligent, binaire et jonglant avec les pointeurs pour les tripes de nos machines, mais la plupart d'entre nous travaillent avec les couches supérieures. Nous exécutons simplement un tuyau entre les API.

Pour cette raison, il est plus important de comprendre comment une API se comporte et ce qu'elle peut faire. Quelles structures de données accepte-t-il? Comment les algorithmes se comportent-ils lorsque l'ensemble de données s'agrandit? Des questions comme celles-ci sont plus centrales dans la programmation d'aujourd'hui que celles sur la syntaxe ou le langage. En effet, il existe désormais un certain nombre d'outils qui simplifient l'appel d'une routine dans une langue à partir d'une autre. Il est relativement simple de lier les bibliothèques C au code Java, par exemple. Comprendre les API est ce qui compte.

Les épaules des géants valent la peine d'être debout

Imaginez que vous deveniez un disciple d'Erlang ou d'une autre nouvelle langue. Vous décidez qu'elle offre la meilleure plate-forme pour écrire une application stable et sans bogue. C'est un bon sentiment, mais il vous faudra peut-être des années pour réécrire tout le code disponible pour Java ou PHP dans votre dernier langage de choix. Bien sûr, votre code pourrait s'avérer nettement meilleur, mais cela en vaut-il la peine?

Les cadres nous permettent de tirer parti du travail acharné de ceux qui nous ont précédés. Nous pouvons ne pas aimer l'architecture qu'ils ont choisie et nous pouvons discuter des détails de mise en œuvre, mais il est plus efficace d'étouffer nos plaintes et de trouver un moyen de vivre avec les différences. Il est tellement plus facile d'hériter de tous les avantages et inconvénients de la base de code à travers un framework. Prendre la route macho en écrivant tout vous-même dans votre nouveau langage préféré plutôt que dans l'un de ses frameworks les plus populaires ne vous permettra pas de profiter de la crème de votre nouveau choix aussi rapidement que de simplement s'en remettre aux fabricants de framework et à leurs API.

Connaître l'architecture est ce qui compte, pas la syntaxe

Lorsque la plupart du codage enchaîne les appels d'API, il n'y a pas beaucoup d'avantages à apprendre les particularités du langage. Bien sûr, vous pourriez devenir un expert sur la façon dont Java initialise les champs statiques dans les objets, mais vous feriez bien mieux de comprendre comment tirer parti de la puissance de Lucene ou JavaDB ou d'une autre pile de code. Vous pourriez passer des mois à travailler sur les routines d'optimisation des compilateurs Objective-C, mais apprendre les tenants et les aboutissants de la dernière bibliothèque principale d'Apple fera vraiment crier votre code. Vous apprendrez beaucoup plus les détails difficiles du framework que la syntaxe du langage sur lequel repose le framework.

La plupart de notre code passe la plupart de son temps dans les boucles internes des bibliothèques. Obtenir les détails de la langue correcte peut aider, mais savoir ce qui se passe dans les bibliothèques peut être très rentable.

Les algorithmes dominent

L'apprentissage d'un langage de programmation peut vous aider à jongler avec les données stockées dans les variables, mais cela ne vous mène que très loin. Le véritable obstacle est d'obtenir les algorithmes corrects, et ceux-ci sont généralement définis et implémentés par les frameworks.

De nombreux programmeurs comprennent qu'il est dangereux et coûteux de passer du temps à réimplémenter des algorithmes et des structures de données standard. Bien sûr, vous pourrez peut-être l'adapter un peu à vos besoins, mais vous risquez de faire des erreurs subtiles. Les cadres ont été largement testés au fil des ans. Ils représentent notre investissement collectif dans une infrastructure logicielle. Il n'y a pas beaucoup d'exemples où il est logique de «sortir de la grille», de mettre de côté le travail acharné des autres et de construire une cabine algorithmique de vos propres mains.

La bonne approche consiste à étudier les cadres et à apprendre à les utiliser au mieux. Si vous choisissez la mauvaise structure de données, vous pouvez transformer un travail linéaire en un travail qui prend un temps qui est une fonction quadratique de la taille d'entrée. C'est un gros problème une fois que vous devenez viral.