Heim  >  Artikel  >  Backend-Entwicklung  >  Programmiersprachen: Werkzeuge zur Transformation des unternehmerischen Denkens

Programmiersprachen: Werkzeuge zur Transformation des unternehmerischen Denkens

伊谢尔伦
伊谢尔伦Original
2016-11-26 13:48:02865Durchsuche

Im Artikel dieser Woche in „MIT Technology Review“ heißt es, dass Programmiersprachen die Denkweise der Benutzer prägen. Dies könnte auch die Strategien von Start-ups in der Technologiebranche widerspiegeln und zeigen, warum sie in der Lage sind, sich zu verändern.

Das Folgende ist der vollständige Text des Artikels:

Als Entwicklungssprache für Twitter, Hulu und viele moderne Internetdienste hat Ruby große Aufmerksamkeit auf sich gezogen. Als der japanische Informatiker Yukihiro Matsumoto beschloss, diese Sprache zu entwerfen, stützte er sich auf Konzepte aus Samuel R. Delanys Science-Fiction-Roman „Babel-17“ aus dem Jahr 1966. Der Kern dieses Romans ist eine künstliche Sprache namens „Babel-17“, die das Denkniveau ihrer Benutzer deutlich verbessern kann. „Babel-17 ist eine präzise analytische Sprache, die es einem ermöglicht, jede Technologie zu beherrschen.“ Der Protagonist des Romans sagte einmal. Mit Ruby möchte Yukihiro Matsumoto ein ähnliches Ziel erreichen: die Denkweise von Programmierern zu revolutionieren und zu optimieren.

Dieses Ziel klingt sehr ehrgeizig, aber Matsumoto Yukihiros Ansichten sind zum Mainstream geworden. Softwareentwickler glauben oft, dass Programmiersprachen ihre Denkweise und damit die Art und Weise, wie sie Probleme lösen, und sogar ihr Verständnis davon, welche Probleme gelöst werden sollten, verändern können. So schätzen sie die Größe eines Unternehmens, eines Produkts und eines Konkurrenten ein: „Welche Sprachen verwenden Sie?“ Ein Blick auf Programmiersprachen hilft Außenstehenden zu verstehen, warum diese Softwareunternehmen so leistungsstark sind so großen Wert und wie ihre Produkte und Dienstleistungen in unser Leben passen. Die Entscheidungen, die diese Unternehmen intern darüber treffen, welche Sprache verwendet werden soll, sei es Ruby, PHP oder C, werden sich auf uns alle auswirken. Wenn Sie wissen möchten, warum Facebook so aussieht und funktioniert, wie es heute ist, und was es in Zukunft erwartet, müssen Sie PHP verstehen, die Programmiersprache von Mark Zuckerberg.

Unter Programmierern ist PHP vielleicht die am wenigsten respektierte Programmiersprache. Aufgrund seiner vielen Mängel glaubt der bekannte Technologie-Blog Eevee, dass PHP „ein Fragment schlechten Designs“ sei und Entwickler, die bereit sind, PHP zu verwenden, Amateure seien. Jeff Atwood, Mitbegründer der Programmier-Frage-und-Antwort-Website Stack Overflow, sagte: „Intelligente Ingenieurtalente gehen einer nach dem anderen zu Facebook, was sehr seltsam ist. Sie entwickeln PHP-Code in der Windows XP-Umgebung. Sie sind Hacker, aber.“ hier ist „Hacker“ eine abwertende Bezeichnung.“ Atwood nennt PHP einen „ungeschickten Giganten“, eine „Epidemie“ und ein „Spukhaus“, das okkulte Enthusiasten anzieht.

Erfolgreiche Programmiersprachen haben eine ganzheitliche Philosophie oder eine Reihe logisch konsistenter Leitprinzipien, die Vokabular und Syntax (d. h. Anweisungen für Programmierer) organisieren. Aber das ist bei PHP nicht der Fall. Der Designer der Sprache, Rasmus Lerdorf, gab einmal zu, dass er einfach viele Dinge miteinander vermischt habe. „Ich weiß nicht, wie ich das stoppen kann“, sagte er 2003 in einem Interview. „Ich habe keine Ahnung, wie man eine Programmiersprache schreibt. Ich füge einfach immer wieder neue logische Schritte hinzu.“ Eines der beliebtesten Beispiele unter Programmierern ist die PHP-Funktion „mysql_escape_string“. Diese Funktion entfernt böswillige Eingabeaufforderungen aus den Informationen, bevor diese an die Datenbank gesendet werden. (Beispiele für böswillige Eingaben sind ein Formular auf einer Website, in dem die E-Mail-Adresse eines Benutzers abgefragt wird, und ein Hacker, der einen Code einfügt, um das Passwort eines Website-Benutzers zu stehlen.) Nachdem eine Schwachstelle in dieser Funktion entdeckt wurde, wurde eine neue Version namens „mysql_real_escape_string“ erstellt " , aber die alte Version wurde nicht ersetzt. Die aktuelle Situation ist also so, als hätte man im Cockpit eines Flugzeugs zwei Knöpfe mit ähnlichen Funktionen nebeneinander: Ein Knopf dient zum Absenken des Fahrwerks, der andere zum sicheren Absenken des Fahrwerks. Dies widerspricht nicht nur dem gesunden Menschenverstand, sondern kann sogar zu einer Katastrophe führen.

Obwohl viele Leute PHP nicht mögen, ist PHP immer noch die Basis für eine große Anzahl von Websites. Eine Studie zeigt, dass bis zu 39 % aller Domains im aktuellen Internet auf PHP-Technologie basieren. Facebook, Wikipedia und die führende Veröffentlichungsplattform WordPress werden alle mit PHP entwickelt. Denn trotz seiner vielen Mängel ist PHP nahezu perfekt für Anfänger geeignet. Der Name PHP war ursprünglich die englische Abkürzung für „Personal Home Page“. Mit dieser Sprache können Programmierer problemlos dynamische Inhalte wie Datumsangaben und Benutzernamen zu statischen HTML-Seiten hinzufügen. Der Aufstieg von PHP hat den Sprung von der Website-Entwicklung zur Entwicklung von Webanwendungen erleichtert, und Entwickler müssen nicht einmal Profis sein.

Ori Livneh, der leitende Softwareentwickler, der bei der Wikimedia Foundation für das Wikipedia-Projekt verantwortlich ist, sagte, dass die Benutzerfreundlichkeit von PHP der Schlüssel zum Erfolg von Wikipedia sei. Allerdings wies er darauf hin: „Ich habe PHP schon immer gehasst.“ Aufgrund der Abhängigkeit von PHP entwickelten sich bei Wikipedia Designmängel, als sich die Nutzerbasis vergrößerte. (Aus diesem Grund unterstützte Wikipedia mobile Geräte erst 2008. Erst 2013 stellte die Website eine benutzerfreundliche Bearbeitungsoberfläche bereit.) Basierend auf PHP können jedoch einige Leute, die mit der Softwareprogrammierung nicht vertraut sind, dies tun auch neue Funktionen entwickeln. Mithilfe der PHP-Sprache zeigt Wikipedia beispielsweise Hieroglyphen zum Eintrag „Ägyptologie“ an und kann die Musikwiedergabe auf der Seite implementieren.

Google kann die PHP-Sprache nicht verwenden, da das aktuelle Google eine Aufgabe sehr gut erledigen muss, nämlich eine schnelle und genaue Suche. Daher verwendet die Google-Suchmaschine leistungsfähigere Sprachen wie Java und C++. Im Vergleich zu Google ist Facebook ein Sammelsurium kleiner Experimente, ein Sammelsurium aus Buttons, Feeds und Spielereien. In diesem Fall kann PHP die Funktionalität schneller implementieren.

Sie können sich sogar vorstellen, wie Zuckerberg im entscheidenden Moment in seinem Wohnheim an der Harvard University die Entwicklungsmethode von Facebook gewählt hat. Er musste die Website zu minimalen Kosten online stellen. Das Internet entwickelt sich rasant und die Vorlieben der Nutzer ändern sich ständig. Die einzige Möglichkeit, Chancen zu nutzen, besteht darin, ein Vorreiter auf dem Markt zu sein. Dabei spielt es keine Rolle, ob es ein Sammelsurium oder ein feines Stück Pasta ist. Er muss zunächst die Website fertigstellen und für die Nutzer nutzbar machen. Er dachte nicht darüber nach, ob der Code schön war, sondern wie er Freunde dazu bringen konnte, sich auf einer Website namens TheFacebook anzumelden, um Mädchen zu bewerten, mit denen sie vertraut waren.

Heute übersteigt die Marktkapitalisierung von Facebook 200 Milliarden US-Dollar und an den Bürowänden des Unternehmens hängen Slogans wie: „Dinge erledigen ist wichtiger als Perfektion“ und „Schnell handeln, um das Eis zu brechen.“ Diese mutigen Slogans sollen sicherstellen, dass sich die Mitarbeiter in die „Hacker“-Kultur des Unternehmens einfügen. Und das spiegelt genau den Wert von PHP wider. Handeln Sie schnell und überwinden Sie Blockaden. Dies ist die Essenz von PHP und repräsentiert die Art und Weise, wie PHP-Programmierer über Probleme denken. Man könnte sogar sagen, dass PHP selbst die Facebook-Kultur schafft und erhält.

Geheimwaffe: eine leistungsfähigere Sprache

Wenn Sie ein anderes Konzept finden möchten, das völlig im Gegensatz zu PHP steht, und sehen möchten, wie das andere Extrem aussieht, dann ist das Finanzhandelsunternehmen Jane Street Capital genau das Richtige für Sie Der Hauptsitz in Lower Manhattan, New York, ist einen Besuch wert. Das Unternehmen mit 400 Mitarbeitern wickelt derzeit etwa 2 % des täglichen Wertpapierhandelsvolumens in den USA ab.

Als ich Yaron Minsky, den technischen Direktor von Jane Street Capital, traf, saß er an seinem Schreibtisch mit einer Enigma-Verschlüsselungsmaschine neben sich, einem der am meisten erhaltenen Geräte aus der Zeit des Zweiten Weltkriegs. Ich dachte, das wäre die coolste Geheimwaffe in seinem Zimmer, aber dann wurde mir klar, dass ich einen Fehler gemacht hatte. Minsky sprach über eine Programmiersprache namens OCaml. Minsky, ein promovierter Informatiker, überzeugte seinen Chef vor zehn Jahren, das gesamte Handelssystem des Unternehmens mit OCaml neu zu schreiben.

Zuvor hatte fast niemand OCaml in praktischen Anwendungen eingesetzt. Der Entwickler dieser Sprache ist eine französische Forschungseinrichtung. Ihr ursprünglicher Zweck bestand darin, Computersysteme zu optimieren, die mathematische Theoreme automatisch beweisen können. Minsky lernte die Sprache während seines Studiums kennen. Er glaubt, dass die Sprache die Excel-Tabellen ersetzen könnte, die im Handelssystem von Jane Street Capital verwendet werden.

Das größte Feature von OCaml ist das „Eingabeprüfsystem“. Dies ähnelt der Syntaxprüfungsfunktion von Microsoft Word, die eine grüne Schnörkelmarkierung unter dem Code verwenden kann, den das System für falsch hält, und dann die Ausführung dieses Codes verhindern kann. Die mit diesem System entwickelten Programme sind äußerst zuverlässig, was wichtig ist, wenn die zu entwickelnde Software täglich Transaktionen im Wert von 30 Milliarden US-Dollar abwickelt.

Minsky sagte, dass das Eingabeprüfungssystem von OCaml es den Programmierern von Jane Street Capital ermöglicht, sich auf Probleme auf höherer Ebene zu konzentrieren, indem es Schwachstellen erkennt. Und wenn das Unternehmen die Prüffunktionen von OCaml weiter verinnerlichen kann, wird es eine Gewohnheit schaffen, die es Programmierern unmöglich macht, über die falsche Idee nachzudenken.

Damit die Tools zur Eingabeprüfung funktionieren, müssen Programmierer dem Code außerdem komplexe Kommentare hinzufügen. Das ist so, als würde man sagen, dass die Grammatikprüfung von Word von Ihnen verlangt, alle Sätze mit Anmerkungen zu versehen. Das Schreiben von Code mit begrenzter Eingabe kann umständlich und sogar frustrierend sein. Was noch schlimmer ist, ist, dass OCaml im Vergleich zu anderen Programmiersprachen eine sehr abstrakte Mathematik beinhaltet, was es für die meisten Programmierer schwierig macht.

Dennoch ist die Präzision der Sprache für manche attraktiv und verschafft Jane Street Capital einen ungewöhnlichen Rekrutierungsvorteil. Während einige Softwareentwickler die Mängel von PHP ignorieren und sich Facebook und Wikipedia anschließen, helfen die OCaml-Sprache und sein Buch „OCaml in the Real World“, laut Minsky, gute Programmiertalente anzuziehen. Der Reiz liegt nicht nur in der Sprache, sondern auch in den Menschen, die sie sprechen. Bei Jane Street Capital spielen die Mitarbeiter in ihren Pausen Schach. Diese Kultur des intellektuellen Wettbewerbs scheint eng mit der Verwendung der OCaml-Sprache verbunden zu sein.

Google scheint mit seiner selbst entwickelten Hochleistungssprache Go das gleiche Ziel zu erreichen. Um Netzwerkdienste eleganter und effizienter zu gestalten, wäre es von Vorteil, fortschrittlichere Software für die Server zu entwickeln, die hinter großen Netzwerkdiensten stehen. Darüber hinaus ist es auch ein Anziehungspunkt für Programmierer, die Neues mögen und Schwierigkeiten herausfordern.

Der richtige Zeitpunkt: nach Wachstum und Wachstum

Ende 2010 geriet Facebook in eine Krise. PHP ist keine Sprache, die die Codeleistung in den Vordergrund stellt, aber Facebook hatte damals einen Bedarf daran. Facebook wächst sehr schnell. Wenn es also keine wesentlichen Änderungen vornimmt, wird das Unternehmen scheitern.

Ein kompletter Wechsel der Programmiersprache ist keine Option. Facebook hat Millionen von Codezeilen mit PHP geschrieben, Tausende von Ingenieurexperten waren an dieser Entwicklung beteiligt und die daraus resultierenden Produkte haben Hunderte Millionen Benutzer angesammelt. Daher bildeten mehrere hochrangige Facebook-Ingenieure ein kleines Team. Sie versuchten, eine Möglichkeit für Facebook zu finden, Dienste anzubieten, ohne ihre „Muttersprache“ aufgeben zu müssen.

Ein Teil der Lösung bestand darin, einen Compiler zu entwickeln, der den PHP-Code von Facebook in schnelleren C++-Code übersetzt. Der andere Teil ist eine Leistung in der Computersprachentechnik: Facebook-Programmierern weiterhin eine Kultur im PHP-Stil zu vermitteln und ihnen gleichzeitig das Schreiben zuverlässigerer Codes zu ermöglichen.

Dieses „Rettungsteam“ hat eine Variante der PHP-Sprache Hack entwickelt. Hack ist eine PHP-Sprache mit einem optionalen Eingabeprüfsystem. Sie können entweder wie gewohnt schnell ein PHP-Programm mit unübersichtlichem Code schreiben oder Sie folgen den Systemvoraussetzungen und lassen das System durch das Hinzufügen von Kommentaren die Korrektheit des Codes überprüfen. Es ist kein Zufall, dass dieses Tool zur Eingabeprüfung vollständig mit OCaml entwickelt wurde. Facebook möchte, dass Programmierer schnell Code in einer vertrauten Sprache schreiben, aber nicht, dass sie etwas falsch machen. (Letztes Jahr stellte Zuckerberg den neuen technischen Slogan von Facebook vor: „Bewegen Sie sich schnell und stellen Sie gleichzeitig die Stabilität der Infrastruktur sicher.“)

Gleichzeitig durchläuft Twitter einen ähnlichen Wandel. Die Entwicklung von Twitter basierte ursprünglich auf Ruby on Rails. Dies ist ein beliebtes Netzwerkprogrammierungsframework, das in der Ruby-Sprache entwickelt wurde und viele Ideen von PHP übernimmt. Allerdings verzeichnete Twitter in der Folge einen Anstieg der Nutzerzahlen. Wenn ein Benutzer Hunderttausende Follower hat, müssen beim Posten einer Nachricht die Zeitleisten Hunderttausender Benutzer entsprechend aktualisiert werden. In der Vergangenheit überforderten einige beliebte Twitter-Nachrichten häufig das System, was dazu führte, dass Twitter-Ingenieure die Dienste stoppten und das Problem behoben. Twitter sei außerdem „berüchtigt“ für die daraus resultierenden häufigen Ausfälle.

Twitter löste dieses Problem anschließend, indem es einen großen Teil des Dienstcodes in Scala neu schrieb. Es überrascht nicht, dass Scala ähnlich wie OCaml auch eine von akademischen Institutionen entwickelte Sprache mit einem leistungsstarken Eingabeprüfsystem ist, das die Genauigkeit und Leistung des Codes in den Vordergrund stellt und daher die persönliche Programmierfreiheit und Unterhaltung des Programmierers opfert.

Nachdem das Umsatzmodell gefunden wurde, wird das Startup-Unternehmen reifen. Ebenso können sie die Leistungsfähigkeit von Programmiersprachen nutzen, um die Unternehmenskultur zu manipulieren. Der Programmiersprachendesigner Guido van Rossum kam zu Dropbox, nachdem er sieben Jahre bei Google gearbeitet hatte. Er sagte, wenn ein Softwareunternehmen eine bestimmte Größe erreicht, bestehe die einzige Möglichkeit, Chaos zu vermeiden, darin, eine Programmiersprache zu verwenden, die mehr von den Programmierern erfordere. „Es könnte Sie langsamer machen, weil Sie dreimal dasselbe sagen müssen“, sagte er.

Daher möchten viele Startups möglichst lange warten, bevor sie Änderungen vornehmen. Sie verlieren möglicherweise einige der talentierten Leute, die am Anfang waren, und es ist nicht förderlich, dass kleine Teams schnell neue Funktionen entwickeln. Allerdings würde eine solche Sprache den Programmierern im gesamten Unternehmen helfen, den Code der anderen zu verstehen, was zu einem stabileren Produkt führen würde. Diese Stabilität ist unerlässlich, wenn Sie möchten, dass Ihr Produkt Teil des täglichen Lebens der Menschen wird.

Die Fähigkeit, je nach Situation unterschiedliche Strategien anzuwenden, fördert in gewissem Maße die Entwicklung von Software-Startups. Die Entwicklung von Software hängt von der Beliebtheit von Computern ab, und diese Unternehmen verfügen über einzigartige Möglichkeiten, sich neu zu erfinden. Während sie sich verändern und weiterentwickeln, können sie nicht nur ihre Organisationsstruktur anpassen, sondern auch tiefgreifendere Veränderungen vornehmen, d. h. ihre eigene Kultur und Denkweise ändern.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn