Bevor Leute aufgrund des Titels anfangen zu flamen, möchte ich klar stellen, das dieser text in keinster Weise provokant zu verstehen ist, ich sage nicht, das C++ in irgendeiner Weise schlecht wäre, oder gar unbrauchbar, mir geht es lediglich um die Entwicklung von C++, und ich vertrete zu diesem Thema meine Ansichten.
Seit geraumer Zeit beschäftigt mich das Thema, welche technische Zukunft sich uns bieten wird, und was das für die Entwickler bedeuten wird. In einer Zeit, in der in der stetig neue Techniken entwickelt werden, und eine Innovation auf die andere folgt, muss man als Entwickler immer auf dem neusten Stand sein, um den Usern der Programme neue Möglichkeiten, und bessere Resultate zu liefern.
Die Entwicklung schreitet nicht nur rasant voran, sondern sie entwickelt sich auch noch selbst. Immer mehr neues wird geboten in sich stetig verkürzenden Zeitabschnitten. So hat sich Beispielsweise der Veröffentlichungs-Zyklus des Betriebsystem Windows halbiert, und bringt komplett Neuerungen schon alle 2 Jahre mit sich. In solch kurzen Intervallen liegt es nicht nur am Entwickler sich mit dem neuen Techniken auseinander zu setzten, man benötigt auch eine Sprache, welche dem User ermöglicht diese Techniken komplikationslos anzuwenden.
Neuere Sprachen wie C# oder Java, aber auch ältere die genauso alt, oder gar älter als C++ sind wie Pascal, Smalltalk oder Objective C werden stets weiter entwickelt, und bieten dem Entwickler in recht kurzen Intervallen Änderungen, die es Stark erleichtern mit diesen neuen Technologien umzugehen.
C++ ist eine weit verbreitete Sprache, welche vor allem für die Tatsache bekannt ist, das man mit ihr so ziemlich alles realisieren kann. Diese Sprache wird von keiner Firma oder von keinem festen Team Entwickelt, es gibt auch keinen „Standart“ Compiler. Es gibt mehr Compiler für C++ als ein einzelner Mensch im Stande wäre zu zählen, sie alle sind auf verschiedenste Weisen unterschiedlich, dennoch sind sie alle für dieselbe Sprache. Das sich jeder C++ Compiler annähernd gleich verhält ist durch eine Norm gesichert. Diese Norm der ISO legt detailgenau und zweifelsfrei exakt die Syntax von C++ fest, sowie den Befehlsatz der Standartbibliotheken, an die sich jeder C++ Compiler halten sollte.
Da sich C++ wie jede Sprache auch verändert, beziehungsweise aufgrund der neuen technischen umstände verändern muss, muss auch diese Norm angepasst werden.
Dies geschieht durch ein Standardisierungs-Komitee, welches die Richtlienen der Sprache festlegt, die darauf als sozusagen neue „Version“ in die Norm einfließen. Dieser Vorgang dauert lange, und ist recht aufwändig, woraus folgt, das C++ Neuerungen in großen, und sehr unregelmäßigen Intervallen übernommen werden.
Die C++ Verfechter argumentieren damit, das aufgrund der API-Nutzung, welche C++ als sehr systemnahe Sprache ausmacht, immer die neusten Techniken verwendet werden können. Dagegen gibt es auch nichts einzuwenden, doch Fakt ist, das es dem modernen Entwickler von heute nach Einfachheit sehnt. Mit den API’s, deren Anzahl stetig wächst, immer ein recht großer Aufwand verbunden ist. Außerdem bedeutet die Nutzung von System API’s immer einen großen Aufwand, das Programm für ein anderes System umzuschreiben.
Als Entwickler sehnt man sich natürlich nach einer möglichst Einfachen Lösung, die am besten auch noch Vorzüge der Sprache wie das Objekt Orientierte Programmieren nutzen.
Und hier ist der Punkt an dem C++ mit den Standartbibliotheken nicht mehr ausreicht. In diesem sinne bieten Firmen Entwicklungen wie Visual C++ von Microsoft oder Embarcaderos C++ Builder, welche Bibliotheken und Frameworks mitliefern, mit dem den Entwicklern umfangreiche Möglichkeiten geboten werden, einfach und schnell Probleme zu bewältigen. Diese Weiterentwicklungen durch Firmen sind allerdings meistens teuer, haben strenge Lizenzvereinbarungen, oder sind wie das Net Framework unter vielen Programmieren verpönt. Die große Abhilfe hierbei schaffen freie Bibliotheken, die meist von Open Source Entwickler Teams oder einzelnen Programmierern erstellt werden. Viele solcher Projekte haben schon lange bestand, sind stets aktuell, und bieten die Möglichkeit neuste Technologien mit sehr geringem Aufwand zu verwenden.
Die breite Masse dieser Projekte scheitert allerdings, obwohl sie sehr viel potential meist aufweisen. Das kann an fehlenden Geldern, mangelhafter Organisation oder auflösen des Teams liegen.
Als Gegenbeispiel nehmen wir die derzeit sehr Moderne und beliebte Sprache C# von Microsoft. C# bietet durch das .Net umfangreiche Möglichkeiten, direkt von Haus. Sie erlaubt es in wirklich kürzester zeit das lösen komplexer Probleme, und das mit minimalem Aufwand.
Oder nimmt man Java, Java ist eine Sprache, wo man ohne wesentliche Änderungen am Quelltext das Programm für nahezu jedes System erstellen kann.
Dies alles ist zwar auch in C++ möglich, allerdings bietet das C++ nicht von haus, und ist Immer mit einem gewissen Aufwand verbunden.
Der Befehlsatz wird den Anforderungen der User nicht mehr gerecht, und dies wird sich wohl auch nicht verbessern.
Und weil die Weiterentwicklung von C++ nicht dem Stand der Technik folgen kann, und auch wenig Komfort für den Entwickler bietet, ist C++ für mich eine tote Sprache, viel mehr glaube ich das C++ wahrscheinlich unter den anderen sprachen untergehen wird, oder durch eine Nachfolgersprache ersetzt wird.
Der Text ist nun doch länger geworden als Ursprünglich vorgesehen, an die die sich bis hier hin durchgelesen haben meine Frage:
Was ist eure Meinung dazu? Bin sehr interessiert wie andere über dieses Thema denken.
PS: Tot meine ich in dem Sinne, das die Entwicklung sehr langsam, oder im vergleich zur restlichen Entwicklung fast stehen bleibt, nicht das diese Sprache nicht mehr verwendet wird.
Seit geraumer Zeit beschäftigt mich das Thema, welche technische Zukunft sich uns bieten wird, und was das für die Entwickler bedeuten wird. In einer Zeit, in der in der stetig neue Techniken entwickelt werden, und eine Innovation auf die andere folgt, muss man als Entwickler immer auf dem neusten Stand sein, um den Usern der Programme neue Möglichkeiten, und bessere Resultate zu liefern.
Die Entwicklung schreitet nicht nur rasant voran, sondern sie entwickelt sich auch noch selbst. Immer mehr neues wird geboten in sich stetig verkürzenden Zeitabschnitten. So hat sich Beispielsweise der Veröffentlichungs-Zyklus des Betriebsystem Windows halbiert, und bringt komplett Neuerungen schon alle 2 Jahre mit sich. In solch kurzen Intervallen liegt es nicht nur am Entwickler sich mit dem neuen Techniken auseinander zu setzten, man benötigt auch eine Sprache, welche dem User ermöglicht diese Techniken komplikationslos anzuwenden.
Neuere Sprachen wie C# oder Java, aber auch ältere die genauso alt, oder gar älter als C++ sind wie Pascal, Smalltalk oder Objective C werden stets weiter entwickelt, und bieten dem Entwickler in recht kurzen Intervallen Änderungen, die es Stark erleichtern mit diesen neuen Technologien umzugehen.
C++ ist eine weit verbreitete Sprache, welche vor allem für die Tatsache bekannt ist, das man mit ihr so ziemlich alles realisieren kann. Diese Sprache wird von keiner Firma oder von keinem festen Team Entwickelt, es gibt auch keinen „Standart“ Compiler. Es gibt mehr Compiler für C++ als ein einzelner Mensch im Stande wäre zu zählen, sie alle sind auf verschiedenste Weisen unterschiedlich, dennoch sind sie alle für dieselbe Sprache. Das sich jeder C++ Compiler annähernd gleich verhält ist durch eine Norm gesichert. Diese Norm der ISO legt detailgenau und zweifelsfrei exakt die Syntax von C++ fest, sowie den Befehlsatz der Standartbibliotheken, an die sich jeder C++ Compiler halten sollte.
Da sich C++ wie jede Sprache auch verändert, beziehungsweise aufgrund der neuen technischen umstände verändern muss, muss auch diese Norm angepasst werden.
Dies geschieht durch ein Standardisierungs-Komitee, welches die Richtlienen der Sprache festlegt, die darauf als sozusagen neue „Version“ in die Norm einfließen. Dieser Vorgang dauert lange, und ist recht aufwändig, woraus folgt, das C++ Neuerungen in großen, und sehr unregelmäßigen Intervallen übernommen werden.
Die C++ Verfechter argumentieren damit, das aufgrund der API-Nutzung, welche C++ als sehr systemnahe Sprache ausmacht, immer die neusten Techniken verwendet werden können. Dagegen gibt es auch nichts einzuwenden, doch Fakt ist, das es dem modernen Entwickler von heute nach Einfachheit sehnt. Mit den API’s, deren Anzahl stetig wächst, immer ein recht großer Aufwand verbunden ist. Außerdem bedeutet die Nutzung von System API’s immer einen großen Aufwand, das Programm für ein anderes System umzuschreiben.
Als Entwickler sehnt man sich natürlich nach einer möglichst Einfachen Lösung, die am besten auch noch Vorzüge der Sprache wie das Objekt Orientierte Programmieren nutzen.
Und hier ist der Punkt an dem C++ mit den Standartbibliotheken nicht mehr ausreicht. In diesem sinne bieten Firmen Entwicklungen wie Visual C++ von Microsoft oder Embarcaderos C++ Builder, welche Bibliotheken und Frameworks mitliefern, mit dem den Entwicklern umfangreiche Möglichkeiten geboten werden, einfach und schnell Probleme zu bewältigen. Diese Weiterentwicklungen durch Firmen sind allerdings meistens teuer, haben strenge Lizenzvereinbarungen, oder sind wie das Net Framework unter vielen Programmieren verpönt. Die große Abhilfe hierbei schaffen freie Bibliotheken, die meist von Open Source Entwickler Teams oder einzelnen Programmierern erstellt werden. Viele solcher Projekte haben schon lange bestand, sind stets aktuell, und bieten die Möglichkeit neuste Technologien mit sehr geringem Aufwand zu verwenden.
Die breite Masse dieser Projekte scheitert allerdings, obwohl sie sehr viel potential meist aufweisen. Das kann an fehlenden Geldern, mangelhafter Organisation oder auflösen des Teams liegen.
Als Gegenbeispiel nehmen wir die derzeit sehr Moderne und beliebte Sprache C# von Microsoft. C# bietet durch das .Net umfangreiche Möglichkeiten, direkt von Haus. Sie erlaubt es in wirklich kürzester zeit das lösen komplexer Probleme, und das mit minimalem Aufwand.
Oder nimmt man Java, Java ist eine Sprache, wo man ohne wesentliche Änderungen am Quelltext das Programm für nahezu jedes System erstellen kann.
Dies alles ist zwar auch in C++ möglich, allerdings bietet das C++ nicht von haus, und ist Immer mit einem gewissen Aufwand verbunden.
Der Befehlsatz wird den Anforderungen der User nicht mehr gerecht, und dies wird sich wohl auch nicht verbessern.
Und weil die Weiterentwicklung von C++ nicht dem Stand der Technik folgen kann, und auch wenig Komfort für den Entwickler bietet, ist C++ für mich eine tote Sprache, viel mehr glaube ich das C++ wahrscheinlich unter den anderen sprachen untergehen wird, oder durch eine Nachfolgersprache ersetzt wird.
Der Text ist nun doch länger geworden als Ursprünglich vorgesehen, an die die sich bis hier hin durchgelesen haben meine Frage:
Was ist eure Meinung dazu? Bin sehr interessiert wie andere über dieses Thema denken.
PS: Tot meine ich in dem Sinne, das die Entwicklung sehr langsam, oder im vergleich zur restlichen Entwicklung fast stehen bleibt, nicht das diese Sprache nicht mehr verwendet wird.