WikiDer > Plattform (Computer)

Platform (informatica)

EIN Plattform ist in der IKT eine Grundlage, auf der Software wird entwickelt. Die bekanntesten Plattformen sind:

Die Plattformidee der Softwareentwicklung

Um das Prinzip einer Plattform richtig zu verstehen, ist es notwendig zu verstehen, was plattformlose Softwareentwicklung bedeutet. In diesem Kapitel betrachten wir zunächst den "ursprünglichen" Weg der Softwareentwicklung; dann überlegen wir, was die plattformbasierte Entwicklung hinzufügt.

Ursprüngliche Softwareentwicklung

Die traditionelle Art der Softwareentwicklung hat sich über mehrere Jahrzehnte nach der Einführung der ersten elektronischen Computer der Welt entwickelt 1940er Jahre. Die ersten Computer wurden durch Eingabe von Befehlen in elektronischer Form direkt vom Computer aus bedient Prozessor vom Computer aus durchgeführt werden könnte.

Nach dem 1945 Nach und nach wurden Mechanismen entwickelt, um die Eingabe von Befehlen zu erleichtern. Zuerst kamen die Hardware-Tools (Tastaturen und Monitore), schnell gefolgt von den ersten Programmiersprachen und Betriebssysteme. Eine Programmiersprache ist ein Mittel zum Formulieren von Befehlen für einen Prozessor unter Verwendung einer Syntax, die von Menschen verstanden werden kann, anstatt eine Syntax zu verwenden, die vom Prozessor direkt gelesen werden kann. Ein Betriebssystem ist ein Programm, das die Funktionen der zugrunde liegenden Hardware Dritten – Benutzern oder Software – leicht zugänglich macht.

Im Laufe der Jahre wurden sowohl Programmiersprachen als auch Betriebssysteme erweitert, um Softwareentwicklern grundlegende Hardwarefunktionen leichter zugänglich zu machen. Unter anderem wurden modernere Programmiersprachen mit abstrakterer Funktionalität erweitert, um mit weniger Aufwand mehr erreichen zu können und Betriebssysteme wurden kontinuierlich mit Unterstützung für unterschiedliche Hardware erweitert, die auch immer mehr Möglichkeiten bot. Außerdem immer mehr Algorithmen und Datenstrukturen als "Standardlösungen" entwickelt, um Ergebnisse in einer bestimmten Programmiersprache zu erzielen.

Von der Basis zur Plattform

Obwohl die verfügbare Software zur Unterstützung der Softwareentwicklung nach und nach immer mehr verfügbar wurde und insbesondere der Abstraktionsgrad von Programmiersprachen zunahm, blieb es lange Zeit, dass alles mehr sein muss als das Grundniveau der Hardwarebedienung pro Programm vom Programmierer selbst geschrieben. Die Einführung der Maus beispielsweise erleichterte die Bedienung des Computers. Und bald wurde die Maus in das Betriebssystem integriert, in dem Sinne, dass die meisten Betriebssysteme begannen, die Bewegungen einer Maus durch die in das Betriebssystem integrierte Unterstützung zu verfolgen. Das bedeutete jedoch nicht, dass jedes Programm auf Anhieb mit der Maus bedient werden konnte – obwohl es Programmierern möglich wurde, auf die Bedienung der Maus durch den Benutzer zu achten, musste dennoch jedes Programm auf die Maus umgestellt werden. reagieren. Das heißt, jedes Programm könnte jederzeit abfragen, ob sich die Position der Maus geändert hat, indem es auf elektronische Signale lauscht, die von der Maus in den Computer gelangen - diese Signale in eine "Bewegung" umwandeln und dem Benutzer anzeigen (zum Beispiel mittels a Mauszeiger) musste vom Benutzer selbst durchgeführt werden. Und dies musste pro Programm und für jedes Programm neu gemacht werden.

Das gleiche geschah nach der Einführung von Grafikhardware in den Personalcomputer, die es ermöglichte, schöne Bilder auf den Bildschirm zu zaubern. Dadurch war es möglich, Programme mit grafischen Oberflächen zu versehen. Das heißt, Programme könnten die Hardware anweisen, farbige Linien auf den Bildschirm zu setzen, um den Bildschirm Zeile für Zeile mit Farben zu füllen, bis das Ganze eine grafische Oberfläche für den Benutzer wurde. Auch dieser Aufwand musste pro Programm erneut durchgeführt werden.

Kurz gesagt, obwohl Programmiersprachen immer abstrakter wurden, blieb das anhaltende und sich verschlimmernde Problem der ursprünglichen Art, Software zu schreiben, dass die neuen Möglichkeiten viel schneller wuchsen, als von einigen Programmierern mit einfachen Programmiersprachen gehandhabt werden konnte.

Seit Mitte des 70er Jahre Die ICT-Community reagierte auf dieses wachsende Problem mit der Einführung von Systemen, die nach und nach gängigere Aufgaben in Form von wiederverwendbarem Code verfügbar machten. Dies begann mit der Einführung von Softwarebibliotheken: Sammlungen gängiger Codeteile, die wiederverwendet werden konnten – zum Beispiel durch Ausschneiden und Einfügen oder später durch kompilieren um die Wiederverwendung automatisch zu ermöglichen, einfach über einen Befehl, um einen bestimmten vordefinierten Code zu verwenden. Natürlich wurden auch diese Bibliotheken immer weiter entwickelt und abstrahiert. Während eine Grafikbibliothek früher etwas war, das Code enthielt, um beispielsweise ein farbiges Dreieck auf dem Bildschirm zu zeichnen (anstatt es von Grund auf neu erstellen zu müssen), bestehen modernere Grafikbibliotheken aus komplexen Codeteilen, die ganze Schaltflächen, Dialogfelder anzeigen , und Fenster, in der Lage zu sein, den Bildschirm mit einer ganzen Reihe von Optionen zum Konfigurieren des produzierten Objekts zu erstellen.

Natürlich entstanden viele und verschiedene solcher Hilfsmittel. Manchmal konkurrieren sie bei einem bestimmten Problem miteinander (viele Grafikbibliotheken sind verfügbar), manchmal sind sie hochspezialisiert für einen bestimmten Zweck (nicht irgendeine Grafikbibliothek, sondern eine Grafikbibliothek zur Verwendung auf dem Betriebssystem).

Die große Vielfalt und stetige Weiterentwicklung der Hilfssysteme sorgte schnell dafür, dass niemand den Überblick behalten konnte. Seit Mitte des die 80er Daher ist es üblich, dass sich Softwareentwickler auf die Verwendung bestimmter Tools spezialisieren – zum Beispiel schreibt ein Programmierer nicht nur Software, er ist darauf spezialisiert, Software zu schreiben, die auf dem Fenster Betriebssystem - und daher ist er mit der Verwendung der Grafikbibliothek, den übergeordneten Mausroutinen, der Netzwerkunterstützung usw. von Windows sehr vertraut, aber nicht unbedingt mit den gleichen Einrichtungen vertraut, die sonst bereitgestellt werden.

Aus dem oben beschriebenen Trend, sog. Entwicklungsplattformen Ursprung: hochentwickelte Werkzeugsammlungen, die den Softwareentwickler beim Schreiben von Software weitgehend unterstützen, indem sie alle möglichen Funktionalitäten in Form von vorgefertigten, wiederverwendbaren Blöcken anbieten.

Plattform-Trends

So wie die Idee einer Entwicklungsplattform selbst aus einem Trend entstand, waren Plattformen selbst schon immer Trends unterworfen. Die Haupttrends, die die Entwicklung von Plattformen geprägt haben, sind Abstraktion und Vollständigkeit.

Abstraktion

Einer der offensichtlichsten Trends in der Entwicklung des Plattformprinzips ist die zunehmende Distanz vom Programmierer zur Hardware. Während ein Programmierer einst die Hardware für alles, was er tat, durch eine Vielzahl sehr einfacher Anweisungen auf Hardware-Ebene (oder nahe dieser Ebene) direkt steuern musste, ist es heute die Hauptfunktion jeder Plattform, sicherzustellen, dass ein Programmierer eine sehr komplexe Aktion in einer einzigen Anweisung auszuführen (ein Fenster in einer grafischen Oberfläche in voller Gestalt zeichnen, eine Netzwerkverbindung öffnen und verwenden usw.). Die Idee dahinter ist, dass sich ein Programmierer so gut wie möglich auf die spezifische Aufgabe konzentrieren kann, die er ausführen möchte, anstatt viel Zeit damit zu verbringen, sehr gängige und daher langweilige Codeteile zu programmieren. Außerdem hat dies (hoffentlich) den Vorteil, dass die Entwicklungszeit von Softwarestücken und damit auch die Kosten reduziert werden. Darüber hinaus verhindert die Wiederverwendung von einmal entwickelten und als zuverlässig befundenen Codestücken endlose Fehler in gemeinsamen Codestücken, die sonst immer wieder neu geschrieben werden müssten.

Vollständigkeit

Ein weiterer Trend in der Plattformentwicklung ist ohne Zweifel auch, immer mehr Funktionalität auf einer Plattform anzubieten, damit ein Programmierer immer mehr auf „fremde“ Tools verzichten kann. War zum Beispiel eine Plattform so etwas wie die C Sprache in Verbindung mit der wxWindows-Grafikbibliothek enthalten einige Plattformen heutzutage Tools zum Einrichten von grafischen Oberflächen, deren Betrieb steuern Tastatur, Maus, Joystick, Berührungsempfindlicher Bildschirm, etc. und natürlich sauber in einen "Bedienvorgang" abstrahiert, damit sich der Programmierer nicht darum kümmern muss, mit welchem ​​Gerät die Schnittstelle bedient wird), Einrichten Netzwerk- oder InternetVerbindungen, Handhabung von Dateien in allen möglichen Formaten (insbesondere XML), mathematische Funktionen, Handhabung von Sammlungen und anderen abstrakten Datentypen und Handhabung von Multimedia-Komponenten.

Ein Teil dieses Trends kann als das Aufkommen von Plattformen angesehen werden, die eine hochspezialisierte, hochintegrierte, vertikale Säule vom Programmierer bis zu den unteren Ebenen, manchmal bis hin zur Hardwareebene, bilden. Bekannte Beispiele hierfür sind die Wintel-Plattform (bei der sich der Programmierer auf die Programmierung und Nutzung von Windows auf der Plattform spezialisiert hat). Intel-Familie Prozessoren für Desktop-Anwendungen), die Gnu/Linux/Qt/KDE-Plattform (ein direkter Konkurrent von Wintel auf Basis von Linux, Gnu-Software, der QT-Bibliothek und der KDE-Umgebung) und LAMPE (Linux, Apache, MySql, PHP – eine Plattform, die sich auf die Entwicklung von Webanwendungen konzentriert). Eine Sonderstellung nehmen hier die Java-Plattform ein (die sich speziell auf die JVM-Maschine als zugrunde liegenden Computer konzentriert – bei der die JVM jedoch ein abstrakter Computer ist, der in Software ausgeführt wird und die Plattform über alle physische Hardware hinweg interoperabel macht) und die J2EE-Erweiterung dazu (J2EE ist eine Plattform zur Entwicklung von Geschäftsanwendungen in einer Netzwerkumgebung). Auch die Öffnung der unteren Plattformschichten für den allgemeinen Zugriff zum Aufbau einer "Plattform-Plattform" (wie Java mit der JVM) könnte ein neuer Trend werden. 's wettbewerbsfähige .Net-Plattform Microsoft basiert mit einem anderen Ansatz auf der gleichen Idee.

Plattform und Community

Ein letztes "Feature", das eine Plattform heutzutage haben muss, um sich zu Recht Plattform zu nennen, ist eine "Community" - eine Gemeinschaft von Benutzern, die zumindest darauf spezialisiert sind, diese Plattform und diese Plattform für fast alles zu nutzen Arbeit. Ideal ist jedoch die Situation, in der die Nutzer nicht nur spezialisiert, sondern vor allem aktiv an ihrer Plattform beteiligt sind. Diese Situation schafft eine Plattform mit sehr dynamischem Charakter, in der die Weiterentwicklung der Plattform von den Wünschen, Ideen und Erfindungen der Nutzer (der Mitglieder der Community) und nicht nur von externen Trends gespeist wird. Eine Plattform mit einer lebendigen User-Community hat viel mehr Potenzial, ein Trendsetter technologischer Entwicklungen zu werden als nur ein Follower. Darüber hinaus hilft eine aktive Community einer Plattform, leichter in die allgemeine Softwareentwicklung zu finden, sowohl durch die Verfügbarkeit von Spezialisten als auch durch die Anwesenheit von Personen, die die Plattform als Lösung für ein bestehendes Problem beitragen können.

Schließlich fördert eine Community auch das Wachstum einer Plattform in Form von neuem Benutzerwachstum – eine aktive und wachsende Community führt zur Schaffung vielfältiger und leicht zugänglicher Schulungen für Benutzer, die mit der Nutzung der Plattform beginnen möchten, und ist auch eine Ressource Unterstützung für neue Benutzer, sowohl durch traditionelle Konferenzen und Benutzergruppen als auch durch moderne Abfrage-Beacons wie das Internet. Damit ist auch ein dritter Trend in der Plattformentwicklung markiert: Der Trend, dass die Plattform neben technischem und wirtschaftlichem Charakter zunehmend auch einen sozialen Charakter erhält.

Siehe auch