Frameworks und Programmiersprachen: Von Grund auf neu kodieren vs. ein Framework verwenden
Zur kurzen Auffrischung der Unterschiede zwischen diesen beiden Begriffen: Eine Programmiersprache ist im Wesentlichen die Art und Weise, wie wir mit Computern kommunizieren und ihnen durch die Verwendung von Syntax und Semantik sagen, was sie tun sollen.
Ein Framework hingegen ist eine Sammlung von Programmen, die zusammengebracht werden, um eine Aufgabe zu erfüllen, die Programmierung effizienter zu machen und generell das Leben der Programmierer zu erleichtern.
Nun sind die beiden nicht gerade gegensätzlich, aber es gibt eine anhaltende Debatte in der Programmier-Community darüber, was für Programmierer wichtiger ist, um damit vertraut zu sein: Programmiersprachen (das Drumherum) oder Frameworks (schneller und mitunter funktionaler).
Zu den bekannteren Frameworks, von denen Sie vielleicht schon gehört haben, gehören unter anderem Ruby on Rails und Angular.JS. Aber sowohl die Programmiersprachen als auch die dazugehörigen Frameworks steigen und fallen jeden Tag weiter.
Was bedeutet das für Sie?
NEXT GENERATION DEVOPS: VALUE STREAM MANAGEMENT
Helen Beal (DevOps Institute.)
Sheen Brisals (The LEGO Group)
MLOPS: CONTINUOUS DELIVERY OF MACHINE LEARNING SYSTEMS
Hauke Brammer (finpair GmbH)
Frameworks vs. Kundenspezifische Lösungen
In einer perfekten Welt würden Sie alles wissen, was es über Frameworks und Sprachen zu wissen gibt. Aber wir leben nicht in einer perfekten Welt und Ihre Zeit ist kostbar.
Lassen Sie uns einen Blick auf die Unterschiede zwischen den beiden Optionen werfen und warum Sie eher von einem umfangreichen Wissen über Frameworks profitieren, als wenn Sie alle Besonderheiten der Programmiersprachen genau kennen.
Von Grund auf aufbauen
Entwicklung ist nicht einfach, warum sollte man es sich also schwerer machen?
Es ist eine ziemlich einfache Gleichung, auf ihrer grundlegendsten Ebene: Warum bei Null anfangen, wenn Sie die Vorteile von Werkzeugen nutzen können, die bereits entwickelt wurden, um Ihnen bei Ihren Programmierbemühungen zu helfen?
Der Punkt ist, dass viele Frameworks einen Großteil der Arbeit für Sie erledigt haben und eine effizientere Erfahrung auf Ihrer Seite schaffen können.
Sicher, Sie sind vielleicht nicht mit jeder Entscheidung einverstanden, die der Schöpfer des Frameworks getroffen hat. Vielleicht könnten Sie es sogar selbst besser machen, wenn Sie die Sprache auf Ihre bevorzugte Kodierungssyntax übertragen würden. Aber das alles geht auf Kosten der Zeit.
Alles in die Sprache Ihrer Wahl zu übertragen, kann Tage und möglicherweise sogar Jahre dauern, je nachdem, wie umfangreich das Framework ist oder was genau Sie kopieren wollen.
Es kann sein, dass Sie nicht alles aus dem Framework herausholen können, was Sie suchen, oder zumindest nicht genau so, wie Sie es gerne hätten, aber die Alternative ist, von vorne anzufangen, und das ist nicht wirklich machbar, wenn man bedenkt, dass die Zeit, die uns auferlegt wird, nur dadurch begrenzt ist, dass wir sterblich sind und nicht unendlich viel Zeit haben, um an allem herumzubasteln, damit es genau so ist, wie wir es haben wollen.
SEE ALSO: Technologie-Trends 2017: Hier sind die Top-Frameworks
Frameworks machen die Dinge einfacher
Hier ist ein ziemlich praktischer Blick auf all die Möglichkeiten, wie Ruby on Rails Anwendern hilft, einige der Minutien von endlosen Stunden der Codierung zu reduzieren.
Kleine Dinge wie das Entfernen von Semikolons und andere raffinierte kleine Tricks erlauben es Programmierern, hier und da ein paar Ecken abzukürzen, ohne dafür bestraft zu werden.
Natürlich brauchen Sie immer noch ein ziemlich umfassendes Wissen über Ruby, um mit Rails zu arbeiten, aber am Ende des Tages müssen Sie kein Experte in Ruby sein, um auf Rails umzusteigen.
Sie programmieren immer noch, aber viele kleine Details und eher frustrierende Aspekte der Programmierung werden durch gute Frameworks bereinigt, und das ist ein Bonus, den Sie nicht missen möchten.
Sie müssen sich bereits um so viele andere Aspekte Ihres Codes kümmern, vom allgemeinen Design bis hin zu Sicherheitsfragen, warum also nicht das Framework einen Teil der schweren Arbeit für Sie erledigen lassen?
Automatisierung übernimmt
Es gab eine Zeit, in der jeder einzelne Tastaturanschlag exakt sein musste, damit Ihr Programm so funktionierte, wie Sie es wollten. Aber mit dem technologischen Fortschritt werden auch die Kanten geglättet.
Nicht mehr müssen Sie Tausende von Codezeilen mit einem feinzahnigen Kamm durchgehen. Stattdessen werden viele dieser sinnlosen Zusätze oder Fehltritte von Compilern und automatisierten Protokollen entfernt, die darauf ausgelegt sind, diese überflüssigen Teile des Codes zu finden.
Diese Entwicklung hat verdeutlicht, wie präzise und vertraut man mit einem bestimmten Code sein muss, weil die Konsequenzen eines Fehlers oder einer ungenauen Ausführung viel größer waren.
Lernen Sie die richtigen Werkzeuge für den Job
Wie ich am Anfang dieses Artikels erwähnt habe, entwickelt sich die Programmierung weiter. Es verändert sich. Es wächst.
Und eine der Arten, wie es gewachsen ist, ist die Abhängigkeit von Anwendungsprogramm-Schnittstellen (API) und Algorithmen, die Ihnen helfen, die Aufgabe zu erfüllen, die Sie sich vorgenommen haben.
Frameworks zum Beispiel definieren und implementieren in der Regel Algorithmen, und die korrekte Ausführung der Algorithmen kann manchmal entscheidender für Ihren Programmiererfolg sein als die Spezifikation der Syntax.
Auch diese Algorithmen können Sie neu konfigurieren, aber Sie riskieren, einen Fehler zu machen, der Ihr Projekt entgleisen lassen könnte. In ähnlicher Weise ist es auch eine Frage der Zeit. Warum stundenlange Arbeit und das Risiko, Ihren Code zu verunstalten, wenn Sie stattdessen Wege finden können, sich mit einem bereits funktionierenden und vollkommen brauchbaren Algorithmus zu begnügen, der vom Framework implementiert wird?
Auch hier gilt, dass es Ihnen vielleicht nicht alles gibt, was Sie wollen. Aber wie der Rolling-Stones-Song sagt, es wird Ihnen geben, was Sie brauchen.
SEE ALSO: Neue Ausgabe des JAX Magazins – Was kommt als nächstes für Frameworks?
Was Frameworks hinzufügen, was Programmiersprachen nicht tun
Frameworks und Programmiersprachen sind miteinander verwoben. Sie sind nicht binär. Es ist kein entweder/oder. Sie arbeiten zusammen und Programmierer müssen beide ziemlich gut kennen, um wirklich effektiv zu sein. Natürlich werden Sie manchmal mit Situationen konfrontiert, die komplexe Lösungen erfordern, die ein Framework nicht lösen kann. Zum Beispiel wird manchmal ein einzigartiges Problem eine spezifische Reihe von Lösungen erfordern, die ein Framework nicht bieten kann, und deshalb müssen Sie auf die Programmierung zurückgreifen.
Aber hier ist die Sache – Sie können sich nur auf so viel mit Ihrer Zeit konzentrieren, um sowohl Frameworks als auch die Sprachen zu lernen, die sie erweitern. Zeit ist eine Ressource und Sie müssen sie weise einsetzen. Und wenn Sie erst einmal ein ausreichend umfassendes Verständnis von beiden Frameworks und Programmiersprachen haben, in welches sollten Sie mehr Zeit investieren, um es zu lernen? Welches wird Sie letztendlich zu einem besseren Programmierer machen?
Die Antwort lautet Frameworks. Sie machen Sie schneller, effizienter und weniger anfällig für dumme menschliche Fehler. Sie sind das Äquivalent einer Autobahn im Vergleich zum Stadtverkehr. Autobahnen sind stromlinienförmig und haben viele Hindernisse wie Gebäude und Lichter entfernt. Sicher, Sie mögen die Richtung einer Autobahn nicht immer mögen, oder denken, dass ein Schlagloch repariert werden sollte, oder dass es effizienter wäre, bestimmte Abschnitte umzuleiten, aber Sie werden nicht aus Ihrem Auto aussteigen und anfangen, sie von Hand umzubauen, richtig?
Wenn das Ziel eine schnellere und effizientere Reise ist, dann würde der Umbau der Autobahn viel zu lange dauern, verglichen mit der Nutzung im Ist-Zustand.
Das ist im Grunde der Deal, den Sie mit Frameworks bekommen. Schneller, effizienter, sicherer. Vielleicht nicht immer genau nach Ihren Vorgaben, aber angesichts der Alternative sind Frameworks dazu da, Ihnen das Leben leichter zu machen, und sie bieten einfach mehr, als es Programmiersprachen allein können.