warum benutzt ihr c++?
-
Rudi Seeger schrieb:
[...] die compile-zeiten selbst bei kleineren projekten nerven. [...] also: warum benutzt ihr c++?
Das stimmt. Habs bemerkt, hab in der letzten Woche ein C Programm geschrieben, meine Zeit wurde zu 20% nur wegen compilieren verbraten. Was aendern -> Compilieren, was anedern -> Compilieren... usw. Da goenn ich mir Java und Eclipse, bei denen alles im Hintergrund ablauft und ich nichts davon merke.
Ich bentzte C/C++ nur wenn es nicht anders geht. Wenn eine Lib nur in der Sprache ist oder wenn die Hardware es verlangt.
-
Gregor schrieb:
Mr. N schrieb:
Rudi Seeger schrieb:
dieser blogeintrag http://amarok.kde.org/blog/archives/226-Why-do-we-keep-on-using-C++.html und die tatsache, das ich vor kurzem PyQt ausprobiert habe, haben mich gerade zur frage geführt: warum benutze ich c++? und die antwort ist: weil das die eine programmiersprache ist, in der ich, als nicht-"informatiker" halbwegs sicher drin bin. aber, wie im blog beschrieben, die compile-zeiten selbst bei kleineren projekten nerven. und gui-programmierung (qt) scheint mit PyQt viel leichter zu gehen.
also: warum benutzt ihr c++?
Weil ich für Java zu dumm bin. :p
DU benutzt C++ im Gegensatz zu Java, weil Du ein "Wie-Typ" bist. Schon vergessen?
Wärst Du ein "Was-Typ" (wie ich), dann wäre es wahrscheinlicher, dass Du eine Sprache wie Java oder C# oder so wählen würdest....für alle, die nicht vor langer Zeit im Chat mit mir und MrN waren und deshalb nicht wissen, was wir unter diesen "Typen" verstehen:
Für einen "Wie-Typen" ist der Weg beim Programmieren das Ziel. Er ist weniger am Endresultat interessiert, als vielmehr daran, wie er da hinkommt. Insofern hat er Interesse daran, sich diesbezüglich viele Möglichkeiten offen zu halten.
Ein "Was-Typ" ist jemand, der eher am Endresultat interessiert ist und weniger daran, wie er nun genau da hinkommt. Für so einen ist es gut, einen relativ geradlinigen Weg zu haben, der ihn direkter zum Ziel führt. Der "Was-Typ" will keinen Umweg gehen, der vielleicht interessanter wäre. Er will ans Ziel kommen.
Das ist eine Eintielung die mir gefaellt. Ich bin auch ein "Was-Typ". Mich interessierst nicht ob eine Anwendung schnell laeuft oder was da im Hintergrund abgeht (wie Speicherverwaltung z.B.), solange sie stabil lauft und das liefert was ich will.
Da ist Java genau das richtige fuer mich. Die "Drecksarbeit" (also Speicherverwaltung, Optimierung auf Asm-Ebene, Byte-Alignmend und was man noch so rausholen kann) macht fuer mich die VM, bzw. der Compiler. Dafuer sind die erfunden worden, und dafuer ist meine Zeit mir zu schade.
Sollen sich doch die Compiler-Hacker die Finger wund schreiben (ich hab groessten Respekt vor ihnen) damit mein Java Programm 50ms schneller arbeitet. Ich entwickle lieber derweil Applikationen die man verwenden kann.
-
Rudi Seeger schrieb:
Ok, so wie ich das sehe, ist das einer der gründe für C++: Diejenigen, die sich mit der Sprache gut auskennen, haben viel Zeit investiert, um die üblichen Fehlerquellen zu beseitigen. Dadurch sind sie mit der Sprache viel vertrauter als mit anderen, die sie einfach so runterschreiben können (mit ein paar blicken in die Doku). Da sie bei C++ so viel mehr Übung haben, brauchen sie da keine Doku mehr, und das programmieren fühlt sich flüssiger an.
Wie soll man das denn verstehen? Meinst Du, Leute die in anderen Sprachen programmieren, haben immer ein Programmierhandbuch neben sich liegen?

-
ich benutz nur c weils das einzige ist, was ich kann und weil ich damit alles machen kann
-
Ich bin wohl auch ein "Was-Typ" und benutze mittlerweile hauptsächlich C#.
-
DEvent schrieb:
Das ist eine Eintielung die mir gefaellt. Ich bin auch ein "Was-Typ". Mich interessierst nicht ob eine Anwendung schnell laeuft oder was da im Hintergrund abgeht (wie Speicherverwaltung z.B.), solange sie stabil lauft und das liefert was ich will.
Da ist Java genau das richtige fuer mich. Die "Drecksarbeit" (also Speicherverwaltung, Optimierung auf Asm-Ebene, Byte-Alignmend und was man noch so rausholen kann) macht fuer mich die VM, bzw. der Compiler. Dafuer sind die erfunden worden, und dafuer ist meine Zeit mir zu schade.
Sollen sich doch die Compiler-Hacker die Finger wund schreiben (ich hab groessten Respekt vor ihnen) damit mein Java Programm 50ms schneller arbeitet. Ich entwickle lieber derweil Applikationen die man verwenden kann.
Das ist eigentlich nicht der Aspekt, auf den ich bezüglich der Einteilung in Was-Typen und Wie-Typen hinauswollte. Es ging mir mehr um die Ausdrucksstärken der unterschiedlichen Sprachen. Bei Wie-Typen ist zum Beispiel "eleganter Code" ein Ziel, das bei der Programmierung auch erreicht werden sollte. Bei Was-Typen spielt die Eleganz des Codes eine weniger große Rolle.
Natürlich nutzt Du in jeder Sprache die besten (schnellsten,...) Algorithmen in Deinen Programmen. Da unterscheiden sich Was- und Wie-Typen nicht wirklich. Naja, die Was-Typen nehmen sicherlich auch schonmal einen schlechteren Algorithmus, wenn die Entwicklung damit deutlich schneller geht und das Endprodukt dabei trotzdem noch seine vorgesehene Nutzbarkeit usw. zeigt.
-
Gregor schrieb:
Rudi Seeger schrieb:
Ok, so wie ich das sehe, ist das einer der gründe für C++: Diejenigen, die sich mit der Sprache gut auskennen, haben viel Zeit investiert, um die üblichen Fehlerquellen zu beseitigen. Dadurch sind sie mit der Sprache viel vertrauter als mit anderen, die sie einfach so runterschreiben können (mit ein paar blicken in die Doku). Da sie bei C++ so viel mehr Übung haben, brauchen sie da keine Doku mehr, und das programmieren fühlt sich flüssiger an.
Wie soll man das denn verstehen? Meinst Du, Leute die in anderen Sprachen programmieren, haben immer ein Programmierhandbuch neben sich liegen?

Nö, während die C++ler sich mit den C++-bugs herumgeschlagen haben, haben die anderen sich mit ihrer Sprache vertraut gemacht. Oder mit drei.
-
tenchou schrieb:
ich benutz nur c weils das einzige ist, was ich kann und weil ich damit alles machen kann
c ist wohl auch eher eine 'was' sprache, für 'wie' typen aber auch geeignet. naja, so genau kann man's wohl nicht sagen.

-
Another C User schrieb:
tenchou schrieb:
ich benutz nur c weils das einzige ist, was ich kann und weil ich damit alles machen kann
c ist wohl auch eher eine 'was' sprache, für 'wie' typen aber auch geeignet. naja, so genau kann man's wohl nicht sagen.

Viele Leute würden eher sagen, dass C eine 'wtf'-Sprache für 'wtf'-Typen ist

-
Tim^ausgeloggt schrieb:
Another C User schrieb:
tenchou schrieb:
ich benutz nur c weils das einzige ist, was ich kann und weil ich damit alles machen kann
c ist wohl auch eher eine 'was' sprache, für 'wie' typen aber auch geeignet. naja, so genau kann man's wohl nicht sagen.

Viele Leute würden eher sagen, dass C eine 'wtf'-Sprache für 'wtf'-Typen ist

Ring frei für den Flame-War!
finde ich nicht (um möglichst unprovokant zu sein)
-
Hi,
BitWax schrieb:
finde ich nicht (um möglichst unprovokant zu sein)
was findest du nicht?
-
Das C/C++ eine 'wtf'-Sprache ist, im Sinne davon, dass es andere Sprachen gibt, die eher darein gehören (deshalb auch das in Klammern)
-
Hi,
C und C++ sind schon zwei unterschiedliche Dinge. Abgesehen davon gibt es in C etliche Konstrukte, die man schon mit 'wtf' bezeichnen könnte. Das geht zwar in C++ auch, aber da kann man einige Dinge zumindest etwas eleganter lösen.
Deswegen nutze ich auch C++.

-
Gregor schrieb:
DEvent schrieb:
Das ist eine Eintielung die mir gefaellt. Ich bin auch ein "Was-Typ". Mich interessierst nicht ob eine Anwendung schnell laeuft oder was da im Hintergrund abgeht (wie Speicherverwaltung z.B.), solange sie stabil lauft und das liefert was ich will.
Da ist Java genau das richtige fuer mich. Die "Drecksarbeit" (also Speicherverwaltung, Optimierung auf Asm-Ebene, Byte-Alignmend und was man noch so rausholen kann) macht fuer mich die VM, bzw. der Compiler. Dafuer sind die erfunden worden, und dafuer ist meine Zeit mir zu schade.
Sollen sich doch die Compiler-Hacker die Finger wund schreiben (ich hab groessten Respekt vor ihnen) damit mein Java Programm 50ms schneller arbeitet. Ich entwickle lieber derweil Applikationen die man verwenden kann.
Das ist eigentlich nicht der Aspekt, auf den ich bezüglich der Einteilung in Was-Typen und Wie-Typen hinauswollte. Es ging mir mehr um die Ausdrucksstärken der unterschiedlichen Sprachen. Bei Wie-Typen ist zum Beispiel "eleganter Code" ein Ziel, das bei der Programmierung auch erreicht werden sollte. Bei Was-Typen spielt die Eleganz des Codes eine weniger große Rolle.
Natürlich nutzt Du in jeder Sprache die besten (schnellsten,...) Algorithmen in Deinen Programmen. Da unterscheiden sich Was- und Wie-Typen nicht wirklich. Naja, die Was-Typen nehmen sicherlich auch schonmal einen schlechteren Algorithmus, wenn die Entwicklung damit deutlich schneller geht und das Endprodukt dabei trotzdem noch seine vorgesehene Nutzbarkeit usw. zeigt.
Achso meinst du das. Die Eleganz des Codes wuerde ich eher in die Kategorie "Wartbarkeit und Erweiterbarkeit" einordnen. Diese 2 Dinge sind mir an einem Code sehr wichtig, weswegen ich auch in C OOP-Code schreibe (muss man aber leider auf Kapselung verzichten).
-
CarstenJ schrieb:
Abgesehen davon gibt es in C etliche Konstrukte, die man schon mit 'wtf' bezeichnen könnte.
welche denn?
CarstenJ schrieb:
Das geht zwar in C++ auch, aber da kann man einige Dinge zumindest etwas eleganter lösen.
was verstehst du unter eleganz?
-
Hi,
z.B. das Hantieren mit Zeigern, Zeiger auf Zeiger, Zeigerarithmetik etc. Die Syntax ist ja wohl kaum intuitiv oder schön.
Sowas gibt es zwar in C++ auch, aber zumindest kann man das ein oder andere Mal statt eines normalen Zeigers entweder einen SmartPointer nehmen, oder manchmal Referenzen. Je nach Anwedungsfall. Und wenn man eine Referenz benutzt, muss man diese sofort initialisieren, also fällt schonmal eine oft vorkommende Fehlerquelle weg.
Ferner finde ich Funktionsüberladung sehr praktisch, das hat C nicht. Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.
-
CarstenJ schrieb:
Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.
Objektorientierung in C++ ist sehr rudimentär.
-
CarstenJ schrieb:
Hi,
z.B. das Hantieren mit Zeigern, Zeiger auf Zeiger, Zeigerarithmetik etc. Die Syntax ist ja wohl kaum intuitiv oder schön.
Sowas gibt es zwar in C++ auch, aber zumindest kann man das ein oder andere Mal statt eines normalen Zeigers entweder einen SmartPointer nehmen, oder manchmal Referenzen. Je nach Anwedungsfall. Und wenn man eine Referenz benutzt, muss man diese sofort initialisieren, also fällt schonmal eine oft vorkommende Fehlerquelle weg.
Ferner finde ich Funktionsüberladung sehr praktisch, das hat C nicht. Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.
SmartPointer vermisse ich in C ebenfalls. Waere eine sehr nuetzliche Erweiterung. Ausserdem vermisse ich ebenso Referenzen und Funktionsueberladung.
Ebenso vermisse ich Klassen und Templates in C

-
C-fan schrieb:
CarstenJ schrieb:
Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.
Objektorientierung in C++ ist sehr rudimentär.
Was fehlt den C++ (und eben Php5, siehe Thread bei Web) zur OOP?
- Vererbung, Kapselung und Laufzeitpolymorphie. Dies bietet C++ und Php5. Der Rest ist doch nur eine Designfrage der Sprache.
-
DEvent schrieb:
Was fehlt den C++[...]?
http://c2.com/cgi/wiki?AreDesignPatternsMissingLanguageFeatures