Neue Programmiersprachen zerstören leise unsere Verbindung zur RealitÀt



Eines Tages wird der Tag kommen, an dem die Teams in der Programmierung aussehen werden wie "Hey Computer, gib mir dieses verdammte Ding."

Was unter der Haube sein wird, wird keine lebende Seele verstehen. Der Befehl "crap" wird in einem Absatz mit einer Beschreibung interpretiert, die in SchlĂŒsselwörter interpretiert wird, die in eine Reihe von Vektornotationen interpretiert wird, die in einem C interpretiert werden, das in ... kompiliert wird.

und irgendwo dort unten wird es sich in elektrische Impulse auf EisenstĂŒcken verwandeln.

Programmierer werden hochkarÀtige Geisteswissenschaften mit "hohen verbalen FÀhigkeiten, KommunikationsfÀhigkeiten und der FÀhigkeit, ein KindermÀdchen in einem Team zu sein" sein. Gott sei Dank bis heute, was Alaska in einem Team betrifft, aber jedes Mal, wenn wir einen anderen Kotlin erfinden, bringen wir diesen Tag nÀher.

Ich habe mich nur gefragt, ob unsere YaPs schon so etwas geworden sind. Etwas intelligenteres Äquivalent zum Ausdruck "Computer, mach eine Scheiße". Eine Reihe formalisierter Protokolle fĂŒr ElektrizitĂ€t, die wir bereits vergessen haben. Eine Sache, die unsere Verbindung zur mechanischen RealitĂ€t zunehmend zerreißt.

Ich höre oft den Satz: "Phil, zieh dich zurĂŒck, hör auf ĂŒber all diesen Unsinn nachzudenken." Aber verdammt, verdammt an dem Tag, an dem sie ĂŒber das HabrĂ© schreiben: "Hör auf zu denken."



Ich habe viele kleine Projekte in Arbeit und wir verwenden verschiedene Stapel - .net, React.ts, c ++, Java. In dem, was du zumindest ein wenig durchwĂŒhlt bist, werden sie an dir hĂ€ngen. Ich bin als Spender gekommen, aber es gibt Aufgaben im Vorstand fĂŒr alle Anwendungen, auch den Zugriff auf Repositories.

Ein Fall entstand, als alle Aufgaben auf meinem Stapel Scheiße waren, die nur ein VerrĂŒckter ĂŒbernehmen wĂŒrde. Ich bin kein VerrĂŒckter und fing an, mich mit Typoskript zu beschĂ€ftigen und zu reagieren, dann mit Java. Alle Anwendungen machen ungefĂ€hr dasselbe, sind jedoch fĂŒr verschiedene Plattformen konzipiert. Ich hatte keine Probleme

Also habe ich eine Sache geschrieben, die den besten VPN-Server fĂŒr Sharps auswĂ€hlt. Hier habe ich dasselbe in Java gemacht. Das Gleiche, genau so. Anfangs legte er keinen Wert darauf, aber irgendwann war es schon sehr schwierig, das Muster nicht zu bemerken.

Ich habe das gleiche in verschiedenen Programmiersprachen gemacht. Dieser Code war sehr Ă€hnlich, mit Ausnahme von Details, die die Aufgabe ĂŒberhaupt nicht beeinflussten. Schließlich kommt das GeschĂ€ft nicht mit den Worten zu mir: „Hey Phil! Wir mĂŒssen abstrakte Klassen verwenden, um dem Client den Status der Verbindung anzuzeigen. “ Unternehmen und Benutzer möchten, dass das GerĂ€t ihnen ein Bild anzeigt. Ja, und ich möchte ihnen auch wirklich nur dieses Bild zeigen.

Aber ich kann nicht. Sie können dem Auto nicht einfach sagen: Tun Sie, was ich brauche. Bisher bin ich der Zwischeninterpreter, der den Ausdruck "mach einen Fick" in Befehle umwandelt, wĂ€hrend ich dem Prozessor noch ausfĂŒhrlich erklĂ€ren und Schritt fĂŒr Schritt erklĂ€ren muss, wo und wie die verdammten Bytes abgelegt werden sollen.

Aber ich arbeite nicht mehr mit Bytes. Ich arbeite auf einer sehr abstrakten Ebene mit den Teilen, aus denen die Fabrik der Mechanismusfabriken besteht, die diese Bytes steuern. Da unten ist ein StĂŒck Eisen, und es ist noch komplizierter - ich habe keine Ahnung, wie das dort gemacht wird. Aber es geschieht durch hundert Prismen, von denen ich auch keine Ahnung habe. Sie "denkt" die HĂ€lfte von dem aus, was ich dem Auto selbst sagen möchte, und ich weiß nicht wie.

Es war, als hÀtte ich die Motorhaube des Autos versiegelt und begonnen, sie durch das Auspuffrohr zu reparieren, das jedes Jahr lÀnger und lÀnger wird. Um den Motor zu reparieren, muss ich nur einmal in das Rohr schreien und darf es nicht in die HÀnde bekommen.

Der Subcompiler verwandelt mein Sisharp in eine Zwischensprache (IL), die zum Auto des Kunden geht, wo wiederum ein anderer Subcompiler (Just-in-Time) meine IL im laufenden Betrieb in plattformspezifischen Code umwandelt, der wiederum dem Prozessor zugefĂŒhrt wird ...

Und irgendwo dort werden alle meine formalen Beschreibungen, alle Unterschiede zwischen YaPs gelöscht und sie tun dasselbe. An den Fingern:

Ich weiß, dass der Prozessor den O1-Befehl kennt. Nachdem er es erhalten hat, blĂ€st er Strom in den eingebauten mikrodynamischen Lautsprecher, irgendwo wird etwas angeschlossen und ein Piepton ertönt.

Und hier schreibe ich auf die Sycharpe:

using System;
Console.Beep(500,500);

1

:

#include <windows.h>

Beep(500,500);

1.

, , System.Console, windows.h? , , . , , .

, . - , , , . , — , .

. , , . , « », .

, — , ? , , , .

? , 2019 .

, — , . , , . , , , , , , . .

, « , x86 ARM. », . . , , .



, . . , - , , , , — , . - - . .

- (, , , , — ) . , , , . . , . , . .

— . . , , , - . — , , . , , , . .

«, , », ? , , , . , .

- , - , «» «» — , . , : « !? , ».

, , .
. , , .

, . , , .

20 , , , , . .

- « » , , — . , . .

. , « » . , , , . , , , . , , , , — . « » — . , , . ( - , «-»).

— . , , . , - — , . , , . -. , .

, , , . . — , , - . , .

. -, . — , , , . , , , , . — .

, — . , , , — . . . .

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


All Articles