Wie lange wird es noch C++ geben?



  • Artchi schrieb:

    Habe ich eine File-Objekt geöffnet, muß ich auch in Java zu dieser Resource "close" sagen. Sonst bleibt diese Resource so lange "besetzt", bis die Java-Virtual Maschine beendet wird. Und das kommt in der Analogie einem runter fahren eines Rechners.

    java.io.File? Nein, die musst Du weder öffnen noch explizit schließen. Ich denke mal, Du beziehst Dich auf Streams bzw. Reader/Writer, also IO. Aber von diesem speziellen Fall direkt zu generalisieren, das ist... nun ja. 🤡

    Edit: Und seit wann ist das Beenden einer Anwendung analog zum Runterfahren eines Rechners? 🙄



  • byto schrieb:

    ...
    Edit: Und seit wann ist das Beenden einer Anwendung analog zum Runterfahren eines Rechners? 🙄

    Bezieht sich wohl auf auf die "Anwendung" namens "virtual machine" ... 😉 (für die "Anwendung" namens "Windows XP" käme das auch ganz gut hin).

    Gruß,

    Simon2.



  • Eben! Eine JVM bildet einen nicht real existierenden Rechner bzw. eine Platform virtuell ab. Virtual Maschine... der Name sagt es schon und wurde nicht aus Spaß so gewählt.

    Und ja, ich meinte Streams, sorry... aber es auch völlig egal ob Streams, ODBC-Connections usw. Es sind Resourcen um die ich mich in meinem Code sehr wohl kümmern muß. Wir haben hier eine OSGI-Infrastruktur. Und solange jemand seine Plugins nicht frei gibt, mit der Methode release(), läuft die OSGI-Plattform bis zum unendliche weiter. Also muß sich der Java-Coder sehr wohl selbst darum kümmern, soll die Plattform korrekt "runter fahren". Vergisst (!) er das oder es gibt einen unerwarteten Programmablauf (z.B. durch eine Exception) und der Freigabe-Aufruf wird somit nicht mehr aufgerufen, gibts ein "Leck".

    Das man sich in Nicht-C++-Umgebungen als Coder keine Gedanken machen muß, ist eine LÜGE! Wir erleben das hier regelmäßig.



  • Artchi schrieb:

    Das man sich in Nicht-C++-Umgebungen als Coder keine Gedanken machen muß, ist eine LÜGE! Wir erleben das hier regelmäßig.

    Das wäre in der Tat ein naiver Gedanke. Und trotzdem erleichtert es die Arbeit ungemein, dass sich der GC um den Großteil der Objekte selbst kümmert, wenn auch nicht um alle.



  • Artchi schrieb:

    Das man sich in Nicht-C++-Umgebungen als Coder keine Gedanken machen muß, ist eine LÜGE! Wir erleben das hier regelmäßig.

    Erlebt ihr es regelmäßig, dass man sich gedanken machen muss, oder dass es einer falsch gemacht hat?



  • Ich denke das Problem bei C++ liegt beim Marketing.
    Java und C# sind da durch Sun und MS ganz gut aufgestellt, und auch die Javacommunitiy ist da evtl. aktiver.
    C++ ist sicher noch für 10 Jahre aktuell, was aber imho ein Problem ist, ist die Trägheit des Managements in der Sprache.
    So mag es TR1 etc. nun geben, aber es wäre längst überfällig einen neuen Standard zu verabschieden, dies dauert
    einfach viel zu lange. Der Standard kennt immer noch keine Threads, und Dateioperationen über lesen & schreiben hinaus.
    Mit boost existiert dies zwar Plattformunabhängig, und als "quasi-Standard", aber ich würde mir da doch ein Schnelleres
    Wachstum der Sprache wünschen. Es muss ja nicht alles in den Namensraum std reingepackt werden, aber offizielle Erweiterungen
    des Standards waren und sind imho seit 2000 überfällig. (Von XML und ähnlichen Buzzthemen möchte ich garnicht anfangen).

    phlox



  • Also das Thema hatten wir doch schon mehrmals durch gekaut. Man kann dem "Management" (so wie du es nennst) keinen Vorwurf machen. Jeder der sich mit der ISO beschäftigt, weiß das es nicht anders geht. Wenn man es schneller haben will, darf man kein ISO-C++ erwarten. Dann muß man auf einen Firmen-"Standard" setzen. Und da gibt es definitiv welche: VisualC++, C++/CLI usw.

    Und Dateioperationen und Threads kommen in TR2. Aber lasst die WG21-Jungs erstmal den C++0x verabschieden. Und auf die 2 Jahre kommt es jetzt auch nicht mehr drauf an, oder? Wir haben bald 2008, für 2009 ist der nächste Standard geplant. Es ist immerhin eine Aussage von den C++-Jungs. Und dann sollte man auch sagen "OK, 2009 plant ihr das, solange warte ich." Wenn jemand einen Termin nennt, muß man diesen auch akzeptieren. Und jeder kann sogar schon in den ersten C++0x-Entwurf schauen. Hat hier im Forum bestimmt auch fast niemand gemacht. Obwohl der C++0x-Prozess offen einsehbar ist.

    Du findest z.B. fehlendes XML schlecht. Hem... daran ist aber die C++-Community selbst schuld! Die WG21 hat definitiv 2005 eine XML-Lib von der Community gefordert! Niemand hat reagiert, also gibts anscheinend auch keinen Bedarf. 🙄 Immerhin hat aus dem 2005er Aufruf eine Network-Lib resultiert, die wir alle kennen: Boost.Asio! Wer sie nicht kennt (vom Namen her) sollte erst Recht nicht motzen.

    Die WG21-Jungs machen alles ehrenamtlich. Es ist keine Firma da, die für C++ Werbung macht. Also müssen auch mal die C++-Fans da draussen ranklotzen.

    Und du forders Erweiterungen die nicht im std-Namespace drin sind. Aber die gibt es doch: TR1! Wer diesen nicht nutzt, hat selber schuld. Ich benutze TR1 für meine Projekte! Wer mein Projekt kompilieren will und kein TR1 hat, hat pech gehabt, wenn er nicht auf dem aktuellen C++-Stand ist.

    Wer benutzt hier aus dem Forum sonst noch TR1? Und dabei ist das Forum bestehend aus gut informierten C++lern. Glaubt hier jemand, das 90% der C++ler da draussen wissen, was TR1 ist? Ich nicht! Aus dem einfachen Grund, weil sich niemand informiert.



  • phlox81 schrieb:

    Ich denke das Problem bei C++ liegt beim Marketing....

    Danke ich auch
    Es gibt einfach kein "C++-Marketing" ... und damit wird die Wahrnehmung von C++ komplett durch Java (und meinetwegen C#), hinter denen (werbe-)starke Interessengruppen stehen, verdrängt.

    Allerdings glaube ich nicht, dass eine allzu raschere "Weiterentwicklung" C++ gut getan hätte. Wenn ich mir die Versionsprobleme von Java ansehe (gibt ja aum 2 Softwarepakete, die mit derselben Version laufen 😉 ), dann halte ich tatsächlich einen stabileren Standard (und damit eine langsamere Entwicklung) für vorteilhaft.
    Ob sie allerdings derart träge sein muss wie bei C++, weiß ich nun nicht.

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Allerdings glaube ich nicht, dass eine allzu raschere "Weiterentwicklung" C++ gut getan hätte. Wenn ich mir die Versionsprobleme von Java ansehe (gibt ja aum 2 Softwarepakete, die mit derselben Version laufen 😉 ), dann halte ich tatsächlich einen stabileren Standard (und damit eine langsamere Entwicklung) für vorteilhaft.

    C++ läuft ganz unabhängig von der Version mit der es entwickelt wurde, kann also garnicht mit einer Javaanwendung die JRE 1.x brauch verglichen werden.



  • blackholdberty schrieb:

    ....C++ läuft ganz unabhängig von der Version mit der es entwickelt wurde, kann also garnicht mit einer Javaanwendung die JRE 1.x brauch verglichen werden.

    Vergleichen kann man alles !! 😃

    Japp natürlich ist es ein Vorteil von C++, dass stdKonforme Programme keine externe "RunTime" benötigen (wenn man nicht unbedingt will).
    Trotzdem ist es fraglich, wie kompatibel der Source sein wird (als Programmierer interessiert mich das auch brennend); natürlich MUSS man bei C++ nicht sooo dringend auf eine neue Version umsteigen, aber irgendwann tauchen die ersten Bibliotheken auf, die den neuen Standard brauchen (irgendwelchen templates-Sache) und die man braucht .... und dann ist Sourcemigration angesagt.
    Da ist Java wiederum nicht ganz so abhängig, weil die Compier relativ wenig machen und oftmals erst zur Laufzet entschieden wird.

    Gruß,

    Simon2.


Anmelden zum Antworten