7 Gründe, warum Frameworks die neuen Programmiersprachen sind

In den 1980er Jahren war der einfachste Weg, einen Nerd-Kampf zu beginnen, zu verkünden, dass Ihre Lieblingsprogrammiersprache die beste war. C, Pascal, Lisp, Fortran? Programmierer haben stundenlang genau erklärt, warum ihre spezielle Art, eine Wenn-Dann-Sonst-Klausel zu erstellen, Ihrer Methode überlegen war.

Das war damals. Heute sind Kämpfe um Syntax und Struktur weitgehend vorbei, da sich die Welt auf einige einfache Standards konzentriert hat. Die Unterschiede zwischen den Semikolons, geschweiften Klammern und so weiter in C, Java und JavaScript sind gering. Es gibt immer noch interessante Debatten über Typisierung und Schließungen, aber die meisten sind umstritten, weil die Automatisierung die Lücke schließt. Wenn Sie keinen Datentyp angeben möchten, besteht eine gute Chance, dass der Computer genau ableiten kann, was Sie gemeint haben. Wenn Ihr Chef JavaScript möchte, Sie aber Java mögen, konvertiert ein Cross-Compiler Ihr gesamtes statisch typisiertes Java in minimiertes JavaScript, das in einem Browser ausgeführt werden kann. Warum kämpfen, wenn die Technologie unseren Rücken hat?

Heute ist die interessante Aktion in Rahmenbedingungen. Als ich mich mit anderen Fakultätsmitgliedern an der Johns Hopkins University zusammensetzte, um einen neuen Kurs zu planen, dominierten die Rahmenbedingungen das Gespräch. Ist Angular besser als Ember? Ist Node.js das alles?

Wir haben einen Umfragekurs entworfen, der die Architektur der wichtigsten Softwarepakete untersucht, die die Grundlage des Internets bilden. Dies war das Zentrum der Aktion, das eines Umfragekurses würdig war, in dem die Architektur der wichtigsten Softwarepakete für das heutige Internet untersucht wurde.

Frameworks sind in diesem Sinne die neuen Programmiersprachen. Hier finden sich die neuesten Ideen, Philosophien und Praktiken der modernen Codierung. Einige flammen aus, aber viele werden zu neuen Grundbausteinen der Programmierung. Hier sind sieben Facetten, die den Framework-Trend befeuern - und Frameworks zur neuen Lieblings-Brutstätte für Nerd-Kämpfe machen.

Die meiste Codierung besteht darin, APIs miteinander zu verbinden

Es gab eine Zeit, in der das Schreiben von Software das Bereitstellen all Ihrer Kenntnisse der Programmiersprache bedeutete, um das Beste aus dem Code herauszuholen. Es war sinnvoll, die Komplexität von Zeigern, Funktionen und Umfang zu beherrschen - die Qualität des Codes hing davon ab, das Richtige zu tun. Heutzutage übernimmt die Automatisierung einen Großteil davon. Machen Sie sich keine Sorgen, wenn Sie wertlose Aussagen im Code hinterlassen. Der Compiler entfernt toten Code. Wenn Sie Zeiger baumeln lassen, wird der Müllsammler es wahrscheinlich herausfinden.

Außerdem ist die Codierungspraxis jetzt anders. Der meiste Code besteht jetzt aus einer langen Reihe von API-Aufrufen. Zwischen den API-Aufrufen werden die Daten gelegentlich neu formatiert, aber selbst diese Jobs werden normalerweise von anderen APIs verarbeitet. Ein paar glückliche Menschen können cleveren, knallharten Zeiger-Jonglier-Code für die Eingeweide unserer Maschinen schreiben, aber die meisten von uns arbeiten mit den höheren Ebenen. Wir führen einfach Pipe zwischen APIs aus.

Aus diesem Grund ist es wichtiger zu verstehen, wie sich eine API verhält und was sie kann. Welche Datenstrukturen akzeptiert es? Wie verhalten sich die Algorithmen, wenn der Datensatz größer wird? Fragen wie diese sind für die heutige Programmierung zentraler als Fragen zur Syntax oder Sprache. In der Tat gibt es jetzt eine Reihe von Tools, die es einfach machen, eine Routine in einer Sprache von einer anderen aus aufzurufen. Es ist beispielsweise relativ einfach, C-Bibliotheken mit Java-Code zu verknüpfen. Auf das Verständnis der APIs kommt es an.

Es lohnt sich, auf den Schultern der Riesen zu stehen

Stellen Sie sich vor, Sie sind ein Schüler von Erlang oder einer anderen neuen Sprache geworden. Sie entscheiden, dass es die beste Plattform zum Schreiben einer stabilen, fehlerfreien App bietet. Dies ist ein schönes Gefühl, aber es kann Jahre dauern, bis Sie den gesamten für Java oder PHP verfügbaren Code in die neueste Sprache Ihrer Wahl umgeschrieben haben. Sicher, Ihr Code könnte sich als dramatisch besser herausstellen, aber ist das die zusätzliche Zeit wert?

Mit Frameworks können wir die harte Arbeit derer nutzen, die vor uns kamen. Wir mögen die Architektur, die sie gewählt haben, vielleicht nicht und wir streiten uns vielleicht über Implementierungsdetails, aber es ist effizienter, unsere Beschwerden zu unterdrücken und einen Weg zu finden, mit den Unterschieden zu leben. Es ist so viel einfacher, alle guten und schlechten Seiten der Codebasis über ein Framework zu erben. Wenn Sie den Macho-Weg einschlagen, indem Sie alles selbst in Ihrer neuen Lieblingssprache und nicht in einem der beliebtesten Frameworks schreiben, können Sie die Creme Ihrer neuen Wahl nicht so schnell genießen, wie dies bei den Framework-Herstellern und ihren APIs der Fall wäre.

Es kommt darauf an, die Architektur zu kennen, nicht die Syntax

Wenn der größte Teil der Codierung API-Aufrufe aneinanderreiht, ist es nicht sehr vorteilhaft, die Besonderheiten der Sprache zu lernen. Sicher, Sie könnten ein Experte dafür werden, wie Java statische Felder in den Objekten initialisiert, aber Sie sollten viel besser herausfinden, wie Sie die Leistung von Lucene, JavaDB oder einem anderen Codestapel nutzen können. Sie könnten Monate damit verbringen, die Optimierungsroutinen von Objective-C-Compilern zu vertiefen, aber das Erlernen der Vor- und Nachteile der neuesten Apple-Kernbibliothek wird Ihren Code wirklich zum Schreien bringen. Sie lernen die wählerischen Details des Frameworks viel besser als die Syntax der Sprache, auf der das Framework basiert.

Der größte Teil unseres Codes verbringt die meiste Zeit in den inneren Schleifen von Bibliotheken. Es kann hilfreich sein, die Details der Sprache richtig zu machen, aber zu wissen, was in den Bibliotheken vor sich geht, kann sich dramatisch auszahlen.

Algorithmen dominieren

Das Erlernen einer Programmiersprache kann Ihnen helfen, die in den Variablen enthaltenen Daten zu jonglieren, aber das bringt Sie nur so weit. Die eigentliche Hürde besteht darin, die Algorithmen korrekt zu machen, und diese werden normalerweise von den Frameworks definiert und implementiert.

Viele Programmierer verstehen, dass es gefährlich und verschwenderisch ist, Zeit damit zu verbringen, Standardalgorithmen und Datenstrukturen neu zu implementieren. Sicher, Sie können es vielleicht ein wenig an Ihre Bedürfnisse anpassen, aber Sie riskieren subtile Fehler. Frameworks wurden im Laufe der Jahre umfassend getestet. Sie repräsentieren unsere kollektive Investition in eine Software-Infrastruktur. Es gibt nicht viele Beispiele dafür, wann es sinnvoll ist, „vom Netz zu gehen“, die harte Arbeit anderer beiseite zu werfen und eine algorithmische Kabine mit eigenen Händen zu bauen.

Der richtige Ansatz besteht darin, die Frameworks zu studieren und zu lernen, wie Sie sie zu Ihrem besten Vorteil einsetzen können. Wenn Sie die falsche Datenstruktur auswählen, können Sie einen linearen Job in einen Job verwandeln, der eine Zeit benötigt, die eine quadratische Funktion der Eingabegröße ist. Das ist ein großer Aufwand, wenn Sie viral werden.