Was sollte ein professioneller C++ Entwickler kennen und können?
-
gggggggggggggh schrieb:
@templates: LOL. Andere Sprachen brauchen keine templates da generische Programmierung sowas von selbstverständlich ist und in der Sprache fest verankert, dass man keine dirty hacks ala templates braucht.
Das zeigt mal wieder, dass C++-ler irgendwo in den '80ern festhängtn und immer noch glauben, ihre Konzepte seien neu. Macht mal bitte die Augen auf. Da gibts noch was hinter eurem Horizont.
Nenn mir eine dieser sogenannten modernen Sprachen die ein ähnlich mächtiges Werkzeug zur generischen Programmierung wie templates besitzen.
Ich gehe mal davon aus dass dir der Unterschied zwischen generics und templates bekannt ist...gggggggggggggh schrieb:
Macht mal bitte die Augen auf. Da gibts noch was hinter eurem Horizont.
Meine Augen sind offen
-
Hab ich mir noch nicht angesehen, aber Groovy hat Compile-time Metaprogramming - AST Transformations. Kannst dir mal ansehen
-
dot schrieb:
Nenn mir eine dieser sogenannten modernen Sprachen die ein ähnlich mächtiges Werkzeug zur generischen Programmierung wie templates besitzen.
Haskell. Ähnlich mächtiges Werkzeug? Nein, mächtiger als in C++. Viel mächtiger.
-
fghfghfghfhfghfgh schrieb:
Haskell. Ähnlich mächtiges Werkzeug? Nein, mächtiger als in C++. Viel mächtiger.
Haskell ist in etwa gleich alt wie C++ und imo macht es nicht viel Sinn es mit C++ zu vergleichen da es sich da um zwei verschiedene Welten handelt. Abgesehen davon sind C++ templates turing vollständig, das mit dem viel mächtiger kann ich mir daher nur schwer vorstellen...
-
Ich bin mächtiger
-
dot schrieb:
Haskell ist in etwa gleich alt wie C++ und imo macht es nicht viel Sinn es mit C++ zu vergleichen da es sich da um zwei verschiedene Welten handelt.
LOL? Lies doch mal bitte deine Beiträge durch bevor du sie abschickst, das macht doch absolut keinen Sinn.
Ob es zwei unterschiedliche Welten sind, spielt keine Rolle. Darum ging es nicht. Es ging darum, dass andere Sprachen es besser können. Und haskell ist EINE davon.
Du hast keine Argumente. :schland:
-
dfgdfgfffff schrieb:
Ob es zwei unterschiedliche Welten sind, spielt keine Rolle. Darum ging es nicht. Es ging darum, dass andere Sprachen es besser können. Und haskell ist EINE davon.
Eigentlich gings darum:
rthrthrt schrieb:
Mal von der Ausführungsgeschwindigkeit abgesehen kann jede beliebige Sprache C++ ersetzen und das viel besser!
Ich sehe in Haskell keine Konkurrenz für C++, genausowenig wie umgekehrt. Ergo macht der Vergleich für mich keinen Sinn.
-
asc schrieb:
Ich mag zwar auch C++ Programmierer, aber nicht nur dies sein. Und wenn eine Frage speziell nach C++ kommt, sollte diese auch die Themengrundlage sein, und nicht ein Schwanzvergleich.
Zu spät. Es ist schon längst nur noch ein Schwanzvergleich.
dfgdfgfffff schrieb:
Du hast keine Argumente.
Das hat hier fast jeder.
-
fghfghfghfhfghfgh schrieb:
dot schrieb:
Nenn mir eine dieser sogenannten modernen Sprachen die ein ähnlich mächtiges Werkzeug zur generischen Programmierung wie templates besitzen.
Haskell. Ähnlich mächtiges Werkzeug? Nein, mächtiger als in C++. Viel mächtiger.
Und dazu auch noch viel komplizierter. Bei c++ kann ich sehr gut abschätzen wie lange etwas dauert und einfach eine Datei schreiben, etwas auf der Konsole printen. Man hat dann zwar noch mit dieser ganzen Pointerscheiße und 80 Zeichen typennamen zu kämpfe, aber so ist das halt.
Bei Haskell muss man um einfach einen Text Auszugeben irgendwelche total hirnverbranten theoretischen mathematischen Konzepte wie Monaden verstehen und dann kommt noch so ein penner „Oh mit Monaden kann ich mir Objekte und Coninutations bauen um dann exceptions zu bauen“ in C++ kann ich einfach so Objekte und Exceptions benutzen und Leuten erklären wie die implementiert sind nur mit dem Verständnis von Sprungadressen auf Prozessorebene.
Dazu ist Haskell Lazy. Es ist praktisch unmöglich irgendetwas über Laufzeit zu einen bestimmten Zeitpunkt (Ich will in jedem Programm 60Frames/s)auszusagen. Die einzige Lösung für dieses Problem bei auch nur Ansatzweise interaktiven Programmen ist ausprobieren und beten das es mit der nächsten GHC Version gleich bleibt.Wer keine Interaktiven Programme will die nicht mit der Umgebung zusammenarbeiten und deren Laufzeit total wahrlos ist, ist mit Haskell gut bedient.
-
irgendwelche total hirnverbranten theoretischen
Du hast keine Ahnung.
um dann exceptions zu bauen
Du hast keine Ahnung.
Es ist praktisch unmöglich irgendetwas über Laufzeit .. ausprobieren und beten
Du hast keine Ahnung.
...
Ich fasse zusammen: Du hast keine Ahnung.PLT-Scheme kommt bei diesem Schwanzvergleich wohl am besten weg.
-
IPH schrieb:
Und dazu auch noch viel komplizierter. Bei c++ kann ich sehr gut abschätzen wie lange etwas dauert und einfach eine Datei schreiben, etwas auf der Konsole printen. Man hat dann zwar noch mit dieser ganzen Pointerscheiße und 80 Zeichen typennamen zu kämpfe, aber so ist das halt.
Weder C++ noch Haskell (noch jede andere Computersprache) sind für jeden Bereich das optimale Werkzeug. Und Unwahrheiten machen deine Aussagen nicht besser.
1. Ist es auch unter C++ recht einfach Ausgaben zu erzeugen, und man braucht dafür auch keine hochmathematischen Kenntnisse.
2. Moderne C++ Projekte verwenden Zeiger nur in homöopathische Dosen, wenn du dabei auf Zeigerarithmetik ansprichst. C++ hat sehr viele Mittel um die Speicherverwaltung zu übernehmen, und gerade die STL ist eher auf Objekte, den auf Zeiger, ausgelegt. Von einer Dereferenzierung und einen new-Aufruf (den man auch in einigen anderen Sprachen durchaus hat) abgesehen, benötigt man selten direkt irgendwelche Zeigerarithmetik.
3. Wenn du auf Typnamen mit 80 Zeichen ansprichst, meinst du sicherlich Templates. Ähnliches hast du aber auch in anderen Sprachen mit Generics etc. Zudem besitzt auch C++ mit dem kommenden Standard (wobei einige Compiler es bereits umsetzen) Mechanismen um auch dieses Problem massiv zu entschärfen. Anderseits ist gerade der Templatemechanismus von C++ eine der Bereiche die ich in anderen Sprachen vermisse (Policy-Based Design etc.).
4. C++ muss nicht komplex sein, aber kann es sein. Es kommt immer darauf an was man von C++ verwendet, und ich kenne viele C++ Entwickler für die das komplizierteste noch das verwenden einfachster Templates ist. Man kann natürlich alles in das extrem treiben, aber beispielsweise die Templatemetaprogrammierung brauchen die wenigsten.
Und um auf den Thread zurück zu kehren (gerade im Bezug auf den Punkt 4):
- Man sollte die Grundlagen der Sprache verstehen und anwenden können.
(Templates in der einfacher Form, nicht aber Templatemetaprogrammierung, sind hier auch ein Thema)
- Grundlegende Kenntnisse der C++ Standardbibliothek und deren Konzepte.
- Grundlegendes logisches Denkvermögen.Und dies alles muss nicht wirklich komplizierter als andere Sprachen sein.
-
Wieso verwendest du C++ als Synonym vom produzierten Code eines Programmiers?
-
knivil schrieb:
irgendwelche total hirnverbranten theoretischen
Du hast keine Ahnung.
um dann exceptions zu bauen
Du hast keine Ahnung.
Es ist praktisch unmöglich irgendetwas über Laufzeit .. ausprobieren und beten
Du hast keine Ahnung.
...
Ich fasse zusammen: Du hast keine Ahnung.Gleichfalls
PLT-Scheme kommt bei diesem Schwanzvergleich wohl am besten weg.
Auch ein blindes huhn findet mal ein korn. PLT Racket ist super
-
rthrthrt schrieb:
Rate mal warum wir alle C++ so doof finden. Weil es nichts taugt.
Mal von der Ausführungsgeschwindigkeit abgesehen kann jede beliebige Sprache C++ ersetzen und das viel besser!
Welche modernen Sprachelemente? Das wäre mir neu.
Top Programmiersprachen? Der einzige Grund warum C++ immer noch so weit verwendez wird ist, wie du es oben erwähnt hast, der vorhandene Code, sowie die unzähligen C++ Programmierer, die man halbwegs günstig bekommt.
C++ hat nunmal nichts zu bieten. Wow, die std lib bietet Sachen an, mit denen man einfach segfaults verursachen kann. Unglaublich! Diese dynamischen Datenstrukturen sind in richtigen modernen Sprachen sowas von selbstverständlich. In C++ wird damit immer noch angegeben. Armselig sowas ist.
Mal meinen Senf dazugeben:
Java, C# , CLI und was sich da noch so tummelt, genau betrachtet alles C++ mit eigenem Framwork, deren Might am Ende des Framworks endet(Nur ordnunghalber mal erwähnen das deren Laufzeitumgebung in C++ geschrieben ist, warum blos ? ).Andere Sprachen sind dann welche die sich in Programmierparadigmen und Syntax unterscheiden, da gibt es mit Sicherheit welche die sich für das eine oder andere besser eignen als C++ .
So und Senf zum Topic:
-Erfahrung, Erfahrung , Erfahrung
-Syntax
-OOP
-Design
-Visualisierung von Konzepten
-Boost
-Mindestens ein Framwork
-Winapi und Posix verstehen
-Sql sollte man können, die großen 3 DB sollte mann sich schonmal angeschaut haben ( IBM Db2 , Oracle , MS SQL ( Sybase ).
-Netzwerk ( Protokollem, Osi, LDAP, Routing ..... )-Und ganz wichtig, die Fähigkeit nicht IT lern IT Inhalt verständlich zu vermitteln.
-Nicht IT ler sind immer der Meinung ( und gerade Chefs ) das IT ler alles was IT ist können muß , die Breitbandigkeit ist den wenigsten bewußt . Hier sollte man sich in vieles schnell einarbeiten können.
Im MS Umfeld halte ich die MFC für einen sehr guten Basis Skill, auch wenn man andere Frameworks wie Qt benutzt.
-
Zabou schrieb:
Mal meinen Senf dazugeben:
Java, C# , CLI und was sich da noch so tummelt, genau betrachtet alles C++ mit eigenem Framwork, deren Might am Ende des Framworks endetMerkst du was? Bei C++ endet die "Might" auch mit dem eigenen Framework. Leider hat C++ kein eigenes Framework. Ich glaube das ist einer der Haken an C++.
Zabou schrieb:
(Nur ordnunghalber mal erwähnen das deren Laufzeitumgebung in C++ geschrieben ist, warum blos ? ).
Nur mal ordnungshalber, warum wird C++ in maschinensprache beim compilieren übersetzt, warum bloß? Weil das eine mit dem anderen nichts zu tun hat. ps: Die Laufzeitumgebungen kannst du auch in C oder asm oder jeder beliebigen sprache schreiben.
-
Leider hat C++ kein eigenes Framework. Ich glaube das ist einer der Haken an C++.
Selten dämliches Argument...
C++ ist nicht perfekt, aber es verbindet hohe Abstraktion mit schneller Ausführgeschwindigkeit wie keine andere Sprache - wenn man es richtig macht. Wenn's nicht schnell gehen muss, greife auch ich lieber zu Python.
....
-
[quote="ddddddf
Merkst du was? Bei C++ endet die "Might" auch mit dem eigenen Framework. Leider hat C++ kein eigenes Framework. Ich glaube das ist einer der Haken an C++.Nur mal ordnungshalber, warum wird C++ in maschinensprache beim compilieren übersetzt, warum bloß? Weil das eine mit dem anderen nichts zu tun hat. ps: Die Laufzeitumgebungen kannst du auch in C oder asm oder jeder beliebigen sprache schreiben.[/quote]
Es gibt wohl kaum eine Sprache wo es mehr Auswahl an Framworks gibt als C++ ^^ , da endet nix an irgendeinem Framwork nur am Lötkolben, was mit C++ nicht geht muß gelötet werden ^^ auch wen es nicht immer Sinn macht.
Und um deine 2 Frage mal nicht zu beantworten, weißt du eigentlich wovon du so sprichst ?
-
Zwangs-OOPisierung :schland:
-
zwangs-OOpisierung , Wo ?
-
nach schlag schrieb:
zwangs-OOpisierung , Wo ?
Na überall. Lieber eine Klasse bestehend aus einer (von der Klasse unabhängigen) methode, als einfach eine funktion zu schreiben. Letzteres wäre ja C und C ist ja laut C++-Propaganda per Definition Gefrickel pur.