Ist C++ wirklich so schlecht?
-
Hi @ all,
**
WICHTIG:
@kingruedi && elise: Der Beitrag war ernst gemeint. Ich bin nicht der echte gerner, ich habe ihn sozusagen gefakt.**ich möchte mich gleich für meine Wortwahl entschuldigen, ich bin aber ein
bisschen von C++ entäscht. Ich habe mit Java das Programmieren gelernt und
in allen Büchern steht, dass Java an C++ angeleht ist. In vier Seiten werden
für C++ Programmierer die Unterschiede erklärt.
Ich habe mir also gedacht, lern ich kurz mal C++, das kann nicht schaden.
Nun muss ich mit Erschrecken feststellen, dass C++ kryptisch und weit
weniger gut beherrschbar wie Java oder VBA sind. Auch die Klassen in C++
sind ein Witz, dass ist prakisch nur die Überschrift der Datei.Wie ist das eigentich bei C#? Da heißt es es sei eine Mischung aus Java und
C++. Wem ähnelt es mehr, undwo liegen die Unterschiede zu Java?Bin für jede Antwort dankbar,
Rüsselsheimer
-
C# ist klar mehr Java als C++
Jup die C++ Syntax ist Kryptisch, man denke nur an die vielen kontex abhänigen bedeutungen von op& und op*, aber das ist lernbar
was meinst du mit Klassen und Dateien?
-
Ist es auch. Syntaktisch sind die Unterschiede minimal.Ziel war es den
Umstieg von C++ auf Java so leicht wie möglich zu machen.
Das liegt daran, daß C++ eher weniger restriktiv ist, Du kanst mehr machen,
als in Java. Also mußt Du C++ Programmierern nur erklären, was nicht mehr
geht bzw. was anders gelöst werden muß. Also keine Gerischen Methoden
(Templates), keine Pointer incl. Pointerarithmetik, keine explizite
Speicherkontrolle usw.
Also das meiste ist genauso wenig kryptisch wie Java, da es syntaktisch sehr
ähnlich ist. Du mußt nur ein paar neue Konzepte dazulernen und schauen wie
es syntaktisch umgesetzt wird (in beiden sprachen). Viele Dinge die in Java
implizit sind, mit denen Du Dich nicht auseinandersetzen mußtest, mußt Du
nun in C++ explizit machen. Das sollte aber kein Problem sein, wenn Du die
dahinterstehenden Konzepte verstehst.
Das mit der Beherrschbarkeit ist so eine Sache. Wenn mein Auto einen
Autopiloten hat, der alles für mich macht und ich nichts machen muß, dann
ist das angenehm und verleitet mich dazu, über die Details (wie alles
funktioniert) nicht mehr nachzudenken. Wenn ich selber fahre, dann muß ich
mich mit diesen Details auseinandersetzen, habe aber auch mehr Kontrolle.
Beides hat Vor- und Nachteile. Im konkreten Fall hängt es vermutlich vom
Problem ab, welches zu lösen ist.
Wie kommst Du darauf? Eher im Gegenteil, da Du in C++ soweit ich weiß,
beliebig viele Klassen in eine Datei packen kannst. C und auch C++ haben
eigentlich (leider) kein Modulkonzept.Ansonsten sind Klassen in C++ genau das gleiche wie in Java. Vielleicht
solltest Du mal sagen, was Du genau meinst.
Also seit ich das verstanden habe, soll C# einfach Java erweitert um nicht
mehr ganz so plattformunabhänige Elmente sein. Also nicht wirklich eine
Mischung, sondern eher eine Erweiterung von Java.cu,
gerner
-
*applaus*applaus*
-
Schlechte Programmiersprachen gibt es wenige!
Schlechte Programmierer viele!
-
Java???
C++???
C???
C#???
alles mupitz!
Assembler ist das einzig Wahre!!!
...
...
...
achja..
[/IRONIE]-----
Back to the Roots!!
Lernt Basic!
-
Lernt Basic
Schwachsinn, jeder ernsthafte Programmierer sollte C++ beherrschen...
Assembler ist zwar für manche Bereich noch entscheidend, aber hat für Softwareentwickler kaum noch eine Bedeutung...
-
boah find ich voll süß wenn du ironie ernstnimmst. :p
-
Knuffig, oder??? Sorry, hab deinen Ironier-Tag übersehen...
-
Ich habe mir also gedacht, lern ich kurz mal C++, das kann nicht schaden.
schaden kanns nicht aber das mit dem kurz kannst du vergessen c++ ist eine sehr mächtige sprache und wer sie volltändig nutzen will muss viel lernen
Nun muss ich mit Erschrecken feststellen, dass C++ kryptisch und weit
weniger gut beherrschbar wie Java oder VBA sind.hmm über das kryptisch kann man sich streiten... das ist puure gewöhnungssache... ich finde mich in c/c++ programmen eigentlich ziemlich zurecht. hab aber mit pascal z.b. mühe...
und was meinst du mit kontrollierbar? ich bin mir sicher du hast in c++ viel mehr kontrolle über das programm als in java oder VB. das bringt aber mitsich das man auch mehr falsch machen kann (speicherlecks etc.) meinst du das mit unkontrollierbar?
(ein sportwagen is auch schwerer zu fahren als ein smart )Auch die Klassen in C++ sind ein Witz, dass ist prakisch nur die Überschrift der Datei.
was haben die klassen in c++ nicht was man in anderen sprachen hat... erklär mal
klassensatz version 0.1: "die klassen in C++ sind meiner meinung nach mächter als die in so gut wie allen anderen sprachen... was das ganze aber auch manchmal etwas verwirrlich macht..."
klassensatz version 0.2: "die klassen in C++ sind meiner meinung nach mächter als die in den meisten anderen sprachen(z.b. VB, Pascal)... was das ganze aber auch manchmal etwas verwirrlich macht..."
[ Dieser Beitrag wurde am 15.01.2003 um 21:31 Uhr von japro editiert. ]
-
Original erstellt von japro:
**
die klassen in C++ sind meiner meinung nach mächter als die in so gut wie allen anderen sprachen... was das ganze aber auch manchmal etwas verwirrlich macht...**Erklärung bitte!
-
Original erstellt von Gregor:
Erklärung bitte!C++ kann jede Menge Sachen. Was von der Klassensemantik her kann Java, was C++ nicht kann?
-
Original erstellt von Gregor:
Erklärung bitte!ohoh ich sehs schon kommen ich sage jetzt irgendwas und werde dann zerissen weil ich mich mit anderen sprachen nicht so gut auskenne.
naja ich versuchs mal:
automatischer ctor und dtor aufruf
mehrfachvererbung
friendsach ich bin nicht erfahren genug um das jetzt vollständig begründen zu können. jedenfalls fällt mir nichts ein was ich mit c++ klassen nicht kann was in andere sprachen möglich wäre (AOP vielleicht???). ausserdem wollte ich ja damit nicht sagen das die klassen in c++ besser als die in z.B. java sind (ich nehme an du denkts in diese richtung). ich verstehe nur nicht wie man nach dem proggen von VB und java (so verstehe ich den ersten beitrag) sagen kann das c++ classen ein witz sind...
-
Original erstellt von Mr. N:
**
C++ kann jede Menge Sachen. Was von der Klassensemantik her kann Java, was C++ nicht kann?**Ich hatte nur eine Frage in Bezug auf C++ gestellt, weil ich die Aussage nicht nachvollziehen konnte. Inzwischen wurde ja gesagt, wie das gemeint war!
...ich sehe weder C++-Klassen, noch Java-Klassen, noch C#-Klassen als mächtiger an.
BTW : Wo du fragst : Gibt es eigentlich soetwas, wie Reflection bei C++?
[ Dieser Beitrag wurde am 15.01.2003 um 21:40 Uhr von Gregor editiert. ]
-
http://java.sun.com/docs/books/tutorial/reflect/ <--- is das damit gemeint?
hmm ich weiss net so genau was man in c++ mit der rtti anfangen kann weil ichs noch nie ernsthaft benutzt hab aber das scheint was "ähliches" zu sein. naja wobei man die klassen damit nicht während der laufzeit manipulieren kann...interessant scheint es mir ja schon aber wofür braucht man sowas kann mit momentan kaum ein einsatzgebiet vorstellen?
-
Ja, das hatte ich gemeint! Ich werde mir rtti demnächst mal angucken!
...ich nutze Reflection momentan in Verbindung mit Plugins.
-
reflection in c++ geht nicht
-
Original erstellt von Gregor:
...ich nutze Reflection momentan in Verbindung mit Plugins.Wie das?
-
java
-
Original erstellt von Mr. N:
Wie das?Naja! Ich durchsuche halt bei Programmstart ein Verzeichnis nach allen Java-Klassen, teste dann, welche mein Plugin-Interface implementieren, teile diese noch in ein paar verschiedene Kategorien ein, erzeuge mir mit Hilfe der geladenen Klassen einen Großteil meiner GUI und erzeuge mir bei Bedarf ein Objekt einer Klasse.
...vor allem kommt es mir also aufs dynamische Klassenladen an.
-
Ich durchsuche halt bei Programmstart ein Verzeichnis nach allen Java-Klassen
Wie soll das gehen?