In der Software ist alles erstaunlich, aber jeder ist unglücklich



Es gibt eine typische Position bei Habré und nicht nur: "Obwohl Hardware im Laufe der Jahre besser ist, hat die Menschheit den Effekt durch das Schreiben von Software auf nichts reduziert."

Es gibt zwar mehr Kerne in den Prozessoren, aber es verlangsamt sich mehr denn je. Electron und Slack sind Kreaturen der Dunkelheit, die gekommen sind, um uns Glück und Erinnerung zu rauben. Mobile Anwendungen sind unersättlicher geworden als ältere Betriebssysteme. Und in den Betriebssystemen selbst gibt es wirklich keine Fortschritte, aber aus irgendeinem Grund nehmen sie weiter an Größe zu. Ob es war, als die Leute wussten, wie man das Betriebssystem auf eine Diskette passt!

Ich werde direkt sagen: Wenn ich solche Aussagen sehe, bombardieren sie mich. Meiner Meinung nach vermissen sie eine Reihe wichtiger Faktoren. Und am Ende ähnelt die Situation Louis X Kays klassischer Rede " Alles ist erstaunlich und niemand ist glücklich".": Alles war überraschend gut und die Leute sitzen und beschweren sich.

Deshalb habe ich mich entschlossen, diese fehlenden Faktoren zu beschreiben. Da sich der Text als hart herausstellte, möchte ich betonen, dass meine Meinung rein persönlich ist (obwohl ich mich auf die Konferenzen des Unternehmens beziehe, in dem ich arbeite).

Speicherselektivität


Es ist bekannt, dass es einen nostalgischen Effekt gibt: "Früher war das Gras grüner und die Musik war besser." Aber meiner Meinung nach nimmt dieser Effekt für viele erschreckende Ausmaße an, wenn Empfindungen dramatisch von der Realität abweichen.

Ich spreche von Aussagen wie diesen: "Fast alles auf einem Computer fühlt sich langsamer an als 1983." Nach Tausenden von Likes zu urteilen, ist dies keine isolierte, sondern eine massive Meinung.


Meine erste Reaktion: "Nun, wie war das Streaming von 4K-Videos im Jahr 1983?" Das heißt, für den Anfang erinnern wir uns, dass die meisten heutigen Computeranwendungen bisher unmöglich waren, auch nur wegen der Geschwindigkeit. Einmal musste ein Film (nicht einmal in 4K, sondern in 1080p) monatelang heruntergeladen werden, und dann konnte der Computer ihn nicht mit 24 FPS abspielen. Und wie kann man dann die aktuelle Geschwindigkeit mit einer vergleichen, die so unerschwinglich niedrig wäre, dass sie überhaupt nicht existiert?

Zweite Reaktion: Ja, einige Dinge, die von der Befehlszeile zur GUI verschoben wurden, können dort länger dauern. Ich bin bereit zu glauben, dass Word im Jahr 2020 langsamer startet als der Konsoleneditor vi im Jahr 1983 (ich kann es nicht persönlich vergleichen: Es war das erste Mal, dass ich in den 90er Jahren an meinem Computer saß). Wenn dies für Sie jedoch so wichtig ist, können Sie die Befehlszeile auch 2020 für viele „Aufgaben aus den 80er Jahren“ verwenden. Ich schreibe diesen Text gerade in vim - einem großartigen Editor, mit dem das Plugin-Ökosystem mit der Zeit geht. Sieht auf dem modernen Retina-iMac gut aus: Buchstaben sind sehr klar geworden und funktionieren immer noch sofort. Was ist das Problem?

Aber das Wichtigste ist nicht einmal in den beiden genannten Dingen. Wichtiger ist Folgendes: Meiner Meinung nach vergaßen wir, wie sehr Computer langsamer wurden. Wenn sich etwas stärker verlangsamt, bemerken wir es sofort - aber wenn etwas schneller oder einfacher wird, nehmen wir es einfach als selbstverständlich an und vergessen die Vergangenheit.

An alle Leute, die schreiben: „Früher war alles schneller“, habe ich folgende Frage: Erinnern Sie sich zum Beispiel daran?


Ich gebe ehrlich zu: Ich selbst erinnere mich nicht besonders daran. Wenn ich heute den Computer ausschalte, denke ich nicht daran, dass ich vor zwanzig Jahren zwischen dem Drücken einer Taste im Betriebssystem und dem Drücken einer Taste auf der Systemeinheit gesessen und gewartet habe. Ich habe es einfach als selbstverständlich angesehen, dass es jetzt nicht mehr so ​​notwendig ist, und vergessen, was anders ist.

Mit dem Start des Computers gab es auch große Änderungen. Jetzt setze ich mich an den Aimak, drücke eine Taste und nach einer Sekunde ist er betriebsbereit (dank SSD und Schlafmodus). Als ich in meiner Kindheit darauf wartete, dass Windows von der Festplatte bootet, hätte ich kaum geglaubt, dass ich das noch erleben würde.

"Wenn in einem Brief Hunderte von Bildern enthalten sind, öffnet es sich furchtbar langsam, manchmal sogar zehn Sekunden!" Ich verstehe, dass dies ärgerlich sein kann - aber hören Sie im Jahr 2000 zu, um die E-Mails zu überprüfen. Ich habe zuerst eine Minute lang die Modem-Triller genossen, dann gewartet, bis die Hauptseite der E-Mails langsam geladen wurde, und dann wurde auch der Brief selbst nicht sofort geladen - und das war es nicht überhaupt keine Bilder, nur Text. Heute würde dies unverzüglich eröffnet. Vielleicht müssen Sie nicht tausend Bilder ein Kommunikationsmittel einschlagen, das für ein anderes erfunden wurde? Und bevor wir erklären, dass „alles schlecht gelaufen ist“, überlegen wir uns: Wie lange würde ein Brief mit so vielen Bildern im Jahr 2000 geöffnet sein?

Oder hier ist eine andere Erinnerung, die in der Zeit verloren geht, wie Tränen im Regen. Ein solcher Witz war in den 2000er Jahren beliebt: "Ein langsamer Computer ist, wenn Sie die Namen aller Photoshop-Entwickler kennen." Für diejenigen, denen das nichts bedeutet: Dann war Spiral Photoshop in Russland sehr beliebt, und jedes Mal, wenn es gestartet wurde, mussten sich die Russen lange damit beschäftigen:


Oh, mir wurde jetzt klar, dass ich einen dieser Leute kenne - Sean Parent sprach bei uns C ++ Russland

Vergleichen Sie jetzt. Heute scherzen sie: "Früher brauchte man zwei Kilobyte Speicher, um einen Mann zum Mond zu bringen, und jetzt braucht man zwei Gigabyte, um Slack zu starten." Klingt schlecht, aber merkt man den Unterschied? Unabhängig davon, wie viel RAM Slack verbraucht, stoßen Benutzer nicht auf die Situation, dass Sie zu Beginn des Programms Tee trinken können. Alles wurde besser, aber wir haben es nicht bemerkt.

Oder hier ist ein aufschlussreiches historisches Artefakt: die Masyanya-Serie "Download" (2002). Helden sind furchtbar besorgt über die Trennung, bei der Sie die Datei erneut herunterladen müssen.


Bitte beachten Sie: Die heruntergeladene Datei wiegt 591 Kilobyte. Charaktere haben Angst, ein halbes Megabyte neu laden zu müssen. Dies ist der tatsächliche Stand der Dinge im Jahr 2002.

Zum Vergleich ein frisches Beispiel aus dem Leben. Ich hatte ein kleines technisches Problem auf meinem Mac. Beim Stapelüberlauf fand ich den Rat, "Xcode zu installieren und seine Nutzungsbedingungen zu akzeptieren". Meine Reaktion: Es ist seltsam, eine 8-Gigabyte-IDE für einen einzigen Klick herunterzuladen, aber wenn es hilft, warum nicht?

Das heißt, die Größe der Programme hat im Laufe der Jahre zugenommen (zur Zeit von Masyan von der „8-Gigabyte-IDE“ würden die Leute ihre Haare bewegen), aber es wurde viel einfacher, sie herunterzuladen, und unser Leben ist viel besser geworden.

Nun, das letzte Beispiel in diesem Teil handelt von „geschwollenen mobilen Anwendungen“. Empörte Beiträge wie "Manchmal" schreiben darüber.App-Größen sind außer Kontrolle ":" Seit wann belegt LinkedIn 275 Megabyte am Telefon ?! " Im Jahr 2018 war es möglich, die Beschwerde zu lesen: "Nach der Installation der Anwendungen hatte ich nur noch Gigabyte für Fotos."

Ich werde nicht lügen, diese 275 Megabyte LinkedIn verursachen auch Fragen für mich. Aber ich erinnere mich, wie sie 2010 auf Habré geschrieben haben, dass die Alfa-Bank eine mobile Anwendung hatte. Es wog 30 Megabyte - heute hätte eine solche Größe überhaupt keine Fragen aufgeworfen. Und dann in den Kommentaren, die sie geschrieben haben:



Weißt du warum? In jenen Tagen konnte ein russischer Benutzer beispielsweise mit dem HTC Hero laufen. Schauen wir uns seine Eigenschaften an: "Speicher - 512 MB, 165 für Anwendungen." Insgesamt 165 Megabyte für alle installierten Anwendungen! Unter solchen Umständen musste ich ständig auswählen, welche wichtiger waren und ohne welche man leben könnte. Und um ein 30-Megabyte zu installieren, müsste man mehrere andere gleichzeitig abreißen. Es war ein Schmerz.

Und wenn wir zu 2010 zurückkehren könnten, uns an die Menschen wenden, die unter diesen Schmerzen leiden, und ihnen den Satz aus dem Jahr 2018 sagen: „Nach der Installation der Anwendungen habe ich nur noch Gigabyte für Fotos übrig“, denke ich, wären wir geschlagen. Diese Worte würden keine Beschwerde klingen, sondern Spott und Prahlerei.

Und selbst ab 2018, als diese Beschwerde auftauchte, konnte sich die Situation verbessern: Jetzt ist das Budget des Xiaomi Mi A3 in der Basisversion mit 64 Gigabyte ausgestattet, sodass nach der Installation der Anwendungen offensichtlich mehr als eine frei sein wird.

Ja, die Anwendungen sind in den letzten 10 Jahren erheblich gewachsen. Gleichzeitig ist das Raumvolumen um Hunderte gewachsen. Das Leben ist zehnmal besser geworden.

Und erinnerst du dich daran, was es war, 2010 ein Smartphone zu benutzen und wie viele verschiedene Schmerzen „alles verlangsamt sich“ dort?

  • Eine kleine Menge RAM bedeutete, dass die Anwendung ständig von Grund auf neu ausgeführt werden musste und nicht sofort zu einer bereits ausgeführten wechseln musste.
  • Und Prozessoren mit geringem Stromverbrauch haben sie sehr langsam von Grund auf neu gestartet.
  • Ich möchte mich nicht an die Geschwindigkeit des mobilen Internets erinnern.
  • , USB 2.0 .

Die Verwendung eines Smartphones schien eine ständige Erwartung zu sein: Egal, was Sie tun möchten, dies schließt Perioden des "Stehens und Stumm" ein. Wenn Sie auf der Straße sind und eine Karte benötigen, stehen Sie still und warten zunächst, bis die Anwendung zum Starten freigegeben wurde, und warten dann, bis die Karte zum Laden freigegeben wurde. Und Sie zahlen erheblich für den gleichzeitig verbrauchten Verkehr.

Im Vergleich dazu leben wir jetzt alle unter himmlischen Bedingungen, aber gleichzeitig beschweren wir uns aktiv. Es sieht aus wie "Probleme der ersten Welt" - so etwas wie "Ich möchte Twitter im Liegen lesen und das Telefon über mein Gesicht halten, aber dann können Sie es versehentlich auf sich selbst fallen lassen." Nun, ich sympathisiere, aber in einer solchen Situation zu sagen, dass „alles schlimmer geworden ist“, sieht nach Respektlosigkeit gegenüber der Vergangenheit und der Gegenwart aus.

: « » . , , . .



«»


Es gibt eine andere typische Situation. Die Leute sagen, "Software wird immer aufgeblähter und langsamer, obwohl sich für den Benutzer fast nichts zum Besseren ändert" - und gleichzeitig wissen sie nicht genau, was dort tatsächlich passiert.

Als kleines anschauliches Beispiel. Im Jahr 2018 gab es einen sensationellen Text von Nikita Prokopov über "verdorbene Software" und unter anderem die Worte "Google Play-Dienste, die ich nicht benutze (ich kaufe dort keine Bücher, Musik oder Videos) - 300 MB, die nur hier sitzen und die nicht entfernt werden können. "

Wenn ich das lese, möchte ich mit aufrichtigem Zorn erfüllt sein, ja. Es gibt jedoch eine Einschränkung: Bei Google Play Services geht es nicht darum, Bücher zu kaufen. Es enthält viele verschiedene APIs und, wie berichtetWikipedia: "Alle wichtigen Android-Dienste werden von Google Play Services gesteuert." Das heißt, Nikita nutzt diese Software aller Wahrscheinlichkeit nach aktiv und weiß es selbst nicht - nur, dass Google ihm einen verwirrenden Namen gegeben hat.

Mein Ziel hier ist es nicht, einen bestimmten Beitrag zu kritisieren, sondern einen allgemeinen Ansatz aufzuzeigen: Wir geben häufig an, dass „Anwendungen ohne guten Grund angeschwollen / verlangsamt wurden“, ohne diese Gründe vollständig zu verstehen. Sie haben der Anwendung etwas hinzugefügt. Die Entwickler haben detaillierte Informationen darüber, was genau und warum, aber wir haben sie nicht - aber aus irgendeinem Grund betrachten wir uns in dieser Angelegenheit als kompetenter als sie.

Aber innen gibt es vieles, was von außen nicht ersichtlich ist. Nehmen wir als Beispiel die Texteditoren: Es scheint, dass die Leute sie von jeher auf der schwächsten Hardware hergestellt haben, mit ihnen war lange Zeit alles klar und es gibt nichts zu verlangsamen, "was einfacher sein könnte". Von außen sieht es also so aus: Wenn etwas nicht sofort funktioniert, haben diese krummen Entwickler vergessen, wie geschickt die Menschheit bereits ist. Wenn Sie sich jedoch mit dem Thema befassen (wir haben irgendwie einen Habrapost darüber veröffentlicht), werden viele nicht offensichtliche Nuancen scharf aufgedeckt - und die Worte "Was könnte einfacher sein" sehen nicht mehr überzeugend aus.

Oder noch eine Sache. Nachrichten über mobile Betriebssysteme lösen häufig eine solche Reaktion aus: „In den letzten acht Jahren wurde dort nichts Nützliches getan. Jedes Jahr bringen sie mit viel Aufhebens eine neue Version heraus, die mehr wiegt als die vorherige, aber aufgrund der Unterschiede sehe ich nur neue Emojis. Im Sarg habe ich diese Emojis gesehen, die alte Version zurückgegeben, es war besser. "



Hören Sie, es scheint, dass alle IT-Spezialisten aus Erfahrung wissen: Sie können viel Aufwand für ein gerechtfertigtes Refactoring des Backends aufwenden, und der Benutzer wird es nicht einmal bemerken, oder Sie können innerhalb einer halben Stunde einige Symbole in der Benutzeroberfläche ändern, und es beginnen heftige Diskussionen zwischen den Benutzern. Das heißt, wir wissen, dass „außerhalb“ nur einige Änderungen erkennbar sind und oft nicht die wichtigsten. Warum erkennen wir dann nicht, dass, wenn wir selbst nur Emojis in der neuen Version des Betriebssystems bemerken, dies mehr über uns als über das Betriebssystem spricht?

Nehmen Sie zum Beispiel Project Treble von Android 8.0. Android hat bekanntermaßen ein großes Problem: Während iPhones leicht auf neue Betriebssystemversionen aktualisiert werden können, bleiben Android-Telefone normalerweise für immer bei der vorinstallierten Version, da ihre Hersteller nicht herumalbern wollen. Und Google hat eine umfassende Änderung der gesamten Architektur vorgenommen, um das Leben der Hersteller zu vereinfachen und Aktualisierungen anzuregen. Und obwohl Treble das Problem nicht vollständig gelöst hat, zeigen die Statistiken eine spürbare Verbesserung. Das heißt, um ein dringendes Problem zu lösen, hat Google viel Arbeit investiert (die Umgestaltung eines solchen Kolosses ist nicht gut für Sie, um am Fenster zu fahren), und die Situation wurde teilweise verbessert. Meiner Meinung nach muss sich das Unternehmen nur mit wunden Problemen befassen, sie haben alles richtig gemacht.

Sagen Sie mir jetzt: Wenn Sie kein mobiler Entwickler sind, haben Sie überhaupt davon gehört? Hat es Ihre Meinung zu der neuen Version beeinflusst, als Sie zum ersten Mal ein Telefon mit Android 8.0+ gekauft haben? Dies ist unwahrscheinlich, da dies dem Benutzer in den ersten Monaten nach der Verwendung des Telefons überhaupt nicht angezeigt wird. Sie können erst nach einer Zeit feststellen, wann die neue Version von Android veröffentlicht wird. Und nur, wenn der Telefonhersteller zu denen gehört, bei denen Treble Geräte aktualisieren konnte. Und selbst in diesem Fall kann der Nutzer möglicherweise nicht erkennen, dass das Update auf Google zurückzuführen ist, und dennoch sagen, dass seit acht Jahren nichts Nützliches mehr getan wurde.

Und diese Situation ist typisch - der „Unterwasserteil des Eisbergs“ ist im Allgemeinen groß. Haben Sie bei der Einführung der adaptiven Batterie („intelligente“ Definition, bei der Anwendungen eine Batterie im Hintergrund haben können) gemessen, ob sich der Stromverbrauch Ihres Telefons geändert hat? Erinnern Sie sich, dass Google Play Protect im Hintergrund Ihre Sicherheit gewährleistet hat? Als Sie die Unterstützung für den AV1-Videocodec hinzugefügt haben, haben Sie gedacht, dass die Zukunft mit diesem Codec sehr wahrscheinlich ist und eine solche Unterstützung nützlich ist? Oder nehmen Sie einfach den Hörer ab und Emojis sind auffällig, aber die AV1-Unterstützung ist nicht auffällig?

Nach der Veröffentlichung dieses Beitrags erschien ein wunderbarer Thread vonLanyDiese Software schwillt hauptsächlich aufgrund des Umgangs mit seltenen Situationen an. Und was dann passiert: In 1% der Fälle, in denen diese Situationen auftreten, wurde alles viel besser - aber 99% der Menschen, die diesen seltenen Situationen nicht begegnen, können die Veränderungen nicht richtig einschätzen.



Daraus folgt, dass es in vielen Fällen objektive Gründe dafür gab, wenn wir bei allen „geschwollenen und hemmenden Anwendungen“ massenhaft schwören. Irgendwo während der Arbeitszeit wogen die Leute nachdenklich alle Vor- und Nachteile ab, diskutierten sie miteinander und kamen zu dem Schluss, dass die Vorteile überwiegen. Und dann kommen wir, wir haben keine Ahnung, was auf der Waage war, wir werden keine Zeit für nachdenkliches Lernen aufwenden, wir sehen nur die veränderte Größe - und wir kommen zuversichtlich zu dem Schluss, dass „alles schlecht gelaufen ist“.

Die allgemeine Schlussfolgerung: Einige der Behauptungen über "sinnlos aufgeblähte Software" sind auf Missverständnisse zurückzuführen. Und solche Aussagen ohne gründliche Untersuchung der Ursachen zu machen, ist nicht die sinnvollste Strategie.



Leistungsaufmerksamkeit


Aussagen über „verdorbene Software“ klingen so, als hätten Entwickler früher Rechenleistung gespart, aber jetzt wollten sie alle auf Optimierung spucken. Es ist nur wichtig, dass es funktioniert - und dass die Anforderungen an Eisen hoch sind, also wird Moores Gesetz irgendwie alles ruinieren. Wenn der Code langsam ausgeführt wird, frisst er Speicher wie in sich selbst und nimmt viel Platz ein - und so geht es, niemand wird sich darum kümmern und etwas verbessern.

Hören Sie, das ist einfach nicht wahr. Als separates Beispiel: Facebook Messenger wurde kürzlich neu geschriebenund es wird berichtet, dass sich die Produktivität verdoppelte und die Größe um das Vierfache abnahm. Und zu den obigen Worten, dass die LinkedIn-Anwendung 275 Megabyte wiegt - ich habe sie jetzt überprüft und die Worte „195,4 MB“ im App Store gesehen. Es scheint, dass sie es auch geschafft haben, sie um das Eineinhalbfache zu reduzieren. Das heißt, beide Unternehmen haben klar über den Verbrauch von Ressourcen nachgedacht und viel Arbeit aufgewendet, um diese zu reduzieren, die für das „Absägen von Merkmalen“ aufgewendet werden könnte.

Und da ich mit Konferenzen für Entwickler arbeite und mich mit vielen von ihnen (und aus verschiedenen Stapeln) überschneide, kann ich sehen, welche Themen sie interessieren. Worüber sie Berichte hören, worüber sie sprechen und Beiträge schreiben.

Und Produktivität ist genau eines dieser Themen. Mit den Namen von Berichten wie "Optimieren der Startzeit von iOS-Anwendungen"es kann gesehen werden: Entwickler sind bereit, 60 Minuten zu verbringen, um über Millisekunden zu hören.

Sie sprechen überall über Leistung - sogar in der JavaScript-Welt ( "JavaScript-Leistung durch das Fernglas" ), zumindest in der mobilen Entwicklung ( "Wie man eine Million Sterne in ein iPhone passt" ). Vor allem aber sagen sie im Backend. Ich denke, das liegt daran, dass Benutzer Smartphones für sich selbst kaufen, aber im Backend zahlt das Unternehmen für die Rechenleistung, sodass eine starke finanzielle Motivation zur Optimierung besteht.

Ich habe kürzlich ein einfaches Experiment durchgeführt: Ich habe das Programm unserer Java-Konferenz JPoint geöffnetund schaute, wie viele Leistungsbeschreibungen es über Leistung gab. Aufgrund des Coronavirus haben wir die Konferenz später auf Juni verschoben, damit sich das Programm ändern kann, aber die Ergebnisse sind auf jeden Fall indikativ. Sie sind:

  • "In diesem Vortrag geht es um die Optimierung der Produzentenleistung."
  • "Betrachten Sie Methoden zur Optimierung der Datei-E / A"
  • "Vielleicht möchten Sie für eines der Module mehr Leistung, als Sie jemals aus Java herausholen können?"
  • "Welche Optimierung im Zusammenhang mit Sicherheitspunkten bietet HotSpot JVM?" Woran sollten Entwickler denken, um unerwünschte Pausen zu vermeiden? “
  • „Valhalla-Projekt, Inline-Typen und alles um sie herum, vom Softwaremodell bis zur Leistung“
  • "Optimieren Sie die Abfrageleistung, den Durchsatz und den Speicherverbrauch."
  • "Der Bericht widmet sich einer detaillierten Analyse, wie der Prozess des Schreibens in die Apache Cassandra-Datenbank in Bezug auf die Leistung abläuft."

Hören Sie, wenn ich dieses Experiment als Trinkspiel durchgeführt hätte, wäre ich am Ende betrunken gewesen. Mit bloßem Auge können Sie sehen: Java-Entwickler kümmern sich darum, wie sie ihren Code nicht nur funktionieren lassen, sondern auch schnell.

Außerdem: oft erregt es sie sogar zu sehr! Von Leuten, die eng an der Leistung beteiligt sind, habe ich wiederholt gehört, dass es leicht ist, es zu übertreiben. Um beispielsweise die Produktivität leicht zu steigern, verwenden die Benutzer schmutzige Hacks, die letztendlich mehr Probleme verursachen als lösen. Nun, darüber war in der schönen Keynote von Alexey Shipilev am JPoint 2017 die Entschlüsselung für Habr .



Zusammenfassend lässt sich sagen: Während das Internet beklagt, dass „die Entwickler faul waren und nicht mehr über die Bremsen nachdachten“, denken viele Entwickler in Wirklichkeit mehr über sie nach als nötig .



Sinnhaftigkeit und Zweckmäßigkeit


Und jetzt meiner Meinung nach die wichtigste These.

Ja, Anwendungen erfordern im Laufe der Zeit immer mehr Ressourcen, manchmal um Größenordnungen. Ja, wir haben viel mehr in unsere Projekte hineingezogen, auch wenn dort etwas nicht zu notwendig ist, anstatt Zeit damit zu verbringen, das „unbedingt Notwendige“ zu isolieren. Es stimmt.

Aber ich glaube, dass gewachsene Anwendungen die heutigen Entwickler nicht zu unfähigen Dummköpfen machen. Darüber hinaus ist das Gegenteil der Fall:

Entwickler wären Dummköpfe, wenn die Anwendungen NICHT gewachsen wären.

Stellen Sie sich eine Welt vor, in der sich Hardware aktiv entwickelt und der Ansatz für die Softwareentwicklung unverändert bleibt. Programme würden immer noch in die Lautstärke der Diskette passen, obwohl niemand die Diskette selbst verwendet hätte. Im Namen der Leistung würde fast alles in C ++ geschrieben. Alle Entwickler gingen ständig auf ein niedriges Niveau und kannten jeden Ort, an dem ein paar Bytes extrahiert werden können. Es gibt keine "Jetzt installieren wir fünf Bibliotheken für diese Aufgabe", sondern nur Lösungen, die für ein bestimmtes Projekt sorgfältig überprüft wurden und in denen keine zusätzliche Zeile vorhanden ist. Im Allgemeinen ein Urlaub der Optimierung und ein sorgfältiger Umgang mit Ressourcen. All das wird jetzt als "verlorene Fähigkeit" bedauert.

Wissen Sie, welchen Eindruck dieses Bild auf mich macht? Eine große Familie musste in einem kleinen Raum leben, also lernte sie, wie man Dinge millimetergenau platziert und beherrschte die geheime Kunst, fünfstöckige Betten zu schaffen. Und dann zog sie in eine geräumige Mehrzimmerwohnung - aber aus Gewohnheit nahm sie dort nur ein Zimmer und ließ alle anderen leer. Die Leute sitzen immer noch auf den Köpfen der anderen.

Frage: Findest du das verrückt? Wenn es möglich war, allen viel Platz zu geben, warum dann speichern? Wer könnte besser von der alten Handwerkskunst der fünfstöckigen Betten profitieren, wenn es gleichzeitig keinen Ort gibt, an dem man jemanden zu einem Besuch einladen kann? Ist es Zeit, die neue Fähigkeit zu beherrschen, ein Kingsize-Bett zu wählen?

Gleiches gilt für Software. Wenn in einer Zeit, in der selbst preisgünstige Smartphones jeweils 64 Gigabyte haben, die Kotlin-Laufzeit unsere Anwendung um Megabyte erhöht, werden wir zu dieser Familie. Entspannen Sie sich, ein Ort dafür ist notwendig, damit etwas drin ist. Wenn es verschwendet wird, macht es niemand besser. Wenn viel Platz vorhanden ist und aus irgendeinem Grund ein Klavier benötigt wird, können Sie es sicher aufstellen, ohne sich um Quadratzentimeter sorgen zu müssen.

Slack - das ist das Klavier. Okay, er frisst viel Speicher, aber haben Sie gehört, dass sich Nicht-IT-Leute über ihn beschwert haben, wie sie sich früher über Photoshop beschwert haben? Nach meinen Gefühlen haben normale Benutzer bereits genügend Platz, so dass dieses „Klavier“ sie nicht daran hindert, „durch den Raum zu gehen“. Ja, Sie können es durch ein Klavier ersetzen und Platz sparen. Aber wenn Sie in einem Palast leben und im Laufe der Jahre die Fläche des Palastes noch größer wird, warum dann?

Meiner Meinung nach sind es aufgrund von Slack hauptsächlich erfahrene IT-Mitarbeiter, die RAM für andere schwierige Aufgaben benötigen. Aber IT-Leute sind eine andere Geschichte: Die Entwicklung einer Wohnungsmetapher sind Menschen, deren Werkstatt aus einer Wohnung besteht. Nun ja, egal welchen Palast Sie zur Verfügung stellen, alle Räume werden mit etwas sehr Wichtigem besetzt sein. Und dann kann das Klavier stören, weil Sie stattdessen eine Drehmaschine einsetzen können. Aber die meisten Menschen auf der Welt leben anders, sie brauchen zu Hause keine Drehmaschinen und es gibt bereits genügend Ressourcen für ihren Lebensstil.

Und in einer solchen Situation ist es fieberhaft, alles zu vermeiden, was Speicherplatz beansprucht, wenn bereits viel vorhanden ist - wie bei mobilen Task-Managern, bei denen Benutzer laufende Anwendungen verprügeln, um „RAM zu löschen“. Viele Male haben die Macher mobiler Plattformen gesagt: „Hör auf, Verrückte. Das System selbst beendet Anwendungen, wenn nicht genügend Speicher vorhanden ist, und warum sollten sie vorher genagelt werden? Was bringt es, ein Smartphone mit viel RAM zu kaufen, es dann leer zu halten und nicht das zu verwenden, wofür es bezahlt hat? “


Es sieht optimiert aus. Willst du hier leben

Und ich erinnere mich auch an die Geschichte mit dem "2000-Fehler". Jemand von IT-Spezialisten aus der Mitte des 20. Jahrhunderts im Alter erinnerte sich: „Wir gehörten zu denen, die es geboren haben. Wir haben dann jedes Byte gespeichert. Und als wir auf die Idee kamen, dass Sie das Jahr in zwei Zahlen und nicht in vier Zahlen halten können, fühlten wir uns sehr schlau. Wir haben zwei Bytes auf einem Haufen von Orten gespeichert! Und erst gegen Ende des Jahrhunderts wurden die Konsequenzen klar. “

Ja, zu dieser Zeit schien es wahrscheinlich eine vernünftige Entscheidung zu sein, das Jahr zweistellig aufzuzeichnen. Und es verkörpert direkt alle Befürworter eines „vorsichtigen“ Ansatzes. Hier sind sie bei der Pflege der Ressourcen wirklich an ihre Grenzen gegangen.

Aber dann, viele Jahre später, mussten andere Menschen eine Menge Ressourcen aufwenden, um die Konsequenzen dieser Entscheidung herauszufinden und Probleme zu vermeiden.

Und jetzt, wenn die gespeicherten zwei Bytes niemandem mehr helfen und die negativen Folgen bekannt sind, wäre es sehr seltsam, das Jahr so ​​zu halten.

Also: Vieles von dem, was ich heute als „vernünftige Ressourcenschonung“ in der Zukunft singen möchte, wird wie die gleiche „Einsparung von Spielen“ aussehen, bei der mehr Ressourcen ausgegeben als gespart wurden. Zum Beispiel, weil die Zeit des Entwicklers auch eine äußerst wertvolle Ressource ist und hier häufig nicht in die Berechnungen einbezogen wird. Wenn Sie über die Datenausrichtung hinausgegangen sind und Ihre Anwendung etwas kleiner und schneller geworden ist, aber eine Woche damit verbracht haben, was zu einer nützlichen Funktion hätte führen können, haben Sie den Benutzer besser oder schlechter gemacht?

, « , , ». .

— . , , .

, - ( ), . .




Ich nehme den Einwand in den Kommentaren vorweg: "Aber Aufgabe X wurde für mich sehr langsam ausgeführt als vor 13 Jahren, gib mir mein 2007 zurück."

Versteh mich nicht falsch: Ich versuche nicht zu sagen, dass es keine solchen Aufgaben gibt. Es gibt . Und es kommt zu einer Überbeanspruchung von Abhängigkeiten. Und Bloatware passiert. Wenn ich höre, dass es in Photoshop Videobearbeitung gibt, habe ich das gleiche „Warum“ -Gefühl wie Sie. Wenn ich lese, dass das Erstellen einer Anwendung mit create-react-app sofort 4304 Verzeichnisse mit 28678 Dateien bedeutet, habe ich auch die Frage, ob wir woanders hingegangen sind. Es gibt viele echte Themen, über die es sich zu sprechen lohnt.

Meine einzige Behauptung ist, dass es im Zusammenhang mit diesen Problemen eine Art radikale Sekte gibt, die aufgrund der zunehmenden Verbreitung von Software an das nahe Ende der Welt glaubt. Sie schreiben die Geschichte in dieser Sekte neu ("es hat früher schneller funktioniert!"), Verstehen falsch, was passiert ("warum Windows im Laufe der Jahre gewachsen ist, dort hat sich nichts wirklich geändert"), unverdiente Dinge werden über Entwickler gesagt ("sie wollen nichts optimieren" ") Und gehen Sie bis zum Äußersten" Speichern wir jedes Byte, auch wenn es die Benutzer schlechter macht. " Lass uns das nicht machen.

Meine Einwände gegen die radikale Position erwiesen sich natürlich auch als etwas radikal (nur in die entgegengesetzte Richtung). Sie können auch Fehler an ihnen finden, und sie können auch als Sekte bezeichnet werden. Aber der Zweck dieses Beitrags ist nicht, jedes Wort von mir als die ultimative Wahrheit zu betrachten. Ihr Ziel ist es, die Menschen weniger in Sekten zu verwickeln.

Die Hauptschlussfolgerung ist langweilig und banal, aber nicht weniger richtig: Alles hängt von der spezifischen Situation ab. Optimierung ist nicht absolut böse und nicht absolut gut. Sie können sowohl helfen als auch schaden. Es gibt Situationen, in denen sich Optimierungen eindeutig lohnen, und Situationen, in denen sie sich eindeutig nicht lohnen. Und es gibt Zwischensituationen, in denen verschiedene Menschen auf unterschiedliche Weise „wert oder nicht wert“ betrachten und keiner von ihnen mehr Recht hat, und dies ist normal.

Und wenn dir jemand, einschließlich mir, etwas anderes sagt - das ist ein Sektierer, jage ihn in den Nacken.

All Articles