Stanford, wir scheinen ein Problem zu haben ...

Für Ihr Gericht ist es eher eine Artikelfrage, eine Artikel-Argumentation und an einigen Stellen Verwirrung. Einerseits wurde uns die maßgebliche Meinung von Leslie Lamport vorgestellt, "Programmieren sollte mehr als Codieren sein", die Programmieren und Codieren in eine spontane Rangliste einordnet. Auf der anderen Seite ich, der ich keinen ausreichenden Status für Streitigkeiten mit dem Meister und der legendären Universität habe, die er vertritt ... aber ich kann mir solche Freude und dieses Risiko nicht verweigern. Ich hoffe, dass erfahrene Kameraden meine Denkfehler korrigieren.


Ich verstehe intellektuell, dass das Codieren in der modernen Welt normalerweise als das niedrigste Maß an technischer Aktivität wahrgenommen wird, das auf dem Evolutionsdiagramm einem Schimpansen näher steht als einem Programmierer. Und vielleicht ist dies unser großer Fehler, weil der Code wie DNA ist. Nur vier Nukleotide und was für eine bunte Biomasse in der Produktlinie.


Als erfahrene Ingenieure sind wir Meister der Abstraktion. Daher wird es für uns nicht schwierig sein, einen bedingten Programmierer namens Leslie Lampport vorzustellen (alle Namen und Übereinstimmungen sind nicht zufällig), und sein Hauptwerkzeug ist die Turing-Maschine. Er ist ein Meister seines Fachs, vor allem dank des eisernen Tao:


  1. Entscheiden Sie, was das Programm tun soll.
  2. Bestimmen Sie, wie genau es seine Aufgabe erfüllen soll.
  3. Schreiben Sie den entsprechenden Code.

Der letzte Schritt, obwohl er ihm wichtig erscheint, mag ihn eindeutig nicht und schlägt vor, ihn zu ignorieren. Und damit ist es schwer zu streiten. Das Bewegen des Zeigers entlang des endlosen Bandes einer Turingmaschine ist eine tödliche Sehnsucht.


Und hier wird sein Genie voll offenbart. Aber dieser Prozess muss wie ein Filzstift mit Fingerhüten sehr sorgfältig überwacht werden. Er nimmt drei Punkte seines Programms und legt einen Ball mit einem Code unter den letzten. Wir nicken und setzen Wetten. Dann werden die Fingerhüte absichtlich langsam gemischt. Wo ist der Code?


Wir haben praktisch keinen Zweifel, wo der dritte Fingerhut ist, und der Code ist ... unter Fingerhut Nummer 1. Die Zuschauer sind geschockt, Herr Lamport sieht ebenfalls verwirrt aus, aber in seinem Herzen weiß er, dass er betrogen hat. Und genau in diesem Moment, als er den Ball leise mit dem Code aus Punkt 3 in Punkt 1 rollte, wollte ich ihn unbedingt am Ärmel packen.


Was wie eine Ente aussieht, quakt wie eine Ente, und selbst es ist sicher, dass die Ente am wahrscheinlichsten ist. Wenn Sie die TLA + -Sprache für Spezifikationen entwickelt haben und mit all ihrem Aussehen und Verhalten schreien, dass es sich um einen Code handelt, dann ist es das. Die Tatsache, dass Sie es in der Phase der Programmspezifikation verwendet haben, dh Punkt 1 der "Entscheidung, was das Programm tun soll", hat Sie nicht von der Notwendigkeit befreit, dass Punkt 3 "den entsprechenden Code schreibt".


Lassen Sie uns Leslie für zehn Jahre interpolieren, in denen er die von ihm erstellte TLA + methodisch verwendet, um Spezifikationen zu schreiben. Ich denke, unabhängig davon, ob Analysten, wir, Architekten oder Datenbankingenieure, widerwillig zugeben, dass wir im routinemäßigsten Sinne des Wortes so etwas wie ein Programmierer werden. Unterschiedliche Dialekte, unterschiedliche Wörterbücher, aber der gleiche Reflexapparat, der bei unserem Charakter mit einem gelangweilten Aussehen Entwurfsmuster, ER-Diagramme oder Spezifikationen hervorbringt. Und jetzt verbirgt der Autor der These, dass "Codierung nicht so wichtig ist", unter dem Scheinpunkt Nr. 1 genau diese Codierung.


Zur Veranschaulichung werde ich einen weiteren Zeugen einladen, nennen wir ihn John McCarthy. Das Programmieren einer Turing-Maschine macht jeden so wütend wie John, besonders wenn es um die Aufgaben geht, die er auf dem Gebiet der künstlichen Intelligenz so sehr liebt. Und zur Errettung erfindet er einen neuen, deklarativen Codierungsstil, um zu beschreiben, wie die Aufgabe ausgeführt werden soll (Absatz 2 der Leslie-Liste). Nennen wir es bedingt LISP.


Nehmen wir an, John hat in seinem Leben kein einziges Programm geschrieben, das ihn nach Lamports Formel auf der Ebene des Planktons in die Rangliste einreiht, obwohl er die direkteste Beziehung zum Code hat. Es stellt sich die Frage, wie verwirrt er ist und was er ihm bei einem Treffen sagen wird.


Ich werde nicht Dutzende identischer Beispiele langweilen, aber ich werde versuchen, dem Gericht der Kollegen eine Zusammenfassung anzubieten. Codierung ist der Puls der Entwicklung. Es ist in allen Stadien in der einen oder anderen Form vorhanden. Ein Kardiogramm sieht langweilig aus, ist aber ein notwendiger Indikator dafür, dass das Projekt lebt. Daher taucht der Wortlaut * -as-a-Code zunehmend auf.


Wir sind alle Programmierer. Wir haben einen bestimmten Apparat und Regeln dafür, nur jeder macht es auf seiner eigenen Etage. Es gibt keinen berechtigten Grund dafür, dass eine Person, die PHP-Code erstellt, etwas dümmer ist als ein Analyst, der ausführbare Spezifikationen erstellt, und zusammen gegen einen jungen Hacker verliert, der sofort in Maschinencodes denkt.


Der Unterschied besteht darin, dass einige von uns etwas sehen, das andere nicht bemerkt haben, und diesem Prozess einen Mehrwert verleihen. McCarthy - LISP, Lampport - LaTeX und TLA +. Und wenn Sie Codes wie das Dezimalzahlensystem, das Braille-Alphabet, das Radio oder Emoticons sortieren, sagt Ihre Zunge nicht, dass "Programmieren mehr sein sollte als Codieren".


PS Vielleicht möchte jemand von den Konferenzbesuchern die aufgeworfenen Fragen stellen. Wenn sie dem Sprecher und dem Publikum albern erscheinen, dann bringen Sie mir alles.


PPS Es ist so passiert, dass ich viele Materialien zum Thema Code und Codierung habe, und wenn dieses Thema von Interesse ist, werde ich es gerne teilen.

Source: https://habr.com/ru/post/de455214/


All Articles