Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Warum C++ bietet kein grafische Library

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ] [ 5 ] [ 6 ] [ 7 ]
020
17.05.2004, 22:38 Uhr
Bruder Leif
dances with systems
(Operator)


Ich denke, es ist auch wichtig, in C++ keine "Ich-schreib-jetzt-mal-was-und-dann-läuft-es-überall"-Sprache zu sehen. Den Ansatz verfolgen alte Pascal-Compiler, Smalltalk, Java, .NET und so weiter, jeweils mehr oder weniger erfolgreich. Selbst wenn eine solche 100%-Standardisierung möglich wäre, gäbe es immer noch zu viele Ungereimtheiten, was die zugrundeliegende Plattform angeht.

Das Programm läßt sich auf einer anderen Plattform compilieren oder der fertige Binärcode direkt ausführen, aber was ein Programm ausmacht, ist nicht nur die ausführbare Datei. Wenn ich mit wxWidgets die Möglichkeit habe, ein Programm unter Windows, Linux und dem Macintosh laufen zu lassen, werde ich mich hüten, das Programm auch für alle drei Plattformen zu verkaufen. Ich habe keine Ahnung von den Interna des Mac, und von Linux sind derart viele Versionen, Revisionen und Eigenbau-Kreationen im Umlauf, dass ich mir NIE sicher sein kann, ob mein Programm dort läuft. Computer sind kreativ, wenn es darum geht, nicht zu funktionieren... seufz...

Und den Kundensupport für mehrere Plattformen aufrecht zu halten, ist mehr als schwierig. Das Programm hat vielleicht überall den gleichen Quellcode, aber das eine Betriebssystem bringt ganz andere Oberflächen zustande als das andere. Siehe Mac: Es gibt sogar eine Richtlinie für Java-Programmierer, wie sie ihre Applikationen verpacken sollen, damit sie auch auf dem Mac "richtig" laufen und sich konsistent in die Umgebung einfügen.

C++ ist für mich DIE Sprache, wenn ich entweder eine portable Geschäftslogik aufstellen soll (Threads und sonstige "einfache" Probleme lassen sich mit Klassen schön kapseln - auf anderen Systemen passe ich die Thread-Klasse an und der Rest läuft wieder. Code Reusing wird nicht nur von Java propagiert...), oder von vornherein weiß, dass mein Programm garantiert für immer und ewig nur auf EINER Plattform laufen muss. Dann kümmere ich mich nicht mehr so start um die Portabilität, und spare mir einen Haufen Ärger mit Libs, die auf WORA aufbauen und mir für jeden Dateizugriff tausend Konvertierungen zwischen Zeichensätzen, Verzeichnistrennzeichen, Laufwerksbenennungen und was weiß ich noch alles aufzwingen. Dann nehme ich genau die Bibliothek, die am besten zum Problem passt, nicht zum Standard. Unter Windows wxWidgets, VCL oder, wenns nicht anders geht, die MFC, unter Linux wxWidgets, weil mir bekannt, und für andere Plattformen ist der Markt zur Zeit eh ziemlich dünn gesät.

Das Write-Once-Run-Anywhere-Prinzip ist praktisch, wenn es um kleine Tools oder Freeware geht. Wenn ich hobbymäßig ein Programm schreibe, das ich auch unter Linux laufen lassen will. Wenn ich davon ausgehen kann, dass ich keinen Kundensupport machen muss, und die Benutzer etwas von ihrer Kiste verstehen. Für Programme, die in den Verkauf gelangen sollen, lege ich mich lieber auf eine Plattform fest, und schreibe mir für allzu spezifisches (Threads etc.) wiederverwendbare Klassen. Dann ist der Umstieg auf andere Systeme auch nicht sooooo aufwendig.

Was speziell GUI-Klassen angeht, werde ich mir den SWT-Port nach .NET mal genauer ansehen. Mono ist reif genug, um SWT#-Programme unter Windows und Linux laufen zu lassen, allerdings bin ich dann wieder bei C#... weiß jemand, ob es einen SWT-Port für reines C++ gibt? Wäre SEEEEEHR interessiert ;-)
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
17.05.2004, 22:39 Uhr
Bruder Leif
dances with systems
(Operator)


Hab ich das eben alles geschrieben? Mann bin ich drauf heute...
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
18.05.2004, 22:03 Uhr
0xdeadbeef
Gott
(Operator)


Mono mag zwar reif genug sein, aber über dem Projekt schwebt immer noch das Damoklesschwert der Microsoftschen Patente, was es zumindest fürs geschäftliche Umfeld schon rein rechtlich zu unsicher macht, um es zu benutzen. Und was ich ansonsten von .net halte, ist ja hinreichend bekannt... .
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
023
18.05.2004, 22:44 Uhr
KaraHead



@0xdeadbeef: Warum hast du so eine Abneigung gegen .NET?

ich hab mich zwar noch nicht damit beschäftigt aber es soll doch so viel neues und gutes bringen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
024
18.05.2004, 22:47 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

@0xdeadbeef: Warum hast du so eine Abneigung gegen .NET?


Vermutlich weil beefy keinen 2. Gott neben sich dulden will
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
025
18.05.2004, 23:01 Uhr
KaraHead



"There is no God but 0xdeadbeef."
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
026
18.05.2004, 23:35 Uhr
Bruder Leif
dances with systems
(Operator)



Zitat:
0xdeadbeef postete
Und was ich ansonsten von .net halte, ist ja hinreichend bekannt... .


Wenn ich nicht genau gewusst hätte, dass diese Antwort kommt, hätte ich Mono auch nicht erwähnt Was ich von Java halte, ist ja... aber lassen wir das
--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
027
22.05.2004, 00:16 Uhr
~freewilly
Gast


Man Kann Java und C++ auch absolut nicht miteinander vergleichen.
Alles was es in Java gibt, kann man in C++ auch (zwar nicht unbedingt mit Standard sondern OS spezifisch) realisieren.
Gereade die Erweiterbarkeit durch Bibliotheken macht doch C++ aus.
Javas einzigster Vorteil zu C++ ist nur die portierbarkeit ...
Es gibt zuviel was Java nicht kann:

Mehrfachvererbung
Templates
Operator Overloading
typedef Statements(in Java Objekte)
und natürlich Zeiger
...open end.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
028
22.05.2004, 00:48 Uhr
virtual
Sexiest Bit alive
(Operator)


Hallo,

@freewilly
Mehrfachvererbung: da gibt es Interfaces in Java und ich habe wirklich noch kein Problem gesehen, welches sich in Java nicht hinbekommen lassen würde. Und: Ich behaupte sogar mal, daß nicht alles was ein Sprache bietet, auch gut sein muß. Mehrfachvererbung ist zB etwas, auf das man verzichten sollte, wenn irgend möglich (in C++ mangels interfaces geht das nicht immer).

Templates: sind seit JDK 1.5 (Erschienen am 24.12.2003 als Beta) auch in Java verfügbar

Operator overloading: okay, das hat Java nicht. Auf der anderen Seite kann es Dir nicht passieren, daß Dir irgendein Depp einen Operator völlig idiotisch überlädt...

Typedefs: Du siehst es als Stärke eine Sprache an, daß man extra mit Typdefs Typen abkürzen muß, damit sie bequem schreibbar sind`?? - Also ich sehe das eher als Schwäche an.

Zeiger: Eigentlich wie oben: Zeiger sind zwar in C praktisch und notwendig, aber letztlich sind sie ja auch eine Schwäche: Es gibt zeiger eigentlich nur (und wirklich nur!), weil man sich um Details der Speicherverwaltung den Kopf zerbrechen muß. Und 90% aller Fehler in C Programme sind Zeigerfehler (brauchst nur mal was im Forum rumzustöbern ). Und: Auffällig finde ich schon, daß man in einem wirklich guten C++ Programm eher wenig Zeiger sieht, in einem guten C Programm hingegen schon. Woran liegts? - Bestimmt nicht, weil Zeiger geil sind.

Ich bin in diesem Forum eher als C++ Mensch bekannt, aber ich muß sagen in den letzten paar Monaten habe ich mich intensiver mit Java auseinandergesetzt und wenn ich inzwischen die Wahl zwischen Java und C++ hätte, würde ich Java wählen; übrigens auch für Projekte, wo es auf performance ankommt, denn es ist eine ziemliche Mär, von wegen Performanceunterschieden.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
029
22.05.2004, 12:10 Uhr
~freewilly
Gast


Ich glaube da hat jeder verschiedene Ansichten was ein Vorteil und was ein Nachteil ist.
Mehrfachvererbung (Warum sollte man darauf verzichten ?) Sag jetzt nicht Namenskonflikte ...
Templates ... Ok, hab ich bisher noch nicht in Java gesehen, muss ich mal sehen.
Typedefs ... Man kann muss nicht.
Zeiger: Das hat etwas mit der Grundverschiedenheit von Java zu C/C++ zu tun. In Java geht alles auf Sicherheit(Diese Sicherheit kostet enorm viel performance.Z.b. der Garbage Collector).
In C/C++ geht alles auf Geschwindigkeit.Um die Sicherheit muss man sich selber kümmern.
In "guten" C++ Programmen sieht man keine Zeiger ?
Es gibt kein "gutes" C++ Programm ohne Zeiger.
Viele Leute sind der Meinung ein C++ Programmierer darf kein C verwenden.
Warum nicht ? C++ ist aus C entstanden.
Es hat nichts mit unsauberen Stil oder sowas zu tun, wenn man hin und wieder C implementiert.
Mit C/C++ programmiert man halt nahe am System/Hardware.
In Java fährt man angeschnallt im Polo.
In C++ fährt man bei sauberer Progammierung angeschnallt im Ferrari,
ansonsten unangeschnallt Porsche.
Naja und dann natürlich die STL ... schwärm
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 < [ 4 ] [ 5 ] [ 6 ] [ 7 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: