warum benutzt ihr c++?
-
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.
-
DEvent schrieb:
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.
Design Patterns implementieren keine Sprachfeatures nach. Es sind einfach Ideen wie man Probleme einfach lösen kann und den Code wartbar hält. Design Patterns sind allgemein und nicht sprachabhängig, auch wenn viele immer ein Beispiel in einer bestimmten Sprache suchen. Das einige Sprachen Features haben, die diese Probleme auch lösen, ist einfach normal.
-
Interessant ist doch, das viele Design Patterns in C++ mit direkten (...) Sprachmitteln umgesetzt werden können...
...was man von anderen Sprachen ja nicht behaupten kann

-
ajcPanther schrieb:
Interessant ist doch, das viele Design Patterns in C++ mit direkten (...) Sprachmitteln umgesetzt werden können...
...was man von anderen Sprachen ja nicht behaupten kann
Welche anderen Sprachen kennst du denn noch? Ich möchte behaupten, daß die meisten anderen Sprachen, welche OOP unterstützen, es besser machen als C++.
-
Pooh schrieb:
ajcPanther schrieb:
Interessant ist doch, das viele Design Patterns in C++ mit direkten (...) Sprachmitteln umgesetzt werden können...
...was man von anderen Sprachen ja nicht behaupten kann
Welche anderen Sprachen kennst du denn noch? Ich möchte behaupten, daß die meisten anderen Sprachen, welche OOP unterstützen, es besser machen als C++.
Definiere "besser".
-
OOPabst schrieb:
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_programmingAus Wiki:
It is based on several techniques, including inheritance, modularity, polymorphism, and encapsulation.
klar, mit Techniken hat das gar nichts zu tun...

-
Nö wieso auch

Ich bin der Meinung, dass alle die behaupten OOP in C++ wäre scheiße, kennt C++ GAR nicht bis fast GAR nicht.