Pages

samedi 29 juin 2013

La poésie de code 2

Partie 1

Les langues de haut niveau ressemblait pendant long temps des listes de commendes à exécuter, l’un après l’autre. Cette structure imitait en quelque sort le fonctionnement du processeur, d'abord si, puis ça, dans une liste longue et monotone. 

Bientôt, il est devenu de plus en plus populaire d’organiser les programmes en sous-programmes ou fonctions. Cela rendait les logicielles plus structurés, et surtout, ces petites rutines était facilement réutilisable. Les informaticiens sont devenus maitre de recyclage. Un certain nombre de telles langues sont apparus et ont connu des degrés de popularité variable.

 
Code écrit en C

La langue Pascal est apparue dans les années 1970 80. Elle a vite était accepté comme la langue des professionnels, bien au dessus les autres. Mais, chez les profondément initiés cette position n’a pas duré longtemps. La langue C avec son aura de hacker a bientôt pris la tête chez eux. Elle semblait très compliqué et savante à cause des nombreux parenthèses accolades sur différentes niveaux qui la rendait presque illisible pour les non inities.

Sub Factorial_Call()
 n = InputBox("Type the value for n:", "VB Samples: n!")
 If IsNumeric(n) = True Then
  If Int(n) = n Then 
      valReala = Factorial_Iterativ(n)
      Raspuns = MsgBox("The Factorial is: " & valReala, vbInformation + vbOKOnly)
      valReala = Factorial(n)
      Raspuns = MsgBox("The Factorial is: " & valReala, vbInformation + vbOKOnly)
   End If
  End If
End Sub

Code en BASIC

Au plus bas sur l'échelle de véhémence était BASIC, Beginners All-purpose Symbolic Instruction Code. La simplicité et manque finesses structurelles donnait les utilisateurs un aura de amateurs. Aujourd'hui, il existe des dialectes de BASIC modernes qui sont excellemment structurée mais cette langue a du mal à se libérer de son stigmatisation.

Des nouvelles idées sont constamment apparues sur la façon dont on devrait décrire la communication avec les ordinateurs. Une était la programmation fonctionnelle qui est basé sur l’idée que plus ou moins tout dans un logiciel peut se décrire avec des fonctions, un peu comme une langue exclusivement basé sur verbes. Un équivalent dans le monde de langues parlées serrait les langues sémitiques, l'hébreu et l'arabe, où les verbes ont des conjurations énormément complexe.

(defun factorial (n)
  (if (= n 1)
      1
      (* n (factorial (- n 1)))))

Un fonction écrit en LISP

Le plus connu dans cette catégorie est LISP où le code dans sa plus grand partie consiste à « defun », l’ingérasse pour une définition d’une fonction. L’énorme quantité de parenthèses est vite devenue un problème. Mais, les éditeurs modernes sont malin et quand le souries et sur un d’elle son correspondant, soit à gauche ou à droit change du couleur. Les adeptes de programmation dans cette manière montraient parfois un dévouement extrême. Un exemple est une chanson avec le titre God wrote in Lisp.  À une autre époque on croyait que Dieu parlait l'hébreu, mais les temps ont changés.

Ces langues folles de verbes en impérative, faites ceci faites cela, ont eu la concurrence de langues qui commençaient à apprécier le charme de ce qu'on pourrait appeler les noms du monde informatique. Le résultat de cette évolution a été la programmation dite orientée vers objets. Tout a commencé en Norvège, où ils ont créé le Simula une langue qui contrairement à beaucoup programmation précédente à considérer des choses comme l’élément central, non seulement des événements.

Les objets sont des représentations abstraites des phénomènes remplie des choses. Un objet peut héberger un peut de tout, variables fonctions et même d’autre objets. Un objet pour un bouton sur l’écran  peut par exemple héberger la taille, la couleur, le texte et une fonction qui changent les ombres des bordures quant il a été appuyé. Il est facile à réutilisé et la complexité ne salit pas les essentielles dans la logiciel. Les langages de programmation ont finalement atteint que les noms sont des choses, comme vélo, ballon et bouton, et la possibilité de décrire ce qui se réellement doit se passer avec eux.

Des langues influents orientée vers objets tels que C + +, (prononcé : C-plus-plus), ont fait une tempête dans les années 1990. Remplie d’objets et classes, (une collection d’objet mais parfois l’objet lui-même), ils sont devenus progressivement carrément artistique. La langue Java est encore si intransigeante que le logiciel lui-même est une classe.

Bien que les langues de programmation soient devenues plus performantes et plus complexes, celui que je personnellement trouve le plus esthétiquement fascinant est la Forth. Elle n’est pas si populaire aujourd'hui, mais elle a eu son heure de gloire. Le Forth serrait Fourth pour exprimer une langue de la 4eme génération mais le «u» manquant s’explique par manque de place dans des ordinateurs encore assez primitives. Surtout, cette langue utilise ce qu'on appelle la notation polonaise inversé. Quand on dans une langue normal écrirt A=2+3 le formule en Forth est 2 3 + A =.  Cette langue est aussi connue pour être exceptionnellement compact mais malheureusement aussi presque impossible à lire. Un petit programme, (intitulé GCD et écrit par Hans Lunell), qui calcule le plus grand diviseur commun de deux nombres en Forth peut s’écrire par la formulation concise suivant :

: GCD BEGIN SWAP OVER MOD ?DUP 0 = UNTIL ;

Si cela n’est pas de la poésie, que l’est ?

Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.