Gesichtsloser Code beendet die Programmierung und wir werden nichts dagegen unternehmen.


WĂ€hrend des nĂ€chsten Streits Ă€ußerte ein Freund einen Gedanken, der mich sehr traf. „In den meisten populĂ€ren YaPs gibt es so viele verschiedene Möglichkeiten, dasselbe zu tun. Dies fĂŒhrt zu Problemen. Aber in Go ist nicht alles so. Die Philosophie der Sprache ist, dass auf Go verschiedene Entwickler die gleichen Probleme auf die gleiche Weise lösen. Daher ist ihr Code leicht zu lesen, vorhersehbar und zuverlĂ€ssig. Und so wĂ€hlt das große Unternehmen Go. “ Dies ist ein ziemlich schlagkrĂ€ftiges Argument, das sorgfĂ€ltig geprĂŒft werden muss, bevor es widerlegt wird.


Deshalb habe ich es doppelt verbreitet, mich an den Mangel an Generika geklammert und eine kluge Idee mitgenommen, mehrere Tage damit gelebt und irgendwann meine dĂŒstere Vision geformt.


Meine Aufgabe ist es, aus einer unendlichen Anzahl von Kombinationen die am besten geeignete Lösung auszuwĂ€hlen. DafĂŒr werde ich bezahlt, und dafĂŒr liebe ich meine Arbeit und damit mein Leben. Aber sie sagen mir - eine super Lösung wird nicht benötigt. Du brauchst das Übliche. Weil das fertige Produkt wichtiger ist als seine Umsetzung.


Wenn sie mich auf die Straße werfen und einen Narren an meiner Stelle nehmen, kann er leicht mit meinem Code arbeiten. Das Unternehmen wird sich also viel wohler fĂŒhlen. Unternehmen wollen nicht vom Zufall abhĂ€ngig sein. Die Idee, dass die schlechte Laune des fĂŒhrenden Entwicklers einen Gewinn aus dem GeschĂ€ft ziehen wird, spricht Top-Manager nicht an. Sie wurden zu Top-Managern, weil sie wissen, wie sie Situationen vermeiden können, in denen ihr heiliges GeschĂ€ft Geld verliert. Und jetzt leben wir in einer Zeit, in der „gut gemacht“ und „profitabel“ zwei verschiedene Dinge sind.


Und ich verstehe, wie wir dazu gekommen sind. Ich werde es jetzt erklÀren, pass auf deine Finger auf:



Ich glaube, wie die meisten Ingenieure, dass ich großartige Dinge mache. Was ich erfinde, automatisiere, mit meiner Arbeit und meinem Gehirn mache, ist das Leben der ganzen Menschheit besser, wĂ€hrend alle Obskurantisten nur ihre Zungen knirschen. Aber dann ziehe ich meine Nase aus meinem Code-Editor und bin entsetzt darĂŒber, wie grausam ich mich irre.


Was zum Teufel mache ich?


Ich denke also ĂŒber die Architektur eines hoch belasteten Systems nach, aber in 95% der FĂ€lle werden sie es verwenden, um Selfies auf meinem Telefon schnell mit Mustern und Fotos meines geliebten Hundes zu sortieren. Ich entwickle also einen VPN-Client und was werden sie damit machen? Alle möglichen Pornos und dummen Piratenfilme ansehen?


Mein Gehirn wird von einer kleinen Wunschliste von Minute zu Minute bedient, damit die Leute mir Geld bringen, damit ich auch meine Wunschliste befriedige.


IT macht gute Dinge, aber ihr Prozentsatz ist vernachlĂ€ssigbar. Die meisten erfĂŒllen verrĂŒckte BedĂŒrfnisse, die es vorher einfach nicht gab, weil es keine IT gab. Das heißt, Ingenieure machen keine großartigen Dinge, Ingenieure warten einfach die Infrastruktur fĂŒr den Teigtransfer zwischen Menschen.


Unter solchen UmstĂ€nden ist das Schreiben von gutem Code nicht mehr erforderlich. Dies ist nur notwendig, damit ich mehr Spaß beim Arbeiten habe und nicht lĂ€nger ausbrenne. Aber frĂŒher oder spĂ€ter kommt der Top-Manager und sagt: „Das war's, Nagel und Kugel. Es ist Zeit, die Beute zu schneiden. "


Anstelle des abstrakten „universellen Gutes“ lernte die IT, sich einer niedrigen Wunschliste hinzugeben, und hat sich nur deshalb zu einer gigantischen Branche entwickelt, in der Hunderte Millionen Menschen arbeiten. FrĂŒher war das Programmieren eine Frage der Elite, jetzt sitzt jeder Trottel etwa ein Jahr lang und schreibt Code.


Und wenn er in die Branche einsteigt, bleibt keine Zeit, tief zu graben - das Produkt wird heute Abend benötigt, sonst verlieren wir Geld. Tiefes Graben und Lernen von Technologie wird zu einem Hobby, das nur notwendig ist, um nicht von der Verwirklichung Ihrer eigenen Wertlosigkeit verrĂŒckt zu werden.


In einem System, in dem Sie einmal pro Woche eine neue Funktion auf den Markt bringen mĂŒssen, benötigen Sie einfache AnsĂ€tze und primitive Tools. Wenn ein cooler Entwickler eine neue Technologie entwickelt, versucht er, sie so zu gestalten, dass sie von der Mehrheit nachgefragt wird, da die Nachfrage der Mehrheit der Hauptwert der modernen Welt ist. Deshalb gibt es solche Philosophien und solche hier.


Und ich denke - ich brauche das alles nicht. Dies alles fĂŒhrt zur Ablehnung.


Wenn Sie genau hinschauen, ist mein VSCode voller gefĂ€hrlicher Symptome. Mein tslint erlaubt mir nicht, zusĂ€tzlichen Platz hinzuzufĂŒgen. Mein Code wird nicht erstellt, wenn ich eine Variable mit dem falschen Buchstaben benannt habe. Mein Compiler funktioniert nicht, da ich der öffentlichen Methode keine Kommentare hinzugefĂŒgt habe. Hier ist alles einfach - schreibe, Leute, den gleichen Code. Gesichtsloser Code. Dies ist kein Roman fĂŒr dich, was zum Teufel ist der Stil des Autors ?!


Ich stimme im Allgemeinen zu, dass solche Konventionen eine gute Sache sind, aber nur solange sie sich auf das Erscheinungsbild des Codes beziehen. Der Moment, in dem Ihnen die Möglichkeit genommen wird, zu entscheiden, wie dieser Code funktionieren soll, ist mein schlimmster Albtraum. Stellen Sie sich einen Fall vor: Sie haben ein komplexes leistungsempfindliches Modul geschrieben, und sie sagen Ihnen: „Hören Sie, es ist zu kompliziert. Machen wir es einfacher, es ist nicht wichtig, dass es schlechter funktioniert. " Klingt das absurd? Und so wird es auch sein. Im Ernst. Ja, das ist es schon. Sie haben Go keine Generika hinzugefĂŒgt, da Generika komplex sind.


Go ist ein GeschĂ€ftseffekt, keine technische Lösung. Er widerspricht sich. Hier will er ZuverlĂ€ssigkeit, und das lĂ€sst die KomplexitĂ€t. Die KomplexitĂ€t in der Branche wurde jedoch durch ZuverlĂ€ssigkeit erreicht. Generika existieren nur aus GrĂŒnden der ZuverlĂ€ssigkeit, um mögliche Fehler in der Entwicklungszeit zu antizipieren. Und ja, sie sind ziemlich kompliziert.


Beim Programmieren möchte ich kreativ sein. Ich möchte beim Entwerfen eines Systems eine Vielzahl von Optionen haben. Wir simulieren die RealitĂ€t in der Welt der Maschinen, aber ich weiß sicher: RealitĂ€t ist keine einfache Sache, es gibt keine richtigen und falschen Antworten. Und ich habe das GefĂŒhl, dass Technologien wie Go nach einfachen Antworten suchen. Lassen Sie uns fĂŒr jede Aufgabe eine richtige Entscheidung treffen. Aber das ist ein Scherz! Es mag funktionieren, aber es gibt immer eine bessere Lösung. Und unter dem Druck der Tatsache, dass wir keine Budgets fĂŒr hochwertige Lösungen haben, töten wir Software selbst und sind dann enttĂ€uscht, dass alles schlecht funktioniert.



Die Philosophie des gesichtslosen Codes möchte mich zu einer Maschine machen, die das Boilerplate kopiert und einfĂŒgt. Und wenn ich darĂŒber nachdenke, komme ich zu einem noch schrecklicheren Widerspruch.


Ich habe immer geglaubt, dass die Grundbotschaft der Entwicklung lautet: "Alles, was automatisiert werden kann, muss automatisiert werden." Aber die Ironie ist, dass meine Botschaft auch fatal ist.


Ich bin nicht bereit, etwas zu tun, was eine Maschine, die ich bauen kann, tun könnte. Das ist irrational, und mir wurde beigebracht, rational zu sein. Aber da ich alles automatisieren muss, stellt sich heraus, dass ich automatisieren und automatisieren muss - also Entwicklung. Und es stellt sich heraus, dass wir mit den Sprachen zufrieden sein sollten, die uns allmĂ€hlich dazu bringen. Das heißt, mein Beruf sollte, wie die meisten anderen, in einer idealen Welt nicht existieren.


Fortschritt kann nicht gestoppt werden. Aber er kann verschiedene Wege gehen, von denen ich mir sicher bin. Wenn sich die Programmierung jetzt auf die Go-Spur und die gesichtslosen Praktiken konzentriert, kommen wir zu der Kurve und nicht zur optimierten Automatisierung, die Sie sich vorstellen können.


Meine Lösung des Problems ist utopisch und wird Kritik nicht standhalten. Ich verstehe, dass es zu spÀt ist, es anzubieten, aber immer noch.


Ich wĂŒrde Business und IT trennen, damit nur gemeinnĂŒtzige Organisationen programmieren können. Und dass ihre PrioritĂ€t eine tiefgreifende Verbesserung der Technologie sein sollte, die frei vom tĂ€glichen Fluss ist. Dass die Forderung „Wir geben frei, was ist, sonst geht der Gewinn weg“ moralisch inakzeptabel war. Ich wĂŒrde mein Bestes tun, um den Schwellenwert fĂŒr die Eingabe der Programmierung so hoch wie möglich zu halten, damit sich die Tools nicht an den durchschnittlichen Entwickler anpassen, wenn ein erfahrener Ingenieur und der gestrige Absolvent der Kurse gezwungen sind, denselben Code zu schreiben.


Ja, dies wird den Fortschritt fĂŒr Jahrhunderte verlangsamen und unser Leben all der schönen Brötchen berauben, an denen wir tĂ€glich festhalten. Aber zumindest wird dies die Idee des Fortschritts zu der Art zurĂŒckbringen, an die wir an die Momente unserer stĂ€rksten idealistischen Impulse glauben.

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


All Articles