POLL (Programmiersprachen)
-
Es beginnt noch tiefer als gedacht. Kaum starte ich ein neues Projekt in C++ kann ich schonmal eine neue String-Klasse implementieren.
Ganz davon abgesehen, dass die Container und überhaupt die STL algorithmenbasierend statt objektorientiert aufgebaut wurde. Danke für nichterweiterbare Container. Danke für die Trennung zwischen Implementierung und Interface bei Containern. Danke für die absolut sinnlose String-Klasse.
MfG SideWinder
-
Das sind jede Woche die selben Argumente. Gibts nichts neues?
Und wenn DAS nicht C++-Hass ist, dann weiß ich nicht, was C++-Liebe ist.Wer C++ (und dazu gehört auch die String-Klasse und die blöden Container) nicht mag, soll C++ einfach sein lassen.
Aber diese Anti-C++-Argumente gibt es in JEDEM C++-Thread JEDE Woche seit es C++ gibt.
-
Artchi schrieb:
Das sind jede Woche die selben Argumente. Gibts nichts neues?

Ich bin so selten dabei, ich bringe nur das Offensichtliche. Das dürfte halt jedesmal ziemlich ähnlich sein. Ist ja nicht so, dass sich die Nachteile von C++ von Woche zu Woche ändern.
MfG SideWinder
-
SideWinder schrieb:
Artchi schrieb:
Das sind jede Woche die selben Argumente. Gibts nichts neues?

Ist ja nicht so, dass sich die Nachteile von C++ von Woche zu Woche ändern.
Um so weniger verstehe ich es dann, wenn diese Argumente immer und immer wieder von langjährigen C++lern kommen.
-
Artchi schrieb:
SideWinder schrieb:
Artchi schrieb:
Das sind jede Woche die selben Argumente. Gibts nichts neues?

Ist ja nicht so, dass sich die Nachteile von C++ von Woche zu Woche ändern.
Um so weniger verstehe ich es dann, wenn diese Argumente immer und immer wieder von langjährigen C++lern kommen.
Ach ich gehöre zu den Leuten die jeweils das Stück Software einsetzen das am besten geeignet ist. Deswegen verwende ich für den OCR-Teil meines Projekts sowie für meine DirectX-Spielereien C++. Für meine Diplomarbeit verwende ich auf Grund der bestehenden Module Java. Für den restlichen Teil meines Projekts verwende ich Java, weil ich mich da schön auf die Business Logic konzentrieren kann. Für meine Privathomepage verwende ich billiges PHP. Für Firmenhomepages ein Web-Framework.
MfG SideWinder
-
Artchi schrieb:
Wer C++ (und dazu gehört auch die String-Klasse und die blöden Container) nicht mag, soll C++ einfach sein lassen.
Warum das denn? C++ ist doch viel mehr als eine schlecht designte String-Klasse.
Ich kreuze hier BTW nichts an, da geht es mir wie mit der Musik: Fan von Mainstream kann ich nicht sein

Sidewinder schrieb:
C++-Entwicklung ist zu teuer für 0815-Anwendungsentwicklung.
Für 0815-Anwendungen kann man dann ja 0815-Sprachen nehmen.

Beispiel: kingruedi entwickelt ein neues GUI-Framework und macht sich erstmal fast ein Jahr um seine Konfigurationsschnittstelle Gedanken. Die passt dann zwar höchstwahrscheinlich perfekt für sein Framework, andererseits hat er ein Jahr Entwicklungskosten die bei Verwendung einer anderen Programmiersprache nie aufgetaucht werden.
Ob das Kosten sind ist eine Frage der Sichtweise. Ich glaube kaum, dass er das gemacht hätte, wenn die Konfigurationsschnittstelle nur ein notwendiges Übel gewesen wäre, das man erledigen muss, bevor man zum interessanten Teil kommt.
-
Bashar schrieb:
Ich kreuze hier BTW nichts an, da geht es mir wie mit der Musik: Fan von Mainstream kann ich nicht sein

Wo genau arbeitest du? An der Uni als Dozent? *g*
Bashar schrieb:
Für 0815-Anwendungen kann man dann ja 0815-Sprachen nehmen.

Soll ich jetzt etwas in die Richtung "NEIN! Java ist keine 0815-Sprache!!1" sagen?
Bashar schrieb:
Ob das Kosten sind ist eine Frage der Sichtweise. Ich glaube kaum, dass er das gemacht hätte, wenn die Konfigurationsschnittstelle nur ein notwendiges Übel gewesen wäre, das man erledigen muss, bevor man zum interessanten Teil kommt.
Er hätte die Konfiguration hinter ein Interface packen sollen, dahinter erstmal irgendein Dummy-System implementieren sollen. Dann mal die eigentliche Arbeit erledigen die ein GUI-Framework mit sich bringt...und dann ganz am Ende, an dem Zeitpunkt an dem er alle Eigenheiten seines geschaffenen Frameworks kennt kann er dann noch ein ordentliches Konfigurationssystem schaffen oder einfach XML (oder ähnliches ... bevor ich hier jetzt noch einen Parallelkrieg lostrete) wählen.
MfG SideWinder
-
Irgendwie erinnert mich das an die angehenden Spieleentwickler die das Startmenü vorm Octree implementieren. Aber das hat jetzt allgemein mit Projektentwicklung zu tun und nicht mit C++/Java/C#/Sonstiges.
MfG SideWinder
-
SideWinder schrieb:
In Java kann ich wesentlich objektorientierter (in Bezug auf Wiederverwendbarkeit) programmieren als in C++. In C++ fehlen einfach Standards bzgl. Logging, File-Handling (kommt mir bloß nicht mit fstream), Datenbankanbindung, GUI, XML, etc. etc.
Mit den (de-facto-) Standards hast du leider vollkommen recht. Bloß wie kommst du denn darauf mit Java "wesentlich objektorientierter" programmieren kannst?
SideWinder schrieb:
Ganz davon abgesehen, dass die Container und überhaupt die STL algorithmenbasierend statt objektorientiert aufgebaut wurde. Danke für nichterweiterbare Container. Danke für die Trennung zwischen Implementierung und Interface bei Containern. Danke für die absolut sinnlose String-Klasse.
Die String-Klasse ist tatsächlich mies. Aber die Container der STL sind Objekte, und dass es auch eine ganze Reihe an Funktionen gibt sehe ich eher als Vorteil gegenüber Java.
(Musste bei deinem Post irgendwie spontan an Execution in the Kingdom of Nouns denken
)
-
SideWinder schrieb:
Bashar schrieb:
Ich kreuze hier BTW nichts an, da geht es mir wie mit der Musik: Fan von Mainstream kann ich nicht sein

Wo genau arbeitest du? An der Uni als Dozent? *g*
Nein. Ich wüßte auch nicht was das damit zu tun haben sollte.
Soll ich jetzt etwas in die Richtung "NEIN! Java ist keine 0815-Sprache!!1" sagen?
Nur wenn du den Smiley nicht gesehen hast.
Er hätte die Konfiguration hinter ein Interface packen sollen, dahinter erstmal irgendein Dummy-System implementieren sollen.
Vielleicht macht es ihm Spaß, Konfigurationsschnittstellen zu schreiben. Was heißt "vielleicht", ich finde das offensichtlich.
-
finix schrieb:
Bloß wie kommst du denn darauf mit Java "wesentlich objektorientierter" programmieren kannst?
Schau mal was da steht, was in Klammern geschrieben wurde, und was du zitierst.
SideWinder schrieb:
Aber die Container der STL sind Objekte, und dass es auch eine ganze Reihe an Funktionen gibt sehe ich eher als Vorteil gegenüber Java.
Sie verfügen kaum über tatsächliche Funktionalität - das ist ja der Sinn an der Algorithm-Bibliothek, und auch noch kein Nachteil. Was willst du mit "Container der STL sind Objekte" ausdrücken?!
MfG SideWinder
-
Bashar schrieb:
Nein. Ich wüßte auch nicht was das damit zu tun haben sollte.
Persönliches Vorurteil (gegenüber Dozenten, nicht gegenüber dir).
Bashar schrieb:
Vielleicht macht es ihm Spaß, Konfigurationsschnittstellen zu schreiben. Was heißt "vielleicht", ich finde das offensichtlich.
Rüdiger und ich haben da andere Denksysteme. Wenn ich ein Konfigurationssystem bauen will, dann baue ich ein Konfigurationssystem. Er entscheidet sich (laut deiner Beschreibung) für eine GUI-Library um einen virtuellen Nutzen für ein Konfigurationssystem zu schaffen um es dann schreiben zu können. Das ist mir um zuviele Ecken gedacht.
MfG SideWinder
-
vista schrieb:
hmmm... da ist was dran.
in welchen bereichen wird denn heute C++ bevorzugt eingesetzt?
ich denke doch bei der entwicklung von spielen, oder gibt es da auch schon etwas, das mehr auf wirtschaftlichkeit getrimmt ist?In der Bildverarbeitung wird C/C++ z.B. bevorzugt eingesetzt (zumindest im Vergleich zu anderen Mainstream-Sprachen). Da wird Java z.B. alleine deswegen schon nicht so schnell eingesetzt werden, weil es da keine unsigned Typen gibt, welche hier aber schon wichtig sind. Spieleentwicklung natürlich auch, und allgemein in Bereichen die eher Richtung Hardware gehen (sag ich jetzt einfach mal so).
In der "normalen" Anwendungsentwicklung wird C++ natürlich auch immer noch häufig eingesetzt und ich denke dass sich das sooo schnell auch nicht ändern wird, auch wenn sich hier Sprachen wie Java,C# etc. natürlich schon stark vordrängen (und das auch nicht zu unrecht).
-
SideWinder schrieb:
finix schrieb:
Bloß wie kommst du denn darauf mit Java "wesentlich objektorientierter" programmieren kannst?
Schau mal was da steht, was in Klammern geschrieben wurde, und was du zitierst.
Ich habe deine Aussage zitiert, Side, nichts weiter. Aber gut, noch einmal: was meinst du mit "wesentlich objektorientierter (in Bezug auf Wiederverwendbarkeit)"?
Dass z.B. java.util.Vector öfter als std::vector wiederverwendet wird, oder wiederverwendbarer ist? Oder stören freie Funktionen die Wiederverwendbarkeit (im Gegensatz zu Funktionen die Zwangsweise in eine "Namespace-Klasse" gezwängt werden müssen)?
SideWinder schrieb:
Sie verfügen kaum über tatsächliche Funktionalität - das ist ja der Sinn an der Algorithm-Bibliothek, und auch noch kein Nachteil.
Wieviel mehr an "tatsächlicher Funktionalität" bietet denn java.util.Vector gegenüber std::vector, oder std::set oder was auch immer, und wozu soll dann java.util.Collections überhaupt gut sein?
-
finix schrieb:
Aber gut, noch einmal: was meinst du mit "wesentlich objektorientierter (in Bezug auf Wiederverwendbarkeit)"?
Steht doch bereits oben. Zum Beispiel kann ich von java.util.List ableiten wenn das sinnvoll ist, oder ich leite eine neue Implementation von java.util.LinkedList ab und verwende sie über das java.util.List-Interface. Bridge-Pattern sei dank.
finix schrieb:
Wieviel mehr an "tatsächlicher Funktionalität" bietet denn java.util.Vector gegenüber std::vector, oder std::set oder was auch immer, und wozu soll dann java.util.Collections überhaupt gut sein?
Wo steht, dass sie mehr tatsächliche Funktionalität haben? Aber ich schätze z.B. Features wie: Austauschbare Implementierung, threadsichere Versionen, etc.
MfG SideWinder
-
Ganz persönliches Problem noch: Java mag zwar auch nicht stur objektorientiert sein, aber als 'hybrid' würde ich es auch nicht bezeichnen. Das in C++ immer mehr mit Meta-Programmierung gearbeitet wird stört mich.
MfG SideWinder
-
SideWinder schrieb:
Beispiel: kingruedi entwickelt ein neues GUI-Framework und macht sich erstmal fast ein Jahr um seine Konfigurationsschnittstelle Gedanken. Die passt dann zwar höchstwahrscheinlich perfekt für sein Framework, andererseits hat er ein Jahr Entwicklungskosten die bei Verwendung einer anderen Programmiersprache nie aufgetaucht werden.
Das ist absoluter Blödsinn den du da schreibst.
1. handelt es sich bei dem Projekt um keine Entwicklung in einem wirtschaftlichen Umfeld, sondern um das Streben nach Perfektion. Daher ist es eh schwachsinnig irgend eine Vorstellung von Entwicklungskosten und co anzubringen.
2. hat die Programmiersprache damit nichts zu tun. Für C++ gibt es genauso XML und was weiß ich Parser. Vielleicht kommst du mal dahinter, das wir kein XML nehmen wollten.
Und irgend wann lernst du sicher auch einmal, das 0815-Denken, 0815-Projekte, 0815-Programmiersprachen auch nur zu einem 0815-Gehalt führen und dass die Welt nicht hinter dem Tellerrand aufhört.
Und in der Realität), wird C++ sehr erfolgreich eingesetzt von sehr erfolgreichen Firmen, die damit sehr erfolgreich Geld machen, mit sehr realen und sehr erfolgreichen Produkten. Was auch für Programmiersprachen gilt, die du als esotherisch abtun würdest.
-
SideWinder schrieb:
Ganz persönliches Problem noch: Java mag zwar auch nicht stur objektorientiert sein, aber als 'hybrid' würde ich es auch nicht bezeichnen. Das in C++ immer mehr mit Meta-Programmierung gearbeitet wird stört mich.
Warum?
Generisches Programmieren sorgt doch für eine höhere Wiederverwendbarkeit von Software. Ich finde eher den Ansatz der in Java immer populärer wird schwierig. Code-Generatoren in Preprozessor-Style. Da habe ich lieber C++-Code, der mir C++-Code generiert.
Wiederverwendbarkeit von Software ist einfach eine Frage, wie das in Firmen gehandhabt wird. Gibt es eine (interne) Bibliothek, die für die Projekte genommen, erweitert und gepflegt wird oder wird jedes mal das Rad neu erfunden.
-
Da das hier (wie immer) eh in einen Flamewar ausartet, kann ich ja mal meinen Senf dazu geben:
Ich habe (den subjektiven!) Eindruck, dass C++ immer mehr lediglich in speziellen Performance-kritischen Bereichen eingesetzt wird (überspitzt gesagt kommt es mir so vor, als würde nur noch die Computerspielebranche und diverse Simulationen für Neuentwicklungen auf C++ setzen). Der ganze breite Markt benutzt irgendwie fast nur noch Java/.NET etc., seien das nun Webanwendungen, Frontends, Application Server, Middlewarelösungen oder oder oder.
Die Entwicklung kann ich absolut nachvollziehen. Wann immer ich nen Studentenjob als Programmierer angenommen hab, war ich froh wenn ich nicht mit C++ in Berührung kam. In Java und .Net fällt einem alles irgendwie leichter, weniger kryptisch und man braucht nicht Tonnen von Detailwissen um guten Code zu schreiben. Ehrlich gesagt sehe ich neben der Performance überhaupt keinen Grund mehr heute auf C++ zu setzen. Aber wie gesagt, alles meine persönliche(n) Meinung/Erfahrungen.
-
rüdiger schrieb:
Das ist absoluter Blödsinn den du da schreibst.
Und das ist jetzt wohl deine 0815-Antwort?

rüdiger schrieb:
1. handelt es sich bei dem Projekt um keine Entwicklung in einem wirtschaftlichen Umfeld, sondern um das Streben nach Perfektion. Daher ist es eh schwachsinnig irgend eine Vorstellung von Entwicklungskosten und co anzubringen.
...aber umbedingt an der Konfiguration beginnen - selbst ganz ohne Entwicklungskostendenken. Naja ich mische mich in euer Perfektionsprojekt nur ungern (dafür umso öfter :D) ein. Gehört auch im Rahmen des Threads nicht unbedingt dazu. Fakt bleibt: Projektplanung ist ein wichtiger Punkt in einem Projekt.
rüdiger schrieb:
Und irgend wann lernst du sicher auch einmal, das 0815-Denken, 0815-Projekte, 0815-Programmiersprachen auch nur zu einem 0815-Gehalt führen und dass die Welt nicht hinter dem Tellerrand aufhört.
Wenn man über Programmiersprachen redet muss man nunmal auch über 0815-Projekte reden. Sonst ist Prolog plötzlich die richtige Programmiersprache für eine MediaLibrary. Über ein 0815-Gehalt kommt man in erster Linie wenn man für Probleme die richtigen Lösungswege findet. Hier gilt es nunmal über den C++-Tellerrand hinauszuschauen. Ist C++ wirklich die beste Sprache wenn ich einen Pokerclient schreibe? Ist Java brauchbar für 3D-Programmierung? Ist mein Mini-/Riesen-Webportal wirklich mit EJB/PHP richtig bedient?
rüdiger schrieb:
Und in der Realität), wird C++ sehr erfolgreich eingesetzt von sehr erfolgreichen Firmen, die damit sehr erfolgreich Geld machen, mit sehr realen und sehr erfolgreichen Produkten.
Was genau willst du uns damit sagen? Full ACK auf jeden Fall.
rüdiger schrieb:
Was auch für Programmiersprachen gilt, die du als esotherisch abtun würdest.
Hrhr, ABAP z.B.

rüdiger schrieb:
Ich finde eher den Ansatz der in Java immer populärer wird schwierig. Code-Generatoren in Preprozessor-Style.
Kenne ich nur aus MDA, und das steckt noch in den Kinderschuhen soviel ich da immer sehe. Generiert und geschrieben wird kaum noch Code, geht doch mehr alles in Richtung Framework-Verwendung.
rüdiger schrieb:
Wiederverwendbarkeit von Software ist einfach eine Frage, wie das in Firmen gehandhabt wird.
Ich möchte die Anzahl der TCP-Socket-Bibliotheken für C++ nicht kennen *g*
MfG SideWinder