warum benutzt ihr c++?
-
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
-
c2dotcom schrieb:
DEvent schrieb:
Was fehlt den C++[...]?
http://c2.com/cgi/wiki?AreDesignPatternsMissingLanguageFeatures
Ja das fehlt C++ vielleicht, aber das hat gar nichts, aber auch nichts, mit OOP zu tun. OOP ist ein Sammelbegriff fuer Techniken die, u.a., es erlaubt diese Patterns zu implementieren. MultiMethods, MetaClass, GenericFunktions, usw... sind doch voellig andere Techniken.
Aber es ist ein interessanter Artikel, und ich gebe den Autoren Recht, dass Designs Patterns features einer Sprache nachimplementieren. Aber sie sind noetig, denn sonst haben wir eine zu aufgeblaete Sprache mit 1000 von Techniken.
-
DEvent schrieb:
OOP ist ein Sammelbegriff fuer Techniken die, u.a., es erlaubt diese Patterns zu implementieren.
Unfug! Mit Techniken hat das nichts zu tun.
http://en.wikipedia.org/wiki/Object-oriented_programming
-
C-fan schrieb:
CarstenJ schrieb:
Allgemein find ich Objektorientierung natürlich auch nicht zu verachten.
Objektorientierung in C++ ist sehr rudimentär.
Kannst du auch was Sinnvolles beitragen, oder nur rumflamen? Achja, war ja dein Ziel....
-
Ich finde nicht das die OOP rudimentär ist, besonders weil sie dafür, dass sie funktionslos sein soll, doch recht ausgeprägt ist.