Modern CPP
Posts 1-10 of 26
- Back
- Next
-
Jens Weller Premium Member Group moderatorThe company name is only visible to registered members.C++0x erst 2010 und ohne Concepts
Es wird wohl nichts mit dem Erscheinen des neuen Standards in diesem Jahr, auch wird der neue Standard keine Template-Concepts enthalten.
Schade.
http://www.ddj.com/cpp/218600111
http://www.heise.de/newsticker/C-0x-fruehestens-2010-und-ohn...
Dennoch ist der neue Standard ein großer Fortschritt.
- 24 Jul 2009, 12:16 pm
-
Torsten Robitzki Premium MemberThe company name is only visible to registered members.Re: C++0x erst 2010 und ohne Concepts
Jens Weller schrieb:
Dennoch ist der neue Standard ein großer Fortschritt.
Auf jeden Fall! Das Problem wird aber bestimmt wieder sein, dass es dann noch mal 5 Jahre dauern wird, bis mal die ganzen schönen, neuen Features auch in den meisten Compilern identisch umgesetzt findet.
Zum ersten Standard gab es die ersten Jahre doch deutlich mehr Bücher, die beschrieben haben, wie man modernes C++ schreibt, als compiler, mit denen man das auch hätte umsetzen können.
Wenn ich mir so den Unterschied angucke, zwischen dem, was man bereits heute mit der Sprache machen kann, und was so im Durchschnitt genutzt wird, kann ich mir aber auch vorstellen, dass jede weitere Erweiterung der Sprache so langsam den Todesstoß gibt.
mfg Torsten
- 24 Jul 2009, 6:47 pm
-
Dr. Guido SeifertThe company name is only visible to registered members.Re^2: C++0x erst 2010 und ohne Concepts
Wenn ich mir so den Unterschied angucke, zwischen dem, was man bereits heute mit der Sprache machen kann, und was so im Durchschnitt genutzt wird, kann ich mir aber auch vorstellen, dass jede weitere Erweiterung der Sprache so langsam den Todesstoß gibt.
Sehe ich auch so. In all meinen Projekten habe ich nur ein Bruchteil benutzt gesehen,
was C++ kann. STL? War oft genug explizit verboten. Boost? Oft genug vollkommen
umbekannt. In 90% alle Faelle bekomme ich ohnehin eher C Code mit C++
Einsprengseln vorgelegt. Aufwaendigere Templatmetaprogrammierung habe ich bisher
nur in Lehrbuechern gesehen. Mit Ausnahme einiger weniger hilfloser Versuche nie in
freier Wildbahn. Fuer gewoehnlich passe ich mich an und beschraenke mich auf
den kleinsten gemeinsamen C++-Nenner. Nach mir muessen die Programme ja
auch noch gepflegt werden. Und dann soll noch mehr in die Sprache gequetscht
werden? Bestimmt nett zum Spielen in nicht-kommerziellen Opensource Projekten.
Ich werde mit Sicherheit auch ein paar Fingeruebungen mit diesen Features machen.
Professionell anwenden....eher nicht.
- 24 Jul 2009, 10:46 pm
-
Jens Weller Premium Member Group moderatorThe company name is only visible to registered members.Re^3: C++0x erst 2010 und ohne Concepts
Dr. Guido Seifert schrieb:
Wenn ich mir so den Unterschied angucke, zwischen dem, was man
Sehe ich auch so. In all meinen Projekten habe ich nur ein Bruchteil benutzt gesehen, was C++ kann. STL? War oft genug explizit verboten. Boost? Oft genug vollkommen
umbekannt. In 90% alle Faelle bekomme ich ohnehin eher C Code mit C++ Einsprengseln vorgelegt
Ja, das finde ich auch immer Schade, aber ich versuche trotzdem da wo es sinn macht, zu modernisieren.
Man kann den Leuten auch eine Handreichen, um sie aus diesem Grauenhaften C-mit-Klassen zu einem besseren verständnis von C++ zu kommen.
Allerdings hatte ich bisher niemanden, der mir explizit die STL oder boost verboten hat.
Verwende in meinen eigenen Projekten recht viel davon, und man liest es eigentlich auch in fast allen Projekt/Stellenausschreibungen für C++.
Sicher wird es noch einige Zeit brauchen, bis auch der neue Standard dann operativ einsetzbar ist.
- 25 Jul 2009, 12:16 pm
-
George Kotorlis Premium MemberThe company name is only visible to registered members.Re^4: C++0x erst 2010 und ohne Concepts
Nun, zumindest drei Dinge werden mir das Programmieren mit C++ zukünftig z.T. wesentlich erleichtern:
1. Lambda-Funktionen
2. &&
3. Das gute "auto"-Schlüsselwort
Vielleicht noch die regulären Ausdrücke...
- 27 Jul 2009, 11:36 am
-
Torsten Robitzki Premium MemberThe company name is only visible to registered members.Re^2: C++0x erst 2010 und ohne Concepts
Torsten Robitzki schrieb:
Zum ersten Standard gab es die ersten Jahre doch deutlich mehr Bücher, die beschrieben haben, wie man modernes C++ schreibt, als compiler, mit denen man das auch hätte umsetzen können.
Ich zitiere mich mal selber :-). Es ist ja auch nicht so, dass man den/die benutzen compiler berücksichtigen muss. In meinem jetzigen Projekt kommt z.B. noch je ein Tool für statische Code-Analyse (pc-lint), Dokumentation (doxygen) und coverage analyse (ctc) zum Einsatz. Diese Tools haben alle auch noch heute (natürlich disjunkte) Probleme mit der Sprache, deren Umgehung zusätzlicher Aufwand bedeuten.
- 03 Aug 2009, 5:54 pm
-
Christian Parpart Premium MemberThe company name is only visible to registered members.Re^5: C++0x erst 2010 und ohne Concepts
George Kotorlis schrieb:
Nun, zumindest drei Dinge werden mir das Programmieren mit C++ zukünftig z.T. wesentlich erleichtern:
1. Lambda-Funktionen
2. &&
3. Das gute "auto"-Schlüsselwort
hinzufuegen moechte ich hier noch unbedingt die variadic templates, welche vom gcc ebenfalls schon eine weile unterstuetzt werden - nur lambda funktionen noch nicht.
In bezug auf variadic templates war ich anfangs stolz, dass ich konstrukte wie multicast functoren / prepared sql statement klassen als fully-featured function object implementierung selbst designen konnte. mit variadic templates/c++0x hingegen sieht die implementation peinlich leicht aus, man muss kein crack mehr sein um solches zu realisieren (dickes plus).
Vielleicht noch die regulären Ausdrücke... Zur library fanden auch noch andere dinge die ich sehr entgegenkommend finde:
- shared pointer
- thread API
- wahrscheinlich und hoffentlich die networking api (wird's die aus boost? waere schick ;)
Soweit habe ich mit allem was gcc in der aktuellsten version schon unterstuetzt auch schon ein wenig rumgespielt,
und neben variadic templates hat gerade das neue auto-keyword eine ernstzunehmende suchtgefahr.
Aus meiner sicht die Vorteile des neuen auto's:
- schnellere verwirklichung der projekte, da nicht mehr soviel ueber das typing nachgedacht werden muss (insb wenn viel mit templates gearbeitet wird)
- lesbarerer code
- vielleicht auch ein wenig fehlerfreier, weil man sich nicht versehentlich fuer den falschen datentypen des ergebnisausdrucks von der rechten seite entschieden hat.
MfG,
trapni.
- 03 Aug 2009, 7:27 pm
-
Hendrik Schober Premium MemberThe company name is only visible to registered members.Re^5: C++0x erst 2010 und ohne Concepts
George Kotorlis schrieb:
Nun, zumindest drei Dinge werden mir das Programmieren mit C++ zukünftig z.T. wesentlich erleichtern:
1. Lambda-Funktionen
2. &&
3. Das gute "auto"-Schlüsselwort
Vielleicht noch die regulären Ausdrücke...
Ich denke, Threads gehören ja wohl definitiv in die Liste der wichtigsten neuen Features, oder?
- 07 Aug 2009, 12:39 pm
-
Hendrik Schober Premium MemberThe company name is only visible to registered members.Re^2: C++0x erst 2010 und ohne Concepts
Torsten Robitzki schrieb:
[...] Das Problem wird aber bestimmt wieder sein, dass es dann noch mal 5 Jahre dauern wird, bis mal die ganzen schönen, neuen Features auch in den meisten Compilern identisch umgesetzt findet.
GCC und die VS2010 Beta implementieren schon eine ganze Menge davon.
- 07 Aug 2009, 12:51 pm
-
Hendrik Schober Premium MemberThe company name is only visible to registered members.Re^3: C++0x erst 2010 und ohne Concepts
Dr. Guido Seifert schrieb:
Wenn ich mir so den Unterschied angucke, zwischen dem, was man bereits heute mit der Sprache machen kann, und was so im Durchschnitt genutzt wird, kann ich mir aber auch vorstellen, dass jede weitere Erweiterung der Sprache so langsam den Todesstoß gibt.
Sehe ich auch so. In all meinen Projekten habe ich nur ein Bruchteil benutzt gesehen, was C++ kann. STL? War oft genug explizit verboten. Boost? Oft genug vollkommen
umbekannt. In 90% alle Faelle bekomme ich ohnehin eher C Code mit C++ Einsprengseln vorgelegt. Aufwaendigere Templatmetaprogrammierung habe ich bisher nur in Lehrbuechern gesehen. Mit Ausnahme einiger weniger hilfloser Versuche nie in
freier Wildbahn. Fuer gewoehnlich passe ich mich an und beschraenke mich auf
den kleinsten gemeinsamen C++-Nenner. Nach mir muessen die Programme ja
auch noch gepflegt werden. Und dann soll noch mehr in die Sprache gequetscht werden? Bestimmt nett zum Spielen in nicht-kommerziellen Opensource Projekten.
Ich werde mit Sicherheit auch ein paar Fingeruebungen mit diesen Features machen.
Professionell anwenden....eher nicht.
Mhmm. Das sehe ich durchaus anders. Ich habe in den letzten zehn Jahren zunehmend besseres C++ gesehen.
Das erfordert natürlich, sich auch mal weit aus dem Fenster zu lehnen, unbequem zu bleiben, vielleicht auch mal selbst Seminare durchzuführen, und, ja, u.U. auch, die Firma zu wechseln, wenn gar nichts geht.
Ich habe Exceptions eingeführt, proprietäre Container rausgeworfen, boost angeschleppt, immer und immer wieder Bücher geordert und angepriesen und meine Kollegen mit Template-Meta-Programmierung konfrontiert, indem ich das schlicht nach und nach immer mehr verwendet habe. (TMP hat den unschlagbaren Vorteil, daß es Fehler von der Laufzeit in die Compile-Zeit verlagert -- die damit nicht beim Kunden passieren können. Das war immer ein Totschlagargument, mit dem ich vieles durchgesetzt habe.)
Die meisten Kollegen haben sich irgendwie in vieles davon reingewurschtelt -- manche mehr, manche weniger.
Und was die Komplexität von C++ betrifft: Ja, die ist natürlich jetzt schon enorm und wird noch wachsen. Und sicher, Dinge wie Rvalue-Referenzen erweitern die Sprache um viele zusätzliche Fallstricke. Aber nicht nur -- immerhin ist es einfacher, einen einfach Vektor zurückzugeben, als aus Performance-Gründen per nicht konstanter Referenz zu übergeben. Und nicht weniges von dem, was da jetzt "in die Sprache gequetscht" wird, dient ja auch v.a. der Vereinfachung: Lambda-Funktionen, das "neue" 'auto', Variadic Templates usw.
- 07 Aug 2009, 1:57 pm
