Hallo Habr!
Wir können die lang erwartete zweite Ausgabe von Simple Python vorbestellen . Die Übersetzung der ersten Ausgabe erschien im Jahr 2016 und gehört bis heute zu den Bestsellern.
Da wir davon überzeugt sind, dass Python die beste Programmiersprache für Anfänger sowie für die Arbeit mit Datenwissenschaft und maschinellem Lernen ist, bieten wir Ihnen heute die Übersetzung mehrerer Weltanschauungsbeiträge von der Dropbox-Website an, auf der Guido van Rossum seine Karriere beendete - über die Bedeutung und Unentbehrlichkeit der Python-Sprache.
Nichts kennzeichnet das 21. Jahrhundert mehr als der allgegenwärtige Einfluss der Programmierung. Fast alles, was wir tun, insbesondere bei der Arbeit, geschieht über den Monitor, über den Monitor, der die Ergebnisse kolossaler Rechenarbeit anzeigt, die wir heute für selbstverständlich halten. Für diejenigen 99,7% der Menschheit, die nicht an der Programmierung beteiligt sind, geschieht dies alles wie durch Zauberei. Wie der große Science-Fiction-Autor Arthur Clarke bemerkte: "Jede ausreichend fortschrittliche Technologie ist von Magie nicht zu unterscheiden."
Das ist natürlich keine Magie. Die Programmierung ist jedoch sowohl ein komplexer als auch ein mehrstufiger Prozess. Die Größe der Codebasen in seriösen Technologieunternehmen wird in Millionen von Codezeilen gemessen. Wenn Sie darüber nachdenken, wie ein reales System auf Codeebene implementiert werden kann, denken Sie an das komplexe Zusammenspiel verschiedener Funktionen im Laufe der Zeit. Ihr Code mag auf Strukturebene mehr oder weniger komplex sein, aber die inhärente Komplexität ist der zu lösenden Aufgabe inhärent, und diese Komplexität kann nicht auf etwas Einfacheres reduziert werden.
Als Programmierer geht es nicht nur darum, Ideen zu generieren, und Sie werden in diesem Beruf nicht lange bestehen, wenn Sie nicht wissen, wie Sie Ihre Ideen mit chirurgischer Genauigkeit im Code beschreiben können. "Ich bin ein wenig skeptisch, dass Systemdenken in diesem Fall am wichtigsten ist, da es viel einfacher ist, eine Idee eines Systems zu skizzieren, als diese Idee in Arbeitscode umzuwandeln", sagt Guido van Rossum, Schöpfer und pensionierter The Generous Life Dictator of Python ... Das Web ist immer noch JavaScript und Java läuft mit 2,5 Milliarden Android-Handys, aber Python ist zum De-facto-Standard in der allgemeinen Programmierung und Ausbildung geworden.
Derjenige, der am meisten getan hat, um vielen Menschen das Codieren ihrer Ideen zu erleichtern, ist Guido van Rossum, der 30 Jahre seines Lebens der Python-Sprache gewidmet hat. Außerdem tat er es mit bescheidener Anmut und gedämpftem Humor. Die Sprache ist nach der grotesken Comedy-Show "Monty Python" benannt, nicht nach der birmanischen Schlange. Die Programmiersprache Python hat es ohne weiteres ermöglicht, einige Dinge in der Programmierung zu vereinfachen, insbesondere zum Verständnis.
Um zu verstehen, wie van Rossum dies getan hat, werfen wir einen Blick auf die Geschichte des Rechnens und springen in die Ära der Mainframes und der Maschinensprache. "Der Mainframe ist eine Millionen-Dollar-Maschine, und die kombinierten Gehälter aller Programmierer sind nur ein paar Cent im Vergleich zu den Kosten des Mainframes", sagt Rossum. Daher ist es logisch, dass die Maschinenzeit als eine höhere Priorität als die menschliche Zeit angesehen wurde. "Beim Umgang mit Desktop-Workstations und PCs wurde mir jedoch klar, dass es höchste Zeit ist, die Einstellung zum Verhältnis der Kosten für menschliche Zeit und Maschinenzeit zu ändern." Van Rossum sieht sich nicht als erster, der diese Änderung bemerkt, aber er hat sie beim Entwerfen der Python-Sprache wirklich betont.
Diese einfache Idee von "Maschine für den Menschen, nicht Mensch für Maschine" ist die Essenz der gesamten Philosophie der Python-Sprache. Insbesondere impliziert die Tatsache, dass es sich um eine interpretierte Sprache handelt, nicht um eine kompilierte Sprache, dass der Programmierer die Wirkung des geschriebenen Codes sieht, sobald er ihn schreibt, ohne ihn nach jeder Änderung neu kompilieren zu müssen. Heutzutage ist diese Praxis sehr verbreitet, aber vor vielen Jahren wurde sie mehrdeutig wahrgenommen, da es sicher schien, dass je schneller der Computer, desto besser. Die Neudefinition dieser Überzeugung hat sich erheblich positiv auf die Produktivität der Programmierer ausgewirkt.
"Es gibt eine ganze Reihe gängiger Programmierprobleme, die in Python einfacher zu lösen sind", sagt van Rossum. - "Für diejenigen, die noch kein Programmierer sind, sondern nur einer werden möchten, ist die Schwelle für die Eingabe von Python besonders niedrig." In der Tat beginnen viele Programmierkurse, sich von Java zu Gunsten von Python zu entfernen, da dies für Anfänger viel verständlicher ist. Die Gründe für diesen Übergang sind komplex, mit vielen Faktoren, von denen jeder einige Ecken und Kanten beseitigt hat. Das Wesen der Philosophie steht im Mittelpunkt aller Verbesserungen: Alles muss einen Zweck haben. Wenn kein redundanter Code vorhanden ist, ist es einfacher, sich auf das zu konzentrieren, worauf Sie sich wirklich konzentrieren müssen. "In Python ist jeder Charakter wichtig, den Sie eingeben", sagt van Rossum.
Diese Prägnanz stellt sicher, dass Python leicht greifbare Ergebnisse erzielen kann, weshalb die Sprache eine so weit verbreitete Verwendung findet. „Es ist auch wichtig, wie wir Python neuen Programmierern vorstellen. Sie können einer Person sehr kleine Codeteile zeigen, mit denen Sie arbeiten können, fast ohne die Terminologie und Programmierkonzepte als solche zu verstehen, bis Sie sie verstehen ", erklärt van Rossum." Während Sie im kleinsten Java-Programm einen ganzen Haufen Symbole finden was für das nicht eingeweihte Auge wie Wellen erscheinen wird. "
Mit solch einer ruhigen und einfachen Gestaltung der Sprache ist es einfacher zu verstehen, was im Code vor sich geht. "Python scheint mir unglaublich beschreibend", sagt van Rossum. „Wenn ich Python lese, sehe ich seine Struktur definitiv als zweistufig und nicht als einstufig. Dies liegt wahrscheinlich daran, dass Einrückungen in Python wichtig sind und ich vielleicht nur gerne visuell denke. "
Natürlich ist visuelles Denken nicht nur ihm eigen. Wir alle denken bis zu einem gewissen Grad so. Er betont jedoch insbesondere die Rolle der visuellen Komponente bei der kognitiven Aktivität. „Wenn der Text schlecht formatiert ist, kann mich das wütend machen. Dann wird das Parsen des Textstroms in meinem Kopf verwirrt, und in diesem Sinne kann man wirklich sagen, dass ich in Python denke “, gibt van Rossum zu. "Ich kann Code viel besser verarbeiten, wenn er gut formatiert ist." Die Einrückung im Code ist willkürlich. Dann sind mehr Informationen erforderlich, um die Bedeutung des Codes zu entschlüsseln, als wenn jede Einrückung einen klaren Zweck hat, wie in Python. Daher ist es praktisch, mit Python zu arbeiten: Sie müssen weniger Informationen verarbeiten, um zu verstehen, was passiert.
Python ist nicht nur typografisch, sondern auch konzeptionell lesbar. Van Rossum glaubt, dass Python für unsere visuelle Wahrnehmung von im Code dargestellten Strukturen möglicherweise genauer ist als andere Programmiersprachen, weil "in Python die Einhaltung der Struktur obligatorisch ist".
Clive Thompson, Autor von CODERS", Sagt das" Während ich mich darauf vorbereitete, das Buch zu schreiben, sprach ich mit vielen Entwicklern, die Python voll und ganz lieben. Fast jeder sagte ausnahmslos etwas wie "Python ist schön". Sie mochten die Lesbarkeit und fanden es einfach, einen Blick auf Python-Code zu werfen und dessen Zweck zu verstehen. Diese Sprache ohne geschweifte Klammern mit Linien, die wie ordentliche Regale angeordnet sind, ähnelt wirklich der modernen Poesie. " Sie denken auch, dass es Spaß macht, Python zu schreiben, was viel wichtiger ist, als es auf den ersten Blick scheinen mag. Thompson schreibt: "Wenn Sie einen Programmierer kennenlernen, sehen Sie vor sich eine Person, deren tägliche Hauptarbeit voller endloser Misserfolge und drückender Frustration ist."
Wenn der Respekt vor der Zeit des Programmierers in eine Sprache eingebaut ist, spiegelt sich dies auf interessante Weise in der Sprachgemeinschaft wider. Es gibt eine soziale Philosophie, die sich aus Python ergibt: Der Programmierer ist für seinen Code verantwortlich und weiß, dass er ihn für andere Leute schreibt. Es gibt eine unausgesprochene These, die van Rossum selbst in seinen Texten und Vorträgen aktiv fördert: Verbringen Sie etwas mehr Zeit und machen Sie es der Person, die Ihren Code in Zukunft lesen wird, etwas leichter. Ihren Kollegen Ihren eigenen Respekt zu zeigen und zu zeigen, dass Sie ihre Zeit schätzen, ist eine Ethik, die van Rossum auf der ganzen Welt leise fördert. "Sie schreiben Code hauptsächlich, um mit anderen Programmierern zu kommunizieren und in geringerem Maße, um dem Computer Ihren Willen aufzuzwingen", sagt er.
Die Vielseitigkeit der Kultur rund um Python hat einen Teil der Vision ermöglicht, die van Rossum vor etwa zwanzig Jahren hatte, als er das kurzlebige CP4E-Projekt (Computer Programming For Everyone) startete. „Ich kann mich normalerweise nicht eines visionären Talents rühmen. Die Leute fragen mich, was die Zukunft für Python bereithält, und ich weiß es nicht. Aber meine wichtigste Prophezeiung, ich betrachte die These, dass die Zeit, in der das Programmieren lernen wird, für alle zweckmäßig sein wird. " Zu dieser Zeit gab es PCs schon seit ungefähr 20 Jahren, aber die meisten von ihnen waren hochgespielte Schreibmaschinen und Taschenrechner. Dann fragte sich van Rossum: "Ist es nicht verrückt, dass so viele Menschen Computer haben, aber so wenige Menschen, die das Programmieren lernen?"
Seitdem hat er die Programmierung ständig vereinfacht, und diese Arbeit lässt sich leicht auf die Entwicklung von Python zurückführen, das jetzt Version 3.7 erreicht hat. Sie Rossum glauben weiterhin, dass das Programmieren allgemein nützliche Fähigkeiten vermittelt, insbesondere die Fähigkeit, Probleme zu lösen, die eine oder andere Richtung sorgfältig zu befolgen und die Bedeutung dieser Richtung zu verstehen. Er fand aber auch heraus, dass „es Einführungen in die Programmierung gibt, die für Kinder interessant sind, aber nicht für alle; Daher denke ich nicht, dass Programmierung als Pflichtfach in den Lehrplan der Schule aufgenommen werden sollte.
Gleichzeitig ist es heute für eine Person nicht mehr so wichtig, ihren Computer zu programmieren, da viele vorgefertigte Programme erschienen sind, insbesondere im Internet, und Sie damit Aufgaben intuitiv bewältigen können, für die zuvor Lösungen programmiert werden mussten.
Es gibt jedoch immer mehr Leute, die Python in einer Vielzahl von Disziplinen verwenden. "Heute herrscht eine Theorie vor, die den unerwarteten Erfolg von Python erklärt", sagt van Rossum, "nach der er das Glück hatte, in den Bereichen Datenwissenschaft und maschinelles Lernen sowie Datenwissenschaft im Allgemeinen Fuß zu fassen." Sobald Sie eine kritische Masse an Python-Fähigkeiten entwickelt haben, ist es einfacher, mit demselben System wie Ihre Kollegen und Ihre Konkurrenten zu arbeiten, als neue Dinge zu lernen. " Laut van Rossum ist Python zwar ein gängiges Werkzeug für Programmierer, heute jedoch auch eine Sprache für Amateure, und laut van Rossum ist es die beste Verwendung für Python.
Ein erfolgreiches Open-Source-Softwareprojekt wie Python ist für Anfänger leicht zu erlernen, findet aber auch praktische Verwendung bei der Lösung realer Probleme, die fortgeschrittenere Benutzer benötigen würden. Genau wie bei der Arbeit mit Anfängern bemühen wir uns, die Sprache nicht zu komplizieren, damit sie ihre ganze mentale Kraft dem Erlernen der Komplexität der Entwicklungsumgebung widmen können. Bei der Arbeit mit fortgeschrittenen Benutzern ist die Einfachheit der Sprache praktisch, da sie es einer Person erleichtert, konkurrierende Abstraktionen zu lernen. Der Wunsch, die Python-Implementierung so einfach wie möglich zu gestalten, ist teilweise darauf zurückzuführen, dass es bei der Arbeit mit dieser Sprache leicht ist, die Meinung zu ändern, zu lernen und zu wiederholen. „Einen Prototyp in Python zu schreiben und in Produktion zu bringen, ist oft nicht so schwierig“, sagt van Rossum.„Und dann können Sie es sich leisten, diesen Prototyp wegzuwerfen und ihn basierend auf dem, was Sie bereits gelernt haben, zu implementieren. Die zweite Version kann auch in Python geschrieben werden, ist aber viel besser als die erste. "
Pythons unerbittliche Anziehungskraft beruht zum Teil auf seinem Optimismus und der Leichtigkeit, von vorne zu beginnen. "Wenn Sie viel Zeit damit verbracht haben, Code zu schreiben und zu debuggen, möchten Sie ihn wirklich nicht wegwerfen und von vorne beginnen." Drew Houston, Mitbegründer und CEO von Drpopbox, schrieb den ersten Prototyp des Dienstes in Python auf einer fünfstündigen Busfahrt von Boston nach New York. „Die ersten Dropbox-Prototypen wurden viele Male größtenteils verschrottet“, sagt van Rossum.
Was können Sie von Python lernen, um hochwertige mentale Werkzeuge zu erstellen? Tim Peters, einer der größten Mitwirkenden an Python, gibt einige Tipps zu diesem Thema im aphoristisch geschriebenen „ Zen of Python”, Was die Prinzipien erklärt, die van Rossum geleitet haben. Im Zusammenhang mit diesem Artikel sind die folgenden beiden am wichtigsten: „Einfach ist besser als komplex. Kompliziert ist besser als überkompliziert. " Es ist praktisch ein Rezept für das Gehirn, seine eigenen Funktionen für einen effizienten Energieverbrauch zu priorisieren.
Für van Rossum ist der soziale Aspekt des Denkens und Schaffens von Werkzeugen gleichermaßen wichtig. Was hat er aus seiner dreißigjährigen Odyssee mit Python gelernt? „Ich habe gelernt, dass es unmöglich ist, mit einer solchen Angelegenheit allein fertig zu werden, und es war eine schwierige Lektion für mich. Ich habe gelernt, dass Sie nicht immer das angestrebte Ergebnis erzielen, aber vielleicht ist das Ergebnis nicht schlechter oder sogar besser als erwartet. "