211service.com
Sur les règles
Le vendredi 6 avril 1327, lors de la messe de Pâques en l'église Sainte-Claire d'Avignon, Francesco Petrarca aperçoit la femme qu'il commémorera sous le nom de Laura et en tombe irrévocablement amoureux. Pétrarque avait 23 ans. Si la tradition littéraire a raison d'identifier l'objet de sa coup de foudre comme Laura de Noves, elle avait 17 ans.

Jason Pontin, rédacteur en chef et éditeur
Pétrarque n'a probablement jamais rencontré Laura ; elle a refusé de le voir parce qu'elle était déjà mariée. Mais à sa mort en 1374, il avait composé des centaines de poèmes vantant sa beauté, déplorant son malheur et pleurant sa mort prématurée à l'âge de 38 ans, une mère respectable de 11 ans.
Cette histoire faisait partie de notre numéro de janvier 2007
- Voir le reste du numéro
- S'abonner
Les poèmes sont rassemblés dans un livre communément appelé La Canzonière , ou le livre de chansons. Pour faire l'éloge de Laura, Pétrarque a perfectionné la forme lyrique appelée le sonnet, qui dans ses mains se compose de 14 lignes, généralement des hendécasyllabes, rimant abba, abba, cdc, dcd ou une autre variante. Cette petite forme grincheuse a été imitée par des milliers de poètes et a inspiré de nombreux exemples célèbres d'art littéraire. Le sonnet de Pétrarque a été appelé une cage, mais c'est une cage qui capture une économie de pensée particulière : l'octave, les huit premiers vers, offre une proposition quelconque qui est résolue de manière satisfaisante dans le sestet, les six derniers vers. Les règles d'un sonnet sont strictes mais simples.
En revanche, considérons le langage de programmation C++.
Multimédia
Regardez la vidéo de l'éditeur.
Un programme, comme un poème, est une forme d'expression d'idées : dans un cas, des mots en langage naturel, contraints à l'intérieur d'une parole, expriment l'amour d'un homme pour une jolie femme ; dans l'autre, le code informatique, lié par les conventions syntaxiques d'un langage de programmation, exprime l'idée, disons, qu'un robot extraterrestre comme le Mars Rover pourrait avoir un système de conduite autonome et embarqué.
C++ est sans doute le langage le plus influent des 25 dernières années ; de nombreux systèmes et applications de l'ère des ordinateurs personnels et d'Internet y ont été écrits, y compris le moteur de recherche de Google et les systèmes de commutation électronique qui sous-tendent nos réseaux de télécommunications. Mais pour tout cela, C++ est notoirement difficile à apprendre et à utiliser. Cela est dû en partie à la difficulté de maîtriser la méthode paradigmatique du langage, appelée programmation orientée objet. Mais c'est principalement parce que les développeurs de logiciels sont libres d'exprimer leurs idées en C++ sous une variété déconcertante de formes.
Dans La conception et l'évolution du C++ , l'inventeur du langage, Bjarne Stroustrup (que nous interviewons dans ce numéro spécial sur les logiciels ; voir Le problème de la programmation ), explique qu'il a conçu le langage de cette façon pour des raisons quasi philosophiques : je trouve le souci presque fanatique de Kierkegaard pour l'individu beaucoup plus plus séduisants que les grandioses projets d'humanité de Hegel et de Marx. … Souvent, lorsque j'étais tenté de mettre hors-la-loi une fonctionnalité que je n'aimais pas, je m'abstenais de le faire parce que je ne pensais pas avoir le droit d'imposer mes opinions aux autres.
La retenue de Stroustrup n'a pas plu aux générations de programmeurs qui ont lutté avec les bizarreries de la syntaxe et la surcharge de fonctionnalités du C++ (pour utiliser le jargon du codeur). Lorsqu'une version de notre interview avec Stroustrup a été publiée sur Slashdot, un site Web d'agrégation qui propose des nouvelles pour les nerds, elle a attiré 605 commentaires. JCR a demandé : Pourquoi le C++ introduit-il autant de complexité pour si peu d'avantages ? Les règles du C++ sont compliquées mais laxistes.
Les langages de programmation affectent plus de personnes que les codeurs professionnels. Bien que notre civilisation technologique fonctionne sur des logiciels, les logiciels ne fonctionnent pas très bien. Comme le dit notre article de couverture par Scott Rosenberg, Partout où vous regardez, les logiciels sont hors budget, en retard, peu sûrs, peu fiables et difficiles à utiliser (voir Tout ce que vous pouvez faire, je peux faire du méta ) . Les langages de programmation excessivement compliqués, dont le C++ est un exemple, sont une raison majeure de la confusion des logiciels. En effet, un langage de programmation utile devrait être ce que les informaticiens appellent une abstraction de la complexité sous-jacente des flux de contrôle et des structures de données. C++ préserve pour les programmeurs la plus grande liberté d'expression possible ; mais comme JLeslie (un autre commentateur de Slashdot) l'a admis, le coût était que ce n'était pas vraiment une abstraction.
Il y a peut-être un autre moyen. Charles Simonyi, l'ancien architecte en chef de Microsoft, qui est maintenant le chef d'Intentional Software, veut renverser les langages de programmation pour ce qu'il appelle la programmation intentionnelle. Le profil de Rosenberg de Simonyi explique comment la programmation intentionnelle pourrait donner aux développeurs un ordre d'abstraction plus élevé. Plutôt que d'écrire du code logiciel dans des langages de programmation, les programmeurs abandonneraient avec reconnaissance la production de code à un générateur qui avalerait leurs conceptions, représentant les intentions des utilisateurs d'ordinateurs, et cracherait du code fonctionnel dans un langage que les ordinateurs pourraient comprendre, compiler et exécuter. .
La meilleure expression des idées se produit sous des formes strictes et simples. Charles Simonyi pourrait-il offrir aux programmeurs une nouvelle forme à la fois plus simple et plus rigoureuse que tout ce qu'ils ont eu auparavant ? Écrivez-moi et dites-moi à [email protected]
