C++ ab Vista



  • Hallo,

    ich weiß, das Thema ist irgendwo schon ziemlich ausgelutscht, aber irgendwie gibt es auch nie eine richtige Diskussion dazu (zumindest habe ich keine gefunden).

    Ich wollte mal in den Raum fragen, wie es wohl ab Windows Vista mit C++ weitergehen wird?

    Microsoft setzt ja alles daran, dass möglichst nur noch mit .NET gearbeitet werden soll. Und das bedeutet - meiner Meinung nach - einen Umstieg auf .NET Sprachen - z.B. C#. Ich rede jetzt nicht von C++ als C++/CLI, sondern von reinem C++.

    Möchte man platformunabhängig programmieren, gäbe es ja - zumindest theoretisch - das Mono Projekt, um .NET auch auf andere Betriebssystem zu portieren, um somit das "compile once, run everywhere" Konzept von Java nachzuahmen. Demnach würde das Argument ".NET funktioniert nur unter Windows" nicht ziehen.
    Als andere Alternative gäbe es ja auch Java.

    Aber hat C++ wirklich noch eine Chance, ab Windows Vista noch zu konkurrieren?

    GUI Anwendungen sind mit .NET einfacher zu verwirklichen, als über C++ Toolkits (OK, der Punkt mag nicht stimmen, ich habe noch nie mit einem Toolkit wie wxWidgets, Qt, GTK+/GTKmm etc. gearbeitet, aber auf den ersten Blick scheint es eben schwerer zu sein). Momentan über Windows Forms, später WPF etc (ist doch WPF? Gibt da so viele Ws... WPF, WTF, WTB, WBLABLA etc :P).

    Dass C++ natürlich nicht ganz aussterben wird, ist mir klar. Aber vor allem unter Windows denke ich, dass es stark Marktanteil verlieren wird und C# dazu gewinnen wird. Nicht nur unter Windows Vista, sondern auch unter XP.

    Vielleicht übersehe ich auch einen wichtigen Punkt, aber ich denke, dass C++ eben in Zukunft "unwichtiger" werden wird, was mir persönlich ein wenig Angst bereitet. .NET ist zwar schön und nicht schlecht, aber ich möchte C++ (nicht CLI) nicht "verlieren".

    PS.: Bitte keine Trollposts (okay, manch einer wird's wohl eh nicht lassen können, aber so lange sich das in Grenzen hält, ist es verkraftbar), daher bitte nur ersthafte Posts. Ich wäre sehr dankbar.
    Sonst verkommt dieses Forum noch zu einem, wie es z.B. gewisse Spiele-Foren sind... *hust*



  • (*(C++))++ schrieb:

    Ich wollte mal in den Raum fragen, wie es wohl ab Windows Vista mit C++ weitergehen wird?

    Ganz normal...
    Für ein Beispiel siehe:
    http://www.codeproject.com/winfx/VGGlassIntro.asp

    (*(C++))++ schrieb:

    GUI Anwendungen sind mit .NET einfacher zu verwirklichen, als über C++ Toolkits (OK, der Punkt mag nicht stimmen, ich habe noch nie mit einem Toolkit wie wxWidgets, Qt, GTK+/GTKmm etc. gearbeitet, aber auf den ersten Blick scheint es eben schwerer zu sein). Momentan über Windows Forms, später WPF etc (ist doch WPF? Gibt da so viele Ws... WPF, WTF, WTB, WBLABLA etc :P).

    So lange da auf dem Markt der GUIs noch so viel CHaos herrscht, wird es noch eine Weile dauern... aber ich sehe es genau so: C# wird zukünftig primär für User-Mode-Apps eingesetzt.



  • C++ wird man ja auch ohne Probleme unter Vista benutzen können und es wird ja auch platformunabhängige Wrapper geben, die einem die Vista spezifischen Sachen vom Hals halten, so wie es das bisher immer gab.

    Auf Mono würde ich nicht setzen. Ich halte nicht viel von dem Projekt. Aber es wird dir eh nicht viel bringen. WinForms sind nämlich kein Bestandteil von .NET, sondern eine Microsoft eigene Sache. Mono bietet dafür zwar auch APIs an, aber ich weiß nicht wie komplett die sind, außerdem ist der Bereich wohl ein Patent-Pflaster. Mono-Anwendungen setzen daher eher auf GTK#, was ein .NET-Wrapper für GTK+ ist. Warum sollte man dann also GTK nicht gleich aus C++ (GTKmm) ansteuern?

    C++/CLI ist eher eine merkwürdige Sache. Was ich davon gesehen habe fande ich eher negativ und verwirrend. IMHO ist es keine gute Idee an C++ noch weiter rumzupunschen. Egal ob Herr Sutter persönlich in der Kommission war, die uns dies angetan hat.



  • Ich finde die Erweiterungen, die Microsoft für C++ vorgeschlagen hat eigentlich gar nicht so schlecht. Auch unabhängig von .Net.

    Das Schlimme ist eben nur, das C++ jetzt schon sehr komplex ist.



  • Ich find c++ (als sprache) eher recht einfach gehalten ^^

    Kompliziert sind nur die tonnen an libs und frameworks, diee es fuer c++ gibt ^^

    Ciao ...



  • (*(C++))++ schrieb:

    Ich wollte mal in den Raum fragen, wie es wohl ab Windows Vista mit C++ weitergehen wird?

    naja, wie jochen schon schrieb, wird der hauseigene java clone (C#.NET) mittelfristig die fensterchen-programmierung dominieren. ...aber c++ usw. gibt's ja nicht nur von m$ und das kann keiner 'abschaffen' 😉



  • Ich verstehe nicht ganz wozu man unbedingt das Windows Framework und C# braucht.

    In Java mit Swing hat man doch bereits ein mächtiges GUI-Werkzeug. Bis auf die systemabhängigen Sachen kann man damit doch alles erreichen. Die systemabhängigen Sachen sind aber eh nur spielereien, die sowieso niemanden nützen und eher hinderlich sind. Swing ist jetzt viel schneller geworten und man merkt kaum Unterschiede zwischen mit Windows Forms programmierte Anwendung und Swing.

    Mit Java Swing hat man Vorteile wie einfache Entwicklung, Portabilität und Stabilität von "Haus aus" mitgeliefert. Man läd die Sun-Java-SDK runter, noch eine IDE wie Eclipse und kann sofort loslegen.

    Wenn man sich aber unbedingt von Microsoft abhängig machen will, der soll halt das Windows Framework benutzen.

    Also ich finde das Java schon Vorteilhafter ist. Man kann auf Linuxsystem eine Anwendung schreiben und ist sich sofort sicher das diese Anwendung auch auf Mac oder Windows läuft. Man muss dafür einfach nichts tun, weder neu komplieren oder gar den Code ändern.

    Ich finde schon das C++ im GUI-Bereich abnehmen wird, weil C++ eine viel zu mächtige (und damit schwierige und fehleranfällige) Sprache ist für simple GUI-Anwendung.



  • DEvent schrieb:

    Mit Java Swing hat man Vorteile wie einfache Entwicklung, Portabilität und Stabilität von "Haus aus" mitgeliefert.

    Abstrakte Propagandasprüche, die sowohl subjektiv als auch auf so ziemlich jede Sprache, IDE uvm. anwendbar sind.

    DEvent schrieb:

    Man läd die Sun-Java-SDK runter, noch eine IDE wie Eclipse und kann sofort loslegen.

    Willst du eine native Anwendung - und keine interpretierte -, so ist dieser "Vorteil" bereits ein Aus-Kriterium. Auch das es ständig Erweiterungen für die Programmiersprache gibt (Java (1.)4, Java (1.)5, Java (1.)6 ...) lässt mich der Sprache nicht mehr vertrauen; heute programmiert, morgen veraltete Technik -> Super.

    DEvent schrieb:

    Wenn man sich aber unbedingt von Microsoft abhängig machen will, der soll halt das Windows Framework benutzen.

    Du bist der Programmierer, du machst dich immer von Software abhängig.

    DEvent schrieb:

    Also ich finde das Java schon Vorteilhafter ist. Man kann auf Linuxsystem eine Anwendung schreiben und ist sich sofort sicher das diese Anwendung auch auf Mac oder Windows läuft. Man muss dafür einfach nichts tun, weder neu komplieren oder gar den Code ändern.

    Ganz so butterweich funktioniert das in der Praxis leider meistens nicht.

    DEvent schrieb:

    Ich finde schon das C++ im GUI-Bereich abnehmen wird, weil C++ eine viel zu mächtige (und damit schwierige und fehleranfällige) Sprache ist für simple GUI-Anwendung.

    Was hat das eine mit dem anderen zu tun? Auf der einen Seite proklammierst du Swing (als Framework) und sagst andererseits, C++ wäre ungeeignet; du vergleichst also Sprache mit Framework. Wenn schon, dann doch bitte Framework mit Framework vergleichen! Und da wüsste ich nicht, warum ein in C++ geschriebenes Framework grundsätzlich mächtiger/komplizierter/schwieriger sein sollte, als ein in (oder für) Java geschriebenes.



  • Das artet doch jetzt sicherlich wieder in einen Flameware C++ vs. Java aus. Und ich war dieses mal nicht der Brandstifter! Juchuuuu!!!! 😃



  • Back to topic! 🙂

    Gestern schrieb mir ein Kumpel per Mail, das er gehört hatte, das Vista nur auf 64bit-CPUs vernünftig (performancemäßig) funktionieren soll. Jetzt macht er sich sorgen um seinen erst gerade gekauften P4-PC.

    Wer setzt eigentlich solche Vista-Gerüchte in die Welt? 🙄 Jetzt sind nicht nur Programmierer sondern auch noch normale Anwender mit falschen Infos versorgt. Für mich hört sich das so an, als ob es da ganz einfach Interessensvertreter gibt, die gerne sowas mal auf hiesige Websites posten. Meinetwegen gegen ein zus. Taschengeld. Nein, ich habe keine Verfolgungsängste! 😉

    Diese Frage mit dem C++ kam schon zu Zeiten auf, als "VC++ .NET 2002" erschien und selbst heute glauben viele, das VC++ ab Version 2002 nur noch Code für .NET erzeugen kann. Zum Glück hat MS das .NET aus dem VC++-Produktnamen wieder entfernt, eben wegen falscher Vermutungen in der Community. Ist aber ein Schaden den man nicht von heute auf morgen weg bekommt.



  • Artchi schrieb:

    Wer setzt eigentlich solche Vista-Gerüchte in die Welt? 🙄 Jetzt sind nicht nur Programmierer sondern auch noch normale Anwender mit falschen Infos versorgt.

    Ist das nicht logisch? Eigentlich wuerd ich erwarten dass Programmierer besser Informiert sind als Anwender, und dass sowieso massig DAUs rumlaufen die alles moegliche glauben.



  • "Auch das es ständig Erweiterungen für die Programmiersprache gibt (Java (1.)4, Java (1.)5, Java (1.)6 ...) lässt mich der Sprache nicht mehr vertrauen; heute programmiert, morgen veraltete Technik -> Super."

    Naja sry, aber das halte ich nun doch für ein sehr schwaches Argument. Dass es Weiterentwicklungen gibt ist doch normal und diese sind nun auch nicht so gravierend dass man sich ständig umstellen muss, ganz im Gegenteil.
    Und wenn ich mir dazu mal .net anschaue. Da ist es ja teilweise so, dass ein in .net 1.0 geschriebenes Programm nicht mal auf .net 2.0 läuft. Finde ich nicht gerade schön.
    Ausserdem... ich vertraue lieber in etwas wie Java, als in ein Framework, dass von Microsoft kommt. Die Vergangenheit hat ja gezeigt, dass die Geschäftspraktiken von Microsoft nicht immer gerade "kundenfreundlich" waren, um es mal vorsichtig auszudrücken



  • nep schrieb:

    Dass es Weiterentwicklungen gibt ist doch normal und diese sind nun auch nicht so gravierend dass man sich ständig umstellen muss, ganz im Gegenteil.

    Dennoch habe ich bei Java manchmal das Gefühl, dass sich die Sprache zu rege entwickelt; z.T. aber auf Arten, die ich nicht unbedingt unterstütze, während andere Feinheiten schlichtweg ignoriert werden. Aber gut, dass lässt sich so auch über zahlreiche Sprachen, IDEs etc. aussagen ...

    nep schrieb:

    Und wenn ich mir dazu mal .net anschaue. Da ist es ja teilweise so, dass ein in .net 1.0 geschriebenes Programm nicht mal auf .net 2.0 läuft.

    Das ist nicht teilweise, sondern (afair) immer so 😉
    Ein .NET-Programm läuft nur exakt auf der Version des .NET-Frameworks garantiert, für die es "kompiliert" wurde. Auch einer der Gründe, warum ich .NET für eine Krankheit halte 😉

    nep schrieb:

    Ausserdem... ich vertraue lieber in etwas wie Java, als in ein Framework, dass von Microsoft kommt. Die Vergangenheit hat ja gezeigt, dass die Geschäftspraktiken von Microsoft nicht immer gerade "kundenfreundlich" waren, um es mal vorsichtig auszudrücken

    Wenn ich die Wahl .NET/Java habe, dann brauche ich auch nicht lange, um mich für letzteres zu entscheiden 😃



  • Die Sprache Java ändert sich doch garnicht so oft. Es ist eher die Library und die JVM die sich ändert. Aber die Sprache wird auch nur alle Jubeljahre erweitert.



  • Ja stimmt schon, aber das JDK ist halt, wenn man so will, fester Bestandteil der Sprache Java auch wenn es von der Sache her nicht korrekt ist.

    Ich habe mir übrigens vor ca 2 Wochen einen Vortrag über .net 2.0 von Microsoft-Leuten angehört. Sorry aber was da gegen Java geschossen wird und vor allem in welcher Unwissenheit, das ist nicht mehr schön. Nur mal zwei Beispiele:
    "Für Java gibt es ja keine GUI-Builder wo man sich eine GUI zusammenklicken kann. Da muss man alles im Code schreiben und das dauert dann wochenlang bis man mal eine einfache GUI hat". Kein Kommentar
    "Das ist wie in Java, da muss man Sachen ja auch erst bekannt machen bevor man sie benutzen kann. Das macht man da ja mit include".

    Ich erwarte ja nicht, dass sie groß Ahnung von Java haben, aber wenn sie schon Vergleiche dazu ziehen dann sollten sie sich wenigstens etwas damit auskennen. So steht für mich .net eher in einem negativen Licht. Es mag ja durchaus ein paar Dinge geben, die besser als in Java gelöst wurden (kein Wunder, die haben ja auch alles abgekupfert), aber die überzeugen mich jetzt nicht unbedingt davon, dass .net/C# besser als Java ist.
    Ironie des Schickals dass es doch gerade Microsoft war, welche jahrelang behaupteten dass das Konzept der JVM nie klappen wird. So ändern sich also die Zeiten...



  • Also Konkurrenten sollte man garnicht angreifen. Das MS (waren das wirklich offizielle MS-Mitarbeiter?) gegen Java schiesst ist wirklich nicht i.O., vorallem wenn es auch noch falsche Infos sind. Andererseits: die Amis machen sowas gerne. Man schaue sich nur US-Werbespots für Pepsi an (da wird Coca Cola ordentlich platt gemacht 😃 ) oder Burger King. Kenne auch noch ein paar uralte US-Werbespots für den C64, wo die Konkurrenz auch platt gemacht wurde. Amis halt.

    Aber richtig wäre natürlich, das MS bei solchen Vorträgen am besten garnicht auf Java verweisen sollen sollte. Ganz im Gegenteil, die sollten sogar Java lobend erwehnen, nach dem Motto "Die Konkurrenz ist auch ganz gut.".

    Zum GUI-Designer der bei Java fehlt: wenn es nach den Argumenten von Java-Fans geht, die z.B. die eine fehlende C++-GUI-Lib bemängeln, hat MS garnicht so unrecht. Wo ist bitte bei Java der Standard-GUI-Editor, wenn ich das JDK runter lade? "Ja, den kann man sich ja extra runter laden." Ja, das kann ich mit einer C++-GUI-Lib auch machen. Im Prinzip macht MS das mit Java, was Java gerne mit C++ macht. Denn wenn ich .NET entwickeln will, bekomme ich autom. den GUI-Editor dazu. Die Spirale kann man natürlich unendlich weiter spinnen, mit jeder Komponente einer Sprache.



  • Also das waren zwar keine Entwickler von MS oder sowas, aber die wahren von MS angestellt. Haben auch viele tolle Werbegeschenke mitgebracht 😉

    Also falls es etwas falsch rübergekommen ist, es war ja nicht so, dass Java total schlecht geredet wurde oder so, sondern man hat halt auch versucht den Vorteil von .net gegenüber Java darzustellen und dadurch sind dann eben solche Aussagen entstanden.

    Zur GUI-Designer Geschichte. Da hast du schon recht. Nur würde ich darauf jetzt die Frage stellen, ob man für Java/Swing überhaupt so etwas wie einen GUI-Designer braucht ? Ich bin bis jetzt immer wunderbar ohne GUI-Designer ausgekommen, da das Zusammenbauen von GUIs mit Swing echt ein Kinderspiel ist (natürlich ärgere ich mich auch immer mal wieder mit Layoutmanagern usw. rum, aber ich denke mal das ist normal und wenn man mit einem GUI-Designer komplexe GUIs bauen will, dann wird auch da nicht immer alles reibungslos funktionieren)

    Ich will .NET bzw. MS auch gar nicht schlecht darstellen. .NET ist sicherlich ein tolles Framework und es gibt auch tatsächlich ein paar wenige verbesserte Dinge im Gegensatz zum Java-Umfeld. Nur sind diese nicht so stark, dass mich .NET irgendwie überzeugt hätte. Nur stelle ich mir halt die Frage was ich mit .NET soll wenn es doch eh schon (länger) Java gibt und ich dadurch auch genau die gleichen Möglichkeiten habe, nur dass ich damit "echte" Plattformunabhängigkeit habe und auch ein Stück weit unabhängiger bin.



  • Nochmal C++ und Vista. Vor kurzem wurde ja von MS in Redmond ein Meeting zum Thema C++0x und Threads abgehalten. Es war ein außerplanmäßiges Meeting des C++ Komitees. Normalerweise findet das immer nur im April und Oktober statt.

    Hier der Bericht zu dem Meeting, an dem mal wieder viele Firmenvertreter teilgenommen haben:
    http://www.artima.com/cppsource/threads_meeting.html

    Also, es sieht nicht gerade so aus, als ob C++ für MS keine Bedeutung hätte, wenn die da 3 Tage lang über C++-Threads mitLeuten von Intel, Google usw. diskutieren. Ganz im Gegenteil, die gesamte Industrie bzw. die bekannten Personen dahinter, machen sich Gedanken zu C++.



  • nep schrieb:

    Nur stelle ich mir halt die Frage was ich mit .NET soll wenn es doch eh schon (länger) Java gibt und ich dadurch auch genau die gleichen Möglichkeiten habe, nur dass ich damit "echte" Plattformunabhängigkeit habe und auch ein Stück weit unabhängiger bin.

    Du kannst mit .NET eine höhere Integration in Windows erreichen. Wenn für Dich nur der Windows-Markt wichtig ist, dann ist das durchaus ein Vorteil.



  • Artchi schrieb:

    Zum GUI-Designer der bei Java fehlt: wenn es nach den Argumenten von Java-Fans geht, die z.B. die eine fehlende C++-GUI-Lib bemängeln, hat MS garnicht so unrecht. Wo ist bitte bei Java der Standard-GUI-Editor, wenn ich das JDK runter lade?

    Da ist ja nur die Frage, was Du Dir genau runterlädst. Es sind durchaus auch Downloads verfügbar, in denen das JDK+Netbeans enthalten ist. Da hast Du also Deine IDE mit allem drum und dran auch drin. ...auch mit einem GUI-Designer.

    http://java.sun.com/j2se/1.5.0/download-netbeans.html


Anmelden zum Antworten