Framwork. Ein Begriff, der uns in der Informatik oft begegnet. Aber was genau ist damit gemeint? Seine einfache Übersetzung als "Arbeitsrahmen" ist nicht sehr aussagekräftig, gibt uns aber eine Vorstellung davon, wofür es verwendet wird. Tatsächlich gibt uns ein Framework einen Rahmen für unsere IT-Projekte, der es uns ermöglicht, ihr Design zu vereinfachen. Schauen wir einmal näher hin.
Wir haben gerade „IT-Projekte“ gesagt. Und wer von „It-Projekte“ sagt, muss auch „Programmiersprachen“ sagen. Wo liegen die Unterschiede?
Framework für Programmiersprachen
Nehmen wir zum Beispiel die berühmte Programmiersprache Python. Mit diesem Tool können wir Spiele spielen, mathematische Berechnungen durchführen, Daten aus dem Web sammeln oder Web-Scraping betreiben oder künstliche Intelligenz einsetzen. Die Möglichkeiten sind grenzenlos.
Nehmen wir an, Du bist ein Data Science Fan und willst Dein eigenes neuronales Netz erstellen. Allerdings müssen wir die Initialisierung der Neuronengewichte, die Aktivierungsfunktion und den Gradientenabstieg implementieren. Das können wir tun, aber es ist sehr mühsam.
Eine echte Tortur für jeden Anfänger in der Datenwissenschaft, solltest Du Dein Projekt aufgeben?
Zum Glück gibt es Frameworks, die es Dir ersparen, das gesamte neuronale Netz aufzubauen. Dank dieses Tools habe ich in kürzester Zeit ein funktionierendes neuronales Netz, ich muss nur das Modell an meine Daten anpassen. Das ist der Hauptvorteil eines Frameworks: Es gibt unserer Anwendung eine Grundstruktur, die es uns erspart, unsere Anwendungen von Grund auf neu zu bauen (das nennen wir build from scratch). Außerdem sind Frameworks nicht nur für die Datenwissenschaft, sondern auch für die Web- und Mobilentwicklung geeignet.
Framework Beispiele
Hier sind einige Beispiele für Frameworks, die häufig in der Webprogrammierung verwendet werden:
- Für Javascript, eine der gängigsten Sprachen für die Webentwicklung, gibt es z.B. Angular, was hinter der Netflix-Website steht.
- In der Sprache Ruby, gibt es Ruby on Rails, das für die Vermietungsseite AirBnb, den Live-Streaming-Dienst Twitch und die berühmte Code-Hosting-Plattform Github verwendet wird.
Hier sind einige Beispiele für Frameworks, die im Bereich der Datenwissenschaft sehr beliebt sind:.
- TensorFlow ist ein Framework in Python. Er wurde vom Google-Team kreiiert und ist in der Industrie sehr beliebt, da er eines der ersten ist, der auf den Markt kam.
- PyTorch ist ein Framework, der immer beliebter wird, da er einfacher zu benutzen ist als TensorFlow, wir benutzen ihn vor allem im Search.
Frameworks werden von Experten entwickelt, was die Zuverlässigkeit des Codes sicherstellt, und sogar große Unternehmen verwenden sie, warum also darauf verzichten?
Außerdem garantiert dir die Verwendung von Frameworks, dass du Hilfe über die Funktionsweise von Funktionen findest. Du wirst eher Material zur Verwendung eines Frameworks finden, mit der Online-Dokumentation und dem großartigen Forum Stackoverflow, als zur Implementierung von Anwendungen. .
Wieso also nicht direkt ein Framework statt einer Sprache lernen?
Da das Framework uns viel Zeit spart, wäre es besser, nur das Framework zu lernen ?!
Aber wir dürfen nicht vergessen, dass ein Framework eine Programmiersprache als Grundlage verwendet, so dass es ärgerlich sein kann, wenn wir einen Fehler bei der Verwendung der Sprache machen, ohne diese zu beherrschen.
Daher ist es wichtig, vor der Verwendung eines Frameworks mit der verwendeten Programmiersprache umgehen zu können..
Schließlich hindert Dich niemand daran, Deine eigene Implementierung eines neuronalen Netzes von Grund auf zu entwickeln.
Das wird sogar sehr geschätzt (Wir empfehlen Dir, es in Deinem Lebenslauf zu erwähnen), aber Du musst viel mehr Zeit investiere – und das hängt von Deinen individuellen Zielen ab.
Die korrekte Definition eines Frameworks ähnelt sehr einem anderen Wort, das wir oft im Lexikon der Softwareentwicklung finden, nämlich Bibliothek (library auf Englisch).
Framework vs library, was ist der richtige Begriff ?
Es gibt einen Unterschied zwischen den beiden Begriffen, den wir im Folgenden erläutern werden. Sehen wir uns das Ganze mit Python an. Es ist üblich, die Ausführungszeit einer Funktion zu beobachten, um ihre Effizienz zu bestimmen. Dazu verwenden wir die Funktion timeit aus der timeit-Bibliothek. In diesem Fall messen wir die Ausführungszeit einer von uns gewählten Funktion.
Nun nehmen wir an, dass wir in unserem bevorzugten Data-Science-Framework die Zeit messen können, die unsere neuronalen Netze zum Lernen benötigen. In unseren importierten Bibliotheken gibt es jedoch keine timeit-Bibliothek und trotzdem haben wir, wenn wir die neuronalen Netze des Frameworks verwenden, die Lernzeit ungefragt zur Verfügung. Wir nennen dies Inversion of Control (IoC). Es ist nicht der Benutzer, der aus seinem Code die Funktion timeit aufruft, sondern das Framework, das die Funktion timeit unabhängig vom Programm verwendet.
Letztendlich können wir sagen, dass ein Framework viel anspruchsvoller als eine Bibliothek ist, da es in seiner Funktionsweise Bibliotheken verwendet, ohne dass der Benutzer dies explizit verlangt.
Fazit
So halten wir fest, dass ein Framework die Verwendung von Programmiersprachen vereinfacht. Dieses Werkzeug erspart uns das Umschreiben unwichtiger Funktionen unserer Anwendungen und macht es einfacher, Programme für verschiedene Zwecke zu exportieren. Da Frameworks von Experten erstellt werden, werden sie außerdem nicht nur in der Arbeitswelt für ihre Zuverlässigkeit anerkannt, sondern auch von einer großen Anzahl von Menschen genutzt. Diese große Gruppe von Nutzern stellt sicher, dass wir leichter Hilfe bei unseren Vorlagen finden, als wenn wir sie selbst erstellen.
Wenn du lernen möchtest, wie man die Frameworks Flask oder TensorFlow oder sogar die Programmiersprache Python verwendet, dann schau dir unsere Schulungen an.