C++, eine tote Sprache?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • C++, eine tote Sprache?

      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.
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • C++ und tot?
      Das glaube ich nicht.

      Jeder der "from sketch" programmierer arbeitet mit systemnahen Sprachen und C/C++ ist da nicht wegzudenken.

      Ich weiß nicht mit welchen verschiedenen System du alles arbeitest/gearbeitet hast, aber einen C/C++ compiler gibt es fast immer.
      Beste Beispiele : PS3 - PSP - Wii
      Ich kenne noch kein jdk für diese Systeme, es wäre ein haufen Arbeit sowas zu porten.
      Und C# für Linux Systeme hab ich auch noch nie gesehen.

      BASIC ist eine tote Sprache, nur noch die eigenabwicklungen davon bringen was VB oder REALBasic.
      BASIC wurde jetzt mehr oder weniger durch C/C++ ersetzt, ansonsten werden Mikroprozessoren nur noch mit ASM programmiert.
      Mikroprozessoren mit BASIC werden ja eigentlich nur noch zum lernen genutzt.

      Du denkst viel zu sehr in der Firmenlogik, mit C# kann man kein Betriebssystem schreiben und mit Java auch nicht.
      Du kannst mit C zu 98% ein System schreiben, nur den Kernel sollte man zum Teil in ASM schreiben.

      C#, VB perfekt für Windows Programme bei Apple system hab ich keine Ahnung.
      Java läuft auf allen gängigen Plattformen (halt nur auf den gängigen) auch super für normale Anwendungen.

      Aber du hast es selber gesagt, mit C++ kann man sogut wie alles machen.
      Mit Java kann man das auch aber nicht zum Beispiel für deinen Rooter. Für mich ist Java eine Hippie Sprache, auf Open Source orientiert und eine Interpretersprache.

      Gegen C++ und C kannst du einfach nichts sagen.
      Das sind keine hübsch vorbereiteten Komplettsets, du bekommst Rohstoff(Standard C/C++ Lib) und Werkzeug(Compiler Set) und was du daraus machst ist dir und deinen Fähigkeiten überlassen.
      Zum Beispiel für Grafik Applikationen -> DirectX Lib , OpenGL Lib (die dann nochma tausend andere 'vereinfachungs' libs's hat), SDL, DirectDraw, Qt blablabla
      Qt bietet auch noch tonnen an anderem zeug, und auch noch multi platformed.

      C# ist eine Fusion aus C++ und VB, also das geht nicht ohne Visual Studio.
      C/C++ Code kannst du auch im Notepad oder mit Vi schreiben.


      aaaaber, dass ist einfach Geschmackssache und auf die Situation und Ziel deiner Anwendung und eventuell auch auf deinen Arbeitsgeber bezogen. Nur solltest du nicht behaupten das C++ tot oder halt ausgebrant ist, vllt. für dich aber niemals für alle anderen.
    • Mit dem Thema direkt kann ich wenig anfangen, da ich mit C++ wenig zu tun habe, bin eher der C#'ler aus bestimmten Gründen (XNA und WP7)
      Ob C++ tot ist als Sprache, bezweifelt ja keiner, da es noch genutzt wird, die Annahme von ichbinniemand war ja auch nicht in dieser Richtung.
      Was er meinte, war aus seiner Sicht nur, dass C++ ziemlich langsam weiterentwickelt wird.
      Von .NET kommt nächstes Jahr (mit Windows 8) wahrscheinlich die Version 4.5 und somit auch mehr Funktionsumfang für C#/VB.net usw (davon gehe ich mal aus)
      Java gab es auch erst letztens ne neue Version (Version 7, auch wenn die ziemlich lange gedauert hat, bis die released wurde)
      Von C++ hört man aber weniger in dieser Art, weswegen die Meinung vom TE entstand und somit dieser Thread.

      Aber mal noch kurz zum Thema C#/VB
      @electrizer
      C# ist meines Wissens nach keine Mischung aus C++/VB und auch nicht direkt nur von MS gepflegt oder so.
      Es gibt mit Mono auch Implementierungen von C# bzw .NET für Linux und afaik auch Mac.
      Visual Studio ist auch nur eine IDE und wenn man C# benutzt zum Programmieren ist man nicht zwingend drauf angewiesen, VS zu nutzen, es gibt einige IDE neben der von MS, mit denen man C# nutzen kann.
      Zudem ist C# standardisiert, d.h eigentlich, dass es auch so ähnlich wie bei C++ sein wird, was den Compiler angeht (hab mich nie recht damit beschäftigt, da ich VS nutze)

      Soweit von meiner Seite mal zum Thema usw
      Sollte ich iwie falsch liegen, bitte korrigieren, auch ein Mod macht mal Fehler :D
    • C/C++ weiterentwickeln.. wofür?

      Das muss nicht weiterentwickelt werden, alles was du brauchst machst du selber oder findest du im Netz.
      Alle Systemschnittstellen sind problemlos erreichbar, das erste wofür die OpenGL lib funktioniert ist C/C++
      C++ ist ja schon die Weiterentwicklung von C, ich hab da einfach nichts was ich noch bemängeln könnte.
      Der Funktionsumfang hat wenig mit C++ zu tun sondern mit der Standard C/C++ lib, C++ ist nur eine Syntax und die Objektorientierte Version von C (natürlich ein paar weitere Unterschiede sind auch da, aber das ist so eine grobe Zusammenfassung)

      Und die oben genante lib wird immer noch weiterentwickelt
      von Microsoft : msvcrt.dll
      von GNU für alle GNU Compiler Set's : gclib
      und von jedem der das zu seinem Compiler portet (so viele gibt es auch wieder nicht, das ist kein klax so ein Compilerset) der hat wahrscheinlich seine eigene Umentwicklung der std lib


      @internetfreak
      Ja auf Linux soll's auch laufen, aber auch auf jeder Plattform? ( sprich Prozessortyp, Hardware etc.)
      aaaber damit schweifen wir vom Thema ab, ich hatte C# und Java jetzt mal einfach als Beispiel vom Thread entnommen.
    • C/C++ weiterentwickeln.. wofür?


      Der einfachheit halber?
      Beispiel: Indie, mit Indie bekommt man verschiedenste Clienten und Server Objekte. Diese bieten dem user die möglichkeit einfach einen Clienten und Server zusammen zu bauen, ohne sich mit den WinSock API's rumzuschlagen. Hierbei werden die möglichkeiten des OOP's voll ausgenutzt um das ganze so anwenderfreundlich wie möglich zu machen. Dank Indie ist es möglich Socket anwendungen für Linux und Windows ohne Code änderungen zu schreiben, was bei Benutzung der API's nicht möglich wäre. Und gleichzeitig kann der User nicht allzuviel falsch machen, wie Speicher leaks, da der meiste komplizierte Teil ihm schon abgenommen wurde, und sehr gut gelöst wurde.

      Erweiterungen der Standart libs um solche Objekte, welche unter jedem System funktionieren würde die (Cross Plattform) entwicklung erheblich vereinfachen und verschnellern.
    • Dank Indie ist es möglich Socket anwendungen für Linux und Windows ohne Code änderungen zu schreiben, was bei Benutzung der API's nicht möglich wäre.

      Und dank z.B. GNetLibrary lassen sich auch in C Sockets unter Windows und Linux absolut identisch nutzen. Und in diesem Fall wäre das ganze dank GObject sogar in C objektorientiert.
      Problem?
    • internetfreak;264718 schrieb:


      Aber mal noch kurz zum Thema C#/VB
      @electrizer
      C# ist meines Wissens nach keine Mischung aus C++/VB und auch nicht direkt nur von MS gepflegt oder so.
      Es gibt mit Mono auch Implementierungen von C# bzw .NET für Linux und afaik auch Mac....

      Ich kenn mich da zwar nicht aus aber C# steht (hab ich iwo mal gelesen) für C++++, da wäre eine Mischung
      ja doch irgentwie logisch :D
    • C# greift Konzepte der Programmiersprachen Java, C++, Haskell, C sowie Delphi auf. C# zählt zu den objektorientierten Programmiersprachen und unterstützt sowohl die Entwicklung von sprachunabhängigen .NET-Komponenten als auch COM-Komponenten für den Gebrauch mit Win32-Applikationen.
      Quelle: Wikipedia

      Steht zwar noch mehr da bin jetzt aber zu faul alles zu kopieren.
      Das C# "C++++" sein soll hab ich noch nie gehört. Sogesehen könnte man es als "kleine Weiterentwicklung von C++" ansehen. Aber das ist wohl auch wieder Meinungssache.

      Also es stimmt schon das nicht mehr viel an C++ geändert wird, aber wozu auch? Sie ist leicht durch jeden mit Bibliotheken erweiterbar, das reicht auch.
      So umständlich ist C++ auch nicht. Gut es ist mehr Schreibarbeit, mehr aber auch nicht. Dafür hast du in C++ den Vorteil, dass du deine z.B. Server-Objekte ganz nach deinem Belieben anpassen kannst. Außerdem ist meiner Meinung nach die Fehlerfindung in C++ leichter dadurch.

      Aber die Programmiersprachen werden von allen anders angesehen. Einige mögen mehr die Sprachen, wo vieles schon vorhanden ist und weniger Schreibarbeit da ist. Andere mögen es mehr wenn sie die volle Kontrolle über ihre eigenen Programme haben und nehmen dafür mehr schreiben in Kauf.

      Auch das mit dem Weiterentwickeln kann man geteilter Meinung sehen. Was neues ist immer toll, aber die Frage ist doch dann: Braucht man das überhaupt? C++ kann so schon viel und ist dadurch auch nur mühsam zu erlernen. Wenn da noch mehr dazu kommt wäre die Sprache meiner Meinung nach "überfüllt". In C++ kann man einiges ermöglichen, wenn nicht sogar fast alles was man braucht. Was soll dann ehrlich gesagt noch dazu kommen?
      Geschwindigkeit ist, wenn man gut programmiert, perfekt. Die Möglichkeiten ebenfalls. Die Handhabung ist zwar mühsam aber nach ein wenig Übung auch ganz leicht.
    • ichbinniemand;264763 schrieb:

      Der einfachheit halber?
      Beispiel: Indie, mit Indie bekommt man verschiedenste Clienten und Server Objekte. Diese bieten dem user die möglichkeit einfach einen Clienten und Server zusammen zu bauen, ohne sich mit den WinSock API's rumzuschlagen. Hierbei werden die möglichkeiten des OOP's voll ausgenutzt um das ganze so anwenderfreundlich wie möglich zu machen. Dank Indie ist es möglich Socket anwendungen für Linux und Windows ohne Code änderungen zu schreiben, was bei Benutzung der API's nicht möglich wäre. Und gleichzeitig kann der User nicht allzuviel falsch machen, wie Speicher leaks, da der meiste komplizierte Teil ihm schon abgenommen wurde, und sehr gut gelöst wurde.


      Du schreibst "User", wenn du mit C++ arbeitest bist du Programmierer.


      C# und der ganze ander Mist von Windows dieses F# und damals das J# und VB, alles im Groben und Ganzen nur was für Tools.
      Meiner Meinung nach kriegt man damit nichts gescheites hin.

      Ein Socket musst du selber initialisieren, Winsocks ist schon die einfache version. Du kannst immerhin auswählen was für ein Typ, welches Protokoll usw..
      Du kannst RAW Sockets erstelln du kannst IrFa sockets ,Bluetooth und so weiter eben.

      Du arbeitest gerne mit fertigen Sachen, das du nur noch alles zusammenfügen musst, ja dann ist deine Auswahl an Sprachen genau richtig.

      Aber wenn du eben "from Sketch" programmierst dann geht nix ohne C/C++.
      Und ich könnte mir zum Beispiel nicht vorstellen, dass sowas wie die Cry Engine in einer sprache wie C# oder Java geschrieben ist.
      Das geht nur mit C++

      Du hast die möglichkeit Speicheradressen von Variblen zu manipulieren, so kann man einfache Systeme hacken.
      Du kannst eigene Typen erstellen (Struct, enum -> typedef ).
      Du hast Namespaces, Klassen und kannst deine Funktionen basteln.
      Was erwartest du mehr.

      Du hast die Standard Lib mit allem was du brauchst.
      Wenn dir das nicht reicht, die Boost lib hat eigentlich jeden Scheiss außer gescheiter Grafik funktionen, dafür hast du GLUT, SDL, free GLUT, usw.

      C# programme laufen alle in einer Sandbox vom Net Framework, das ist wie bei Java, ich finde das richtig scheiße.
      Wenn ich ein Programm schreibe dann soll das auch direkt durch den Prozessor gejagt werden und nicht erst in einer Sandbox initialisiert.
      Durch die Sandbox ist aber eine bessere Performence da bei MultiCore Prozessoren, da man das in C++ selber nochmal einprgrammieren muss.
      Aber wenn Microsoft will, dann läuft dein Programm irgendwann nicht mehr auf dem Framework, sprich dein Programm ist abhängig davon.

      Nur weil es keine tollen regelmäßigen Updates gibt von irgendeiner Firma, heißt nicht das C++ ungenutzt ist.
      Die Compiler von GNU werden aber immer wieder ma aktualisiert, also gibt es eigentlich immernoch neue Versionen wenn man so will.
      Und MS hat auch eine neue Verison von ihrer STD Lib rausgebracht (V.100 bei VS2010)

      Mir fällt grade auf, das C++ ja doch weiterentwickelt wird ;)
    • (btw., noch am Rande: Es gibt im Grunde eine "Weiterentwicklung" von C++, nämlich D. Mit gefällt die Sprache, durchgesetzt hat sie sich aber nicht im Geringsten.)

      Ein Socket musst du selber initialisieren, Winsocks ist schon die einfache version. Du kannst immerhin auswählen was für ein Typ, welches Protokoll usw..
      Du kannst RAW Sockets erstelln du kannst IrFa sockets ,Bluetooth und so weiter eben.

      Na ja, er hat schon recht, noch einfachere Möglichkeiten sind nicht unbedingt schlecht. Es spricht nichts dagegen, eine Funktion anzubieten, die ein TCP Socket erstellt und auch direkt zu einem Server verbindet (und das ggf. sogar noch mit angegebenem Timeout). Denn das funktioniert immer gleich. Und solche Libs, die ichbinniemand damit ja anspricht, machen auch nicht arg viel mehr.

      Du arbeitest gerne mit fertigen Sachen, das du nur noch alles zusammenfügen musst, ja dann ist deine Auswahl an Sprachen genau richtig.

      Das würde ich so nicht sagen. Zum einem muss man das Rad nicht jedes mal neu erfinden und andren, wie gesagt, sind "höhere" Funktionen nicht unbedingt langsamer oder haben sonstige Nachteile (sofern man nur das machen will, wofür die Funktion gedacht ist). Oder liege ich da falsch?

      Du hast die möglichkeit Speicheradressen von Variblen zu manipulieren, so kann man einfache Systeme hacken.

      Inwiefern wirkt sich das auf die Performance / Produktivität aus?

      Du kannst eigene Typen erstellen (Struct, enum -> typedef ).

      OOP löst Strukturen ab und da der Klassennamen gleich dem Typ des Objekts ist braucht man auch kein typedef mehr.

      Du hast Namespaces, Klassen und kannst deine Funktionen basteln.

      Das hat so ziemlich jede objektorientierte Sprache?!

      Wenn dir das nicht reicht, die Boost lib hat eigentlich jeden Scheiss außer gescheiter Grafik funktionen, dafür hast du GLUT, SDL, free GLUT, usw.

      ACK. Deswegen verstehe ich auch nicht so recht, was ichbinniemand gegen C/C++ hat.

      C# und der ganze ander Mist von Windows dieses F# und damals das J# und VB, alles im Groben und Ganzen nur was für Tools.
      Meiner Meinung nach kriegt man damit nichts gescheites hin.

      Finde ich schon. Wieso auch nicht? Die meisten Anwendungen können in C# genau so gut umgesetzt werden wie in C++, maximal ein wenig langsamer. Aber das ist ja oft zu vernachlässigen. Bis auf Java. Das ist scheiße.
      Natürlich aber auch nur, solange man auf Windows bleibt. Für alle anderen Betriebssysteme finde ich es auch kacke.
    • Du hast sehr schön die vorteile von C++ gegen java und c# erläutert, aber das verfällt bei sprachen wie fortran pascal, smalltalk. Und dagegen valide argumente zu finden die auf mich oder dich als normal entwickler zutreffen ist schon ein wenig schwieriger.
      Und ja ich verwende gern packeges, die sind von profis dies besser können als ich oder du. Und warum das schlecht sein sollte kann ich nicht verstehen

      Und dz verstehst meinen punkt nicht...
      C++ ist entwicklungstechnich gesehen fast tot, weil die updates unregelmåssig und langsam kommen.

      Btw als programmierer bist du 1. User einer programmiersprache und 2. User eines compipers, desshalb habe ich user geschrieben
    • Well;264845 schrieb:



      Das würde ich so nicht sagen. Zum einem muss man das Rad nicht jedes mal neu erfinden und andren, wie gesagt, sind "höhere" Funktionen nicht unbedingt langsamer oder haben sonstige Nachteile (sofern man nur das machen will, wofür die Funktion gedacht ist). Oder liege ich da falsch?


      Das gibts aber auch für C++, jeder bauer der neu in c++ anfängt veröffentlicht eine socket class.

      Well;264845 schrieb:

      Du hast die möglichkeit Speicheradressen von Variblen zu manipulieren, so kann man einfache Systeme hacken.
      Inwiefern wirkt sich das auf die Performance / Produktivität aus?

      Gar nicht. Es geht darum das du systeme hacken kannst

      Well;264845 schrieb:


      OOP löst Strukturen ab und da der Klassennamen gleich dem Typ des Objekts ist braucht man auch kein typedef mehr.

      Ich meinte auch nicht für Klassen sondern für Strukturen,Enums und verkürzungen von typen

      Well;264845 schrieb:


      Das hat so ziemlich jede objektorientierte Sprache?!
      Ich wollte nur betonen das C++ das auch hat

      Well;264845 schrieb:


      ACK. Deswegen verstehe ich auch nicht so recht, was ichbinniemand gegen C/C++ hat.
      Zu wenig sinnvolle Tutorials hier im Bereich!

      Well;264845 schrieb:


      Finde ich schon. Wieso auch nicht? Die meisten Anwendungen können in C# genau so gut umgesetzt werden wie in C++, maximal ein wenig langsamer.

      Ja aber dann muss man das auch noch extra lernen, warum nicht einfach direkt C++ lernen?

      Well;264845 schrieb:

      Aber das ist ja oft zu vernachlässigen. Bis auf Java. Das ist scheiße.
      :thumbsup:

      @ichbinniemand
      Brauchst du wirklich alle 3 monate irgendein Update?
      Was wünschst du dir denn in C++ so dolles?
      Glaub mir, wenn dieses Update rauskommen sollte, was ja eigentlich keins ist - sondern nur weitere Vorschriften von den Amis wie C++ aussehen sollen - dann wird es eine Menge stress geben.
      Tonnen an neuen Büchern über das neue C++ und tolle Einführungskurse wo die Firmen ihr geld reinverschwenden - obwohl alle Funktionen höchstwahrscheinlich gleich bleiben und die stdlib intern einfach aufgepeppt wurde.

      So jetzt damit du ma dir im klaren bist was C++ eigentlich ist.


      C++ ist kein Produkt von irgendeiner Firma und es wird von niemanden entwickelt. Das ist eine Sprache, eine Syntax. Also die Grammatik einer Sprache und was du meinst, dass ist der Wortschatz der Sprache( Befehlssatz ).
      So, und dieser Befehlssatz, der har nicht wie in anderen Sprachen was mit dem Compiler zu tun - nein der hat was mit den libs zu tun die du grad parad hast.

      Deswegen kann man C++ Programme auf alle systeme porten - weil die Grammatik ein und die Selbe ist und das System einfach nur die Wörter kennen muss.

      Wenn du unter linux entwickelst hast du ganz andere Headerdateien noch da als wenn du unter Windows entwickelst oder für dein Handy.
      Nur die Headerdateien von der stdlin sind gleich, das bietet dir jedes Toolkit , aber dann noch tonnen an anderem Zeugs. Und dann findest du im Netz ganz leicht, weitere libs die auf fast jedem system laufen.

      Also jeder Compiler hat eigentlich sein eigenes C++, GNU hat sein eigenes - Windows hat sein eigenes und Apple wahrscheinlich auch.
      Die Hersteller RICHTEN sich einfach nur nach den Angaben der ISO damit es einfach keine komplikationen für Entwickler gibt, und C++ eine globale Sprache ist. Fast jeder scheiß lehnt sich an C++ - PHP ist ja auch ziemlich ähnlich, nur weil ich 2 jahre mit PHP gearbeitet hatte, konnte ich so leicht auf C++ umsteigen .

      Aber das ist alles Geschmackssache, du kannst aber nicht behaupten das C++ irgendwie unentwickelt ist - das ist einfach falsch. Du hast dann zu wenig Ahnung davon einfach wenn du sowas behauptest, du verstehst ja glaubsch auch gar nicht was wir oder ich so toll an C++ finde/n.
      C++ ist ne ganz andere Liga, und mit C bist du gleich noch tiefer in der Galaxy der Elektro/Computer/(Mikro/)Prozessoren-Technik.
      Ich will/muss irgendwann zb noch ASM lernen und können.

      Ich muss hier jetzt grad auch zugeben, dass das an deinen Wünschen und Zielen liegt wie du C++ zu finden hast.
      Ich will später Spielekonsolen entwicklen, ich brauch das. Was willst du machen? Wenn du in die Richtung gehst ( grade bei Spielen und anderen Realitätsnahen Applikationen ) dann musst du tiefer und genauer Programmieren können.

      Ich hoffe du verstehst jetzt mehr was C++ eigentlich ist, es ist die Objekt Orientierte Mutter der vereinfachten Programmierung (Bei den ersten Prozessoren mussten die Leute ja noch mit ASM hantieren und mit Binärbefehelen, das war zb nicht einfache Programmierung)

    • Ich habe nichts gegen c++, ich habe mir lediglich darüber gedanken gemacht das so wenig neuerungen/anderungen kommen, das meine ich mit dem begriff tot, lediglich dass c++ heute genauso ist wie vor 10 jahren.

      Ich weiss was c++ ist, und das es wichtig ist, allerdings für die einfach gestrikten programmierer bietet es nicht den kompfor von z.b. java

      Und zum thema sockets, es ist was anderes wenn ein noob eine sock klasse released, oder ob ein team von mehreren profis seit 10 jahren an diesem projekt entwickeln

      Nur ich muss dir in einem wiedersprechen C++ ist nicht die mutter des OOP, wenn ist das smalltalk, die erste oop sprache die heut immer noch verwendet und weiter entwickelt wird. Und dann gab es noch objekt pascal, das zeitgleich oder sogar früher als C++ entwickelt wurde. C++, pascal und smalltalk haben sogut wie alle modernen sprachen extrem geprägt.
    • Trotzdem gibt es C++ Compiler für jede mögliche Plattform und für die anderen die du genannt hasst, gibt es nicht so viele compilersets.
      Neben C/c++ gibt es fast immer einen ASM und einen Fortan Compiler.

      Mit Mutter ist nicht was aus der Historik gemeint sondern was aus der Gegenwart, C++ ist bei den OOP Sprachen No.1

      TIOBE Software: The Coding Standards Company
      Da sieht mans, C/C++ ganz oben, zwar ist Java drüber - aber Java ist eine Interpretersprache..

      C++ wird weiterentwickelt, ständig kommt eine neue STDlib raus von den Entwicklern, GNU ist bei stdlib v 6 und MS bei 100 (bei .Net Framework 4.0 mit enthalten)

      Aber was meinst du denn mit Komfort?
      Ich finde das ätzend dass man sogar mit WinRAR die JAR pack's öffnen kann - man kann sie zwar unlesbar machen, ich weiß aber trotzdem..
      Und es läuft nicht wie C++ auf wirklich jeder Plattform.

      Denn wenn jemand einen C++ compiler schreiben will für eine neu entwickelte Plattform, zb. damals bei PS3.
      Dann nimmt der die GNU Compiler, passt sie den Prozessor an (eigentlich schon fertig für alle Prozessortypen), macht noch paar änderungen wegen dem System. Falls da was chifriert werden muss oder das wie bei ner EXE nochmal anderes Format hat, kein Problem - einfach noch ein Tool dass die Binaries in das gewünsche Format packt und fertig. stdlib ist von GNU schon dabei, die läuft auf allen Prozessoren, für die auch ein GNU Compiler da ist. Dann schreibt er den Systemkernel für die Plattform ( wahrscheinlich in C und ASM mit den fertigen Compilerset ). So jetzt fügt man noch die Basisfunktionen hinzu und erstellt dafür ein paar Headerdateien die dann die jeweiligen Syscalls aufrufen um eine bestimmte Funktion auszuführen.
      Das wäre also nur Compilerset aussuchen von GNU, vielleicht anpassen wenn was anders ist - stdlib läuft und was soll noch fehlen?
      Alles andere kann er jetzt einfach porten, es gibt wie gesagt tonnen an stuff.
      Entweder Linux packets saugen und umändern (sind ja netterweise opensource und auf GNU eingestellt) oder auf github oder sourceforge mal suche und einfach umändern, schwupp haste alles.



      So, jetzt mach das mal für Java....
      Da ist alle schön vorgefertigt, musst also ALLES was Java bietet für deine Plattform auch compatibel machen.
      Als erstes natürlich den java applet launcher da, dann das SDK mit den ganzen headern die du anpassen musst, und am ende kannst du dann JAR packets da drauf ausführen...


      Firmen sind aber nicht auf OpenSource fixiert, im Gegenteil - so geheim wie nur möglich!
      C++ macht den vorherigen code beim compilieren unlesbar, unmöglich das je wieder so hinzukriegen, dank Obfuscator und Code optimisierung (ja gibts auch so bei java..)
      ABER jeder Bauer kann eine .exe Datei starten - also entwicklen auch viele Firmen dafür programme und von den Firmen kannst du dir dann Sachen programmieren lassen für deine Plattform.

      Handys zb. brauchen alle Java für Embedded Systems, sone pups version von Java.
      Bei C++ ist das ganz anders, du hast genau die selben Sachen wie sonst auch - das System bietet dir die stdlib und dann noch tonnen an eigenen Headerdateien für Sockets usw.
      Wahrscheinlich erscheinen dann auch noch so libs wie SDL und boost die das leben noch leichter machen und fertig.
      Bis Java auf dem System läuft hast du schon eine fertige Anwendung.

      Aber wie bereits öfter genannt, ist das alles geschmackssache....
      Und ich merke wir wiederholen und leicht etwas mit den argumenten usw.. und die Diskussion führt ins nichts..

      Fazit ist und bleibt :
      C++ ist eine feste Syntax mit regeln, und dafür werden dann für jeweilige Systeme Compiler und Headerdateien entwickelt. Firmen haben intern natürlich ihre eigenen Framworks für zB. Spiele usw. und ihre Engines blabla, mit denen Sie dann immer arbeiten und die sie Weiterentwickeln -> C++ ist keine OpenSource fixierte Sprache, mann will binären code für den Prozessor.
      Es ist eine sehr Hardwarenahe und genaue Sprache.

      Und vor allem, es muss nichts neues zur stdlib hinzukommen! Es ist alles da was man braucht, den rest bietet das System und dein Gehirn( und zum teil auch google).
    • Was hat das jetzt mit sprachentwicklung zu tun?

      Ich habe lediglich gesagt das C++ langasmer entwickelt wird
      Ich habe weder gesagt dass C++ nicht genug bietet, noch nicht auf jedem system verfügbar ist, noch sonst irgendwas.
      alles was du da schreibst ist mir schon klar, und war nie das worauf ich hinaus wollte.

      ich habe lediglich über 2 thesen nachgedacht

      1. C++ entwicklung (Nicht die entwicklung der GNU STD lib oder so sondern die entwicklung der Standarts) ist sehr langsam->Tot
      2. Die C++ Std lib ist ein ziemliches basic, und viele dinge die bei sprachen wie C# oder Java mitlerweile selbstverständlich sind (z.b. automatische speicherverwaltung) muss man selbst machen. -> Weniger Kompfort für den Programmierer

      Btw: ich persönlich finde C++ aus keinem dieser beiden gründe schlecht, ich hab auch nix gegen C++, ich mag die sprache einzig und allein wegen der Syntax nicht, aber das hat mit dieser sache nichts zu tun