POLL (Programmiersprachen)
-
mathik schrieb:
rüdiger schrieb:
Nö, wie kommst du dadrauf? Glaube kaum, dass du meine Programme kennst. Ich benutz sehr selten Vererbung. Aber eigentlich glaube ich nicht, das ich Tipps von dir brauch oder haben will, wie ich bessere Programme schreibe. Danke.
fühlst du dich irgendwie persönlich angefriffen? ich dachte du wolltest wissen, was das decorator-pattern will, da du nochmal speziell nachgefragt hast....

ich möchte hier eine sachliche diskussion führen. musst nicht alles so persönlich nehmen
Nein, ich fühle mich nicht persönlich angegriffen. Ich verstehe nur nicht, warum du in jedem Beitrag bisher mich versuchst zu belehren.
rüdiger schrieb:
Geht in C++ doch auch wunderbar. Schau dir Boost.Iostream an. Da hast du zB bereits fertige Bzip2/Gzip-Sachen etc.
es geht mir nicht um irgendwelche fertigen Bzip2/Gzip-Sachen, sondern um das prinzip, wie einfach erweiterbar java-streams (bzw. "decorator-streams") sind und wie kompliziert es bei stl-streams ist.
Das war ja nur ein Beispiel. Also schau dir Boost.Iostream an, damit ist das ziemlich leicht.
Und naja, Java hat ja auch keine ideale Standard-Library. Ich habe erst erfahren, das für Java ein Pfad eine Datei ist. Sehr verwirrend. Könnten die mal überarbeiten...
-
vista schrieb:
es ist immer wieder das gleiche bei diesen java versus C++ threads: es werden äpfel mit birnen verglichen.
Sehe ich nicht so. Aepfel und Birnen sind zwei verschiedenen Sachen. Bei SE-Designs geht es darum, dasselbe Problem zu loesen. D.h. es gibt mehrere Loesungen fuer das gleiche Problem. Der Knackpunkt sind die Preferenzen. Es geht dabei darum, die Vor- und Nachteile abzuwaegen. Das Resultat ist ein trade-off. Wie bereits gesagt - es geht um Preferenzen - jeder hat eigene. Daher kann eine Zielloesung nicht jeden zufriedenstellen, da man unterschiedliche Preferenzen hat. Insbesondere heisst das, dass man nicht berechtigt ist die realisierte Loesung in Frage zu stellen, wenn man die Intention der Designer nicht kennt.
-
Insbesondere heisst das, dass man nicht berechtigt ist die realisierte Loesung in Frage zu stellen, wenn man die Intention der Designer nicht kennt.
Bitte, sein wann denn das? Ich habe jedes Recht alles und jeden zu kritisieren. Wir leben schlieslich nicht in China.
Davon leben ja auch die Entwickler, von konstruktiver Kritik, die weniger konstruktiver Kritik kann man ja ignorieren, muss man aber nicht.
Präferenzen schön und gut, aber diese Sachen wie Design-Patterns haben sich nicht umsonst etabliert. In dieser Hinsicht sind die moderneren Sprachen wie Java oder C# schon besser Designt. Deswegen bin ich echt gespannt auf C++x9, weil ich ja C++ als Sprache schon mag, aber Angesicht der Frikerrei die unumgänglich bei dieser Sprache ist, sind nunmal andere Sprachen attraktiver.
Templates Programming ist ja schön und gut, aber wer braucht das wirklich. Dazu kommt noch der Präprozessor, das Include-System und die 1000te von String-Klassen. Bei Templates kann man immernoch keine vernünftige Aufteilung von Interface und Implementation machen, immer wenn man irgendwas in der Template-Klasse ändert muss man das 10.000 Zeilen lange Programm von vorne compilieren.
-
mathik schrieb:
das stimmt. aber ich verstehe nicht, warum die aus sowas nicht lernen und es im nächsten c++-standard nicht besser als in java oder sonst wo machen...
c++ ist eine super-tolle eierlegendewollmilchsauprogrammiersprache. allerdings könnte sie auch mal modernisiert werden. insbesondere bei den bibliotheken (und nö, D ist nicht die modernisierung ;))
Machen sie ja. aber anders als du denkst. du musst verstehen, dass C++ eine sehr alte sprache ist, in der unglaublich viele Programme geschrieben wurden. jede veränderung an der Basis würde sofort viele zeilen code ungültig machen. Hier sind ganz klar wirtschaftliche interessen vorzuziehen, denn sonst würde der neue standard nicht nur nicht benutzt werden,im gegenteil, er würde von wirtschaftsseite total ignoriert. Deshalb werden alle änderungen auch in den std::tr1 bzw std::tr2 namespace untergebracht. Und ja, dort gibt es etliche änderungen, die viele kritikpunkte aushebeln.
Präferenzen schön und gut, aber diese Sachen wie Design-Patterns haben sich nicht umsonst etabliert. In dieser Hinsicht sind die moderneren Sprachen wie Java oder C# schon besser Designt. Deswegen bin ich echt gespannt auf C++x9, weil ich ja C++ als Sprache schon mag, aber Angesicht der Frikerrei die unumgänglich bei dieser Sprache ist, sind nunmal andere Sprachen attraktiver.
Design patterns haben sich in OO umgebungen etabliert. das ist schon richtig. Aber C++ ist keine reine OO umgebung, und Schema F würde dann vielleicht nur in ausnahmefällen richtig funktionieren

Templates Programming ist ja schön und gut, aber wer braucht das wirklich.
schau mal in die locale bibliothek. vorallem use_facet. Schau mal nach boost, wo mit template programming absolut flexible bibliotheken geschrieben wurden, die sich im alltag bewährt haben(boost::function, boost::tuple, boost::spirit,...)
und die 1000te von String-Klassen.
jetzt mal ganz ernsthaft: was gefällt dir an dem std::string net? dass er kein multibyte kann? das ist meiner meinung nach nicht so schlimm, da der string auf geschwindigkeit ausgelegt ist(und am ende dann doch mit wide charactern sehr gut klar kommt).
-
DEvent schrieb:
Präferenzen schön und gut, aber diese Sachen wie Design-Patterns haben sich nicht umsonst etabliert.
Und finden auch in der Stdlib ihren Einsatz. Oder was sind Funktionsobjekte, Iteratoren, Ein- und Ausgabe-Operatoren bei Streams? Alles keine Patterns? Das gerade das eine spezielle Pattern nicht zum Einsatz kommt, macht natürlich eine ganze Library unbrauchbar.

DEvent schrieb:
In dieser Hinsicht sind die moderneren Sprachen wie Java oder C# schon besser Designt.
Kann sein, auch wenn ich es ein wenig mühselig fand, Jahre lang ohne typisierbare Container arbeiten zu müssen. Komisch, ist auch nicht perfekt...
DEvent schrieb:
Templates Programming ist ja schön und gut, aber wer braucht das wirklich.
Von sich auf andere schliessen, ist immer gut.

DEvent schrieb:
Dazu kommt noch der Präprozessor, das Include-System
Präprozessoren gibts auch für andere Sprachen. Weiß nicht wie die alle heißen, aber waren z.B. in Java die Vorgänger von den Annotations. Hat man sich damals eindeutig von C++-Präprocessor inspirieren lassen. Das include-System wird aber nach C++2009 durch ein sogenanntes Module-Build-System ergänzt werden, dann müssen wir das Include-System nicht mehr benutzen. Das entsprechende Proposal wurde jedenfalls vom Komitee als interessant und wichtig eingestuft. (für 2009 aber aus Zeitmangel "geparkt") Warum informiert ihr euch nicht über die Arbeit des C++-Komitees?
DEvent schrieb:
und die 1000te von String-Klassen.
Dieses Thema kommt immer wieder hoch, und keiner sagt, was ihn stört? Weiterhin hat die Stdlib nicht 1000 String-Klassen, sondern nur zwei typisierte Templates. string und wstring. Das eine für Ascii und das andere für UCS. Mehr braucht man nicht für die Laufzeit-Strings.
DEvent schrieb:
immer wenn man irgendwas in der Template-Klasse ändert muss man das 10.000 Zeilen lange Programm von vorne compilieren.
Das hat aber nichts mit C++ zu tun, sondern den mangelnden export-Features seitens der Compiler. Wenn dich das Compilieren stört, kannst du im einfachsten Fall die PCHs einschalten. Wenn du export-Schlüsselwort haben willst, kauf dir einen Compiler der das kann (und den gibt es bekanntlich). Aber was hat die C++-Sprache damit am Ende zu tun?
-
Gregor schrieb:
vista schrieb:
man schimpft ja auch nicht über oldtimer-PKW nur weil heutige autos voller high-tech stecken. manchmal ist weniger eben mehr

Hälst Du C++ für den Oldtimer unter den Programmiersprachen? Halt so ne Hobby-Sprache für Liebhaber?

so ungefähr

trotzdem kann man auch einen oldtimer mit hi-tech aufrüsten, so dass er dadurch in vielen dingen besser wird als ein neuwagen, ohne seinen charme zu verlieren.
in c++ kann man z.b. wahlweise prozedural oder objektorientiert programmieren. man kann alte c-libraries benutzen usw. alles dinge, die java nicht zu bieten hat. dafür hat java andere stärken, von denen man aber viele auch c++ 'beibringen' kann.@Apollon: ja, du hast recht. persönliche vorliebe für die eine oder andere sprache ist leider für viele ein wichtiges kriterium. so ein verhalten ist in höchstem maße unprofessionell und provoziert immer wieder diese 'glaubenskriege'

-
DEvent schrieb:
Templates Programming ist ja schön und gut, aber wer braucht das wirklich.
Allein an der Aussage sieht man, dass du keine Ahnung von der Thematik hast.
Bei Templates kann man immernoch keine vernünftige Aufteilung von Interface und Implementation machen, immer wenn man irgendwas in der Template-Klasse ändert muss man das 10.000 Zeilen lange Programm von vorne compilieren.
Und wie soll eine Trennung von Interface und Implementierung aussehen? Und klar, wenn man eine Abhängigkeit ändert, muss man die abhängigen Codestellen neukompilieren. Wie würdest du das ändern?
Was mich an der ganzen Diskussion nervt, das ständig irgend welche Leute kommen und totalen Blödsinn über C++ erzählen, da sie es entweder nicht verstehen oder Propaganda betreiben wollen. Und klar, C++ macht viel falsch. Aber das ist absolut gar kein Grund, Java zu nehmen. Es gibt mehr Programmiersprachen auf der Welt, als Java, C++ und C#. Java hat genauso einen historischen Ballast und Sachen die zusammengefrickelt wurden. (Da ist C++ ja eher besser, weil das Design nicht mit der heißen Nadel gestrickt wurde)
-
DEvent schrieb:
Templates Programming ist ja schön und gut, aber wer braucht das wirklich.
OOP ist auch schön und gut, aber wer braucht das wirklich?

-
Artchi schrieb:
mathik schrieb:
rüdiger schrieb:
Geht in C++ doch auch wunderbar. Schau dir Boost.Iostream an. Da hast du zB bereits fertige Bzip2/Gzip-Sachen etc.
es geht mir nicht um irgendwelche fertigen Bzip2/Gzip-Sachen, sondern um das prinzip, wie einfach erweiterbar java-streams (bzw. "decorator-streams") sind und wie kompliziert es bei stl-streams ist.
Es geht dabei nicht nur um ein paar nützliche Stream-Implementierungen, sondern um eine Library, die es einem einfach macht, eigene Streams zu bauen. So wie du es forderst.
Schau mal hier: http://www.boost.org/libs/iostreams/doc/index.html
Deshalb ist deine negative Kritik unberechtigt, da deine Forderung bereits erfüllt wurde. Jeder der ernsthaft eigene Streams bauen will, kann damit loslegen. Das es vielleicht nicht nach der Nase von Personengruppe X geht, sollte hier nicht interessieren, da es nicht ausschliesslich einen Lösungsweg gibt.mathik schrieb:
aber ich verstehe nicht, warum die aus sowas nicht lernen und es im nächsten c++-standard nicht besser als in java oder sonst wo machen...
Du kannst ja gerne eine Referenzimplementierung programmieren oder eine Spezifikation schreiben und dem C++-Komitee als Proposal vorlegen. Es hindert dich niemand am nächsten Standard mitzuwirken und deine Liblingskonzepte in C++ einfliessen zu lassen.
mathik schrieb:
c++ ist eine super-tolle eierlegendewollmilchsauprogrammiersprache. allerdings könnte sie auch mal modernisiert werden. insbesondere bei den bibliotheken
Im C++2009-Standard wird es einige Verbesserungen, Vereinfachungen und Erweiterungen geben. Mach dir da mal keine Sorgen...
meine kritik galt den stl-streams. also den streams in der standardbibliothek von c++! und die sind einfach unnötig kompliziert! dass die streams von boost einfacher sind (jedoch wohl noch nicht mal in boost-core aufgenommen sind), bestreitet keiner.
Du kannst ja gerne eine Referenzimplementierung programmieren oder eine Spezifikation schreiben und dem C++-Komitee als Proposal vorlegen. Es hindert dich niemand am nächsten Standard mitzuwirken und deine Liblingskonzepte in C++ einfliessen zu lassen.
wenn ich die zeit hätte... und eigentlich finde ich es auch nicht sonderlich spannend irgendwelche standardbibliotheken zu designen, die es schon wie sand am meer gibt. ich würde die bibliothek von java als proposal vorlegen

-
rüdiger schrieb:
Nein, ich fühle mich nicht persönlich angegriffen. Ich verstehe nur nicht, warum du in jedem Beitrag bisher mich versuchst zu belehren.
statement -> frage -> antwort
fühlste du dich bei jedem forumsbeitrag "belehrt"?
rüdiger schrieb:
Und naja, Java hat ja auch keine ideale Standard-Library. Ich habe erst erfahren, das für Java ein Pfad eine Datei ist. Sehr verwirrend. Könnten die mal überarbeiten...
stimmt. dass ein BMW X3 ein auto ist, finde ich auch sehr verwirrend!

nicht jede bibliothek ist perfekt und wird es jemals sein.
-
@mathik
du hast dir boost.iostreams ja immer noch nicht angeguckt. Das sind Klassen um die Standard-Iostreams leichter erweitern zu können.
-
mathik schrieb:
rüdiger schrieb:
Nein, ich fühle mich nicht persönlich angegriffen. Ich verstehe nur nicht, warum du in jedem Beitrag bisher mich versuchst zu belehren.
statement -> frage -> antwort
fühlste du dich bei jedem forumsbeitrag "belehrt"?
Liegt vielleicht daran, dass du mir keine Antwort gegeben hast, sondern mir Dinge unterstellt hast, darüber wie ich programmiere etc.
rüdiger schrieb:
Und naja, Java hat ja auch keine ideale Standard-Library. Ich habe erst erfahren, das für Java ein Pfad eine Datei ist. Sehr verwirrend. Könnten die mal überarbeiten...
stimmt. dass ein BMW X3 ein auto ist, finde ich auch sehr verwirrend!

nicht jede bibliothek ist perfekt und wird es jemals sein.Achso und wenn du eine Klasse für Autos schreiben würdest, dann hiese die bei die nicht Auto, sondern BMW_X3?
btw. macht es ja überhaupt keinen Sinn die Klassenbibliothek von Java mit C++ zu vergleichen. Wenn schon bitte Java und C++ + Boost.
-
mathik schrieb:
meine kritik galt den stl-streams. also den streams in der standardbibliothek von c++! und die sind einfach unnötig kompliziert! dass die streams von boost einfacher sind (jedoch wohl noch nicht mal in boost-core aufgenommen sind), bestreitet keiner.
Oh man, reden rüdiger und ich mit ner Wand? Warum liest du nicht einfach mal die ersten Sätze von dem Link??? Boost.IOStream ist sozusagen eine Tool-Library für die Standard-Streams (STL-Streams gibt es übrigens nicht, die STL hatte nie eine Streamlibrary). Man man man...
mathik schrieb:
wenn ich die zeit hätte... und eigentlich finde ich es auch nicht sonderlich spannend irgendwelche standardbibliotheken zu designen, die es schon wie sand am meer gibt.
Dann solltest du auch nicht ewig drauf rum reiten. Kritik ist ja schön und gut, aber irgendwann auch gut, wenn man selber nicht den Finger krumm machen will. Immerhin ist C++ keine Sprache von einer Firma, sondern wird ehrenamtlich vorangetrieben. Kannst es also besser machen bzw. zur Besserung beitragen, oder spielst dich nicht weiter so auf. Mit dem Nichtlesen des Boost.IOStream-Links hast du dich aber selber disqualifiziert, wegen Ignoranz.
-
wenn ich die zeit hätte... und eigentlich finde ich es auch nicht sonderlich spannend irgendwelche standardbibliotheken zu designen, die es schon wie sand am meer gibt. ich würde die bibliothek von java als proposal vorlegen

Sicher? dann wär ich mal auf deine begründung scharf! Was fidnest du zb an der STL so abstoßend(also nicht IOStream), dass java da so viel besser sein soll?
-
Artchi schrieb:
mathik schrieb:
meine kritik galt den stl-streams. also den streams in der standardbibliothek von c++! und die sind einfach unnötig kompliziert! dass die streams von boost einfacher sind (jedoch wohl noch nicht mal in boost-core aufgenommen sind), bestreitet keiner.
Oh man, reden rüdiger und ich mit ner Wand? Warum liest du nicht einfach mal die ersten Sätze von dem Link??? Boost.IOStream ist sozusagen eine Tool-Library für die Standard-Streams (STL-Streams gibt es übrigens nicht, die STL hatte nie eine Streamlibrary). Man man man...
das gefühl habe ich auch. die boost-streams sind eine fassade um die stl-streams. ist mir klar. habe ich irgendwas anderes behauptet?
java hat auch keine stream-library in der standardbibliothek. sie bietet jedoch ein einheitliches simples framework, in das sich alle bibliotheken, die irgendwas mit streams zu tun haben, einhängen können. um sich in die stl-streams einfach reinzuhängen ist erstmal "ein umweg" über boost notwendig. und nicht jedes system kann oder will boost verwenden. die stl aber schon.Artchi schrieb:
mathik schrieb:
wenn ich die zeit hätte... und eigentlich finde ich es auch nicht sonderlich spannend irgendwelche standardbibliotheken zu designen, die es schon wie sand am meer gibt.
Dann solltest du auch nicht ewig drauf rum reiten. Kritik ist ja schön und gut, aber irgendwann auch gut, wenn man selber nicht den Finger krumm machen will. Immerhin ist C++ keine Sprache von einer Firma, sondern wird ehrenamtlich vorangetrieben.
wir leben in einer schnelllebiegen IT-Welt. Wenn erstmal 10 jahre vergehen müssen, bis ein neuer C++ standard rauskommt, dann muss sich irgendwas ändern. Ihr könnt mir nicht sagen, dass ihr das super findet!
Ich behaupte mal, dass java und C# deshalb so erfolgreich sind, weil die nicht die besseren sprachen sind, sondern umfangreiche bibliotheken sowie mächtige tools haben.
Artchi schrieb:
Kannst es also besser machen bzw. zur Besserung beitragen, oder spielst dich nicht weiter so auf. Mit dem Nichtlesen des Boost.IOStream-Links hast du dich aber selber disqualifiziert, wegen Ignoranz.
an solchen diskussionen finde ich es immer sehr schade, dass es immer wieder leute gibt, die, nachdem ihnen die argumente ausgehen, irgendwelche angreifenden statements in die luft werfen, um vom wirklichen thema abzulenken. wirlich sehr schade...
-
otze schrieb:
wenn ich die zeit hätte... und eigentlich finde ich es auch nicht sonderlich spannend irgendwelche standardbibliotheken zu designen, die es schon wie sand am meer gibt. ich würde die bibliothek von java als proposal vorlegen

Sicher? dann wär ich mal auf deine begründung scharf! Was fidnest du zb an der STL so abstoßend(also nicht IOStream), dass java da so viel besser sein soll?
die bibliothek ist viel umfangreicher und ziemlich einfach! das ist schon alles.
bei den containern ist mir in der stl alles viel zu sehr auf statische polymorphie ausgelegt. in java auf dynamische polymorphie. hat beides seine vor- und nachteile. blöd, dass man nicht beides haben kann...
-
Mathik schrieb:
um sich in die stl-streams einfach reinzuhängen ist erstmal "ein umweg" über boost notwendig. und nicht jedes system kann oder will boost verwenden.
Ehm, also ich sehe ein include nicht gerade als Umweg an. Nach deiner Auffassung (die komischerweise viele haben), darf man nie mehr als die Std-Lib einer Sprache benutzen. D.h. in Java und C# dürfte man auch nie den "Umweg" gehen. Aber:
Ich behaupte mal, dass java und C# deshalb so erfolgreich sind, weil die nicht die besseren sprachen sind, sondern umfangreiche bibliotheken sowie mächtige tools haben.
Das widerspricht sich doch? Ganz gewiss haben Java und C# Erfolg wegen der vielen Libs und Tools. Ich kann in Java ohne Bedenken eine JAR dazu legen. Aber das ist ja (nach deiner Auffassung) auch ein Umweg? Ganz ehrlich? Du machst dir was vor um C++ auf die Std-Lib zu reduzieren. Ich sage dir: Libraries und Tools gibt es auch für C++. Wem z.B. die Std-Lib nicht gefällt, kann z.B. mit der Qt-Lib einen kompletten Ersatz finden. Selbst die Qt-Iteratoren sind seit Version 4 laut Trolltech den Java-Iteratoren nachempfunden. Ja, wer diese besser findet, kann sie benutzen. Aber ist sicherlich auch ein Umweg?
wir leben in einer schnelllebiegen IT-Welt. Wenn erstmal 10 jahre vergehen müssen, bis ein neuer C++ standard rauskommt, dann muss sich irgendwas ändern. Ihr könnt mir nicht sagen, dass ihr das super findet!
Hier stelle ich wieder die Frage: warum informiert ihr euch nicht über den Prozess des Standards?
1. Die 10 Jahre sind lang. Aber es macht keinen Sinn, die Core-Sprache alle 2 Jahre zu erweitern. Schon allein deshalb weil die Sprache schon mehr kann, als manch andere (Mehrfachvererbung, Templates, Operator-Überladung usw.). Java wird auch nicht alle 2 Jahre mit neuen Sprachfeatures überhäuft. Man kann nicht einfach so trilalla neue Features einbauen, weil jemand das gerne haben will.
2. Das einzige was man dem Komitee ankreiden kann, sind 10 Jahre die gleiche Std-Lib. ABER auch das Komitee ist lernfähig und deshalb setzen sie jetzt bewusst auf TRs. Mit dem TR1 gab es 2006 eine Std-Lib-Erweiterung. Also im Lib-Bereich kann man nicht von 10 Jahren reden! Der TR2 ist kurzfristig nach C++2009-Standard angesetzt. Dadurch sollen die Abstände für Library-Erweiterungen verkürzt werden bzw. vom C++-Core-Standard entkoppelt werden. Damit wird man dem schnelllebigen IT-Markt Rechnung tragen.
Infooormieeeren was in der C++-Welt passiert, lautet hier die Devise. Anstatt Anti-C++-Argumente von vor 10 Jahren immer und immer wieder zu bringen.
-
mathik schrieb:
Artchi schrieb:
mathik schrieb:
meine kritik galt den stl-streams. also den streams in der standardbibliothek von c++! und die sind einfach unnötig kompliziert! dass die streams von boost einfacher sind (jedoch wohl noch nicht mal in boost-core aufgenommen sind), bestreitet keiner.
Oh man, reden rüdiger und ich mit ner Wand? Warum liest du nicht einfach mal die ersten Sätze von dem Link??? Boost.IOStream ist sozusagen eine Tool-Library für die Standard-Streams (STL-Streams gibt es übrigens nicht, die STL hatte nie eine Streamlibrary). Man man man...
das gefühl habe ich auch. die boost-streams sind eine fassade um die stl-streams. ist mir klar. habe ich irgendwas anderes behauptet?
Ja
java hat auch keine stream-library in der standardbibliothek. sie bietet jedoch ein einheitliches simples framework, in das sich alle bibliotheken, die irgendwas mit streams zu tun haben, einhängen können. um sich in die stl-streams einfach reinzuhängen ist erstmal "ein umweg" über boost notwendig. und nicht jedes system kann oder will boost verwenden. die stl aber schon.
Ne, es ist kein Umweg über Boost notwendig. Du kannst dich auch so in die Streams reinhängen. Und warum sollte man Boost nicht verwenden können? Boost.Iostream ist reines Standard C++ (wie das meiste in Boost), das kann man sich auch einfach ins Projekt kopieren.
Und die Standard C++ Library war ja nie darauf ausgelegt, die einzige Library für C++ zu sein. Es war ja immer klar, das man sich zusätzliche Librarys benutzen wird... (Aber es wäre auch naiv zu denken, eine ultimative Library zu bauen)
Artchi schrieb:
mathik schrieb:
wenn ich die zeit hätte... und eigentlich finde ich es auch nicht sonderlich spannend irgendwelche standardbibliotheken zu designen, die es schon wie sand am meer gibt.
Dann solltest du auch nicht ewig drauf rum reiten. Kritik ist ja schön und gut, aber irgendwann auch gut, wenn man selber nicht den Finger krumm machen will. Immerhin ist C++ keine Sprache von einer Firma, sondern wird ehrenamtlich vorangetrieben.
wir leben in einer schnelllebiegen IT-Welt. Wenn erstmal 10 jahre vergehen müssen, bis ein neuer C++ standard rauskommt, dann muss sich irgendwas ändern. Ihr könnt mir nicht sagen, dass ihr das super findet!
Die IT-Welt scheint schnelllebig zu sein. Aber das ist teilweise nur sehr Oberflächlich. Viele Projekte laufen sehr lange und Software wird eher erweitert, als neugeschrieben. Nicht umsonst gibt es noch genug COBOL-Software. Daher braucht man eben viel Sorgfallt bei der Umsetzung. Sicher, die Trends was In und was Out ist, ändern sich alle paar Monate. Aber C++ erlaubt es einem eben solche Trends zu adaptieren und zu verwenden.
Ich behaupte mal, dass java und C# deshalb so erfolgreich sind, weil die nicht die besseren sprachen sind, sondern umfangreiche bibliotheken sowie mächtige tools haben.
Ach und C++ ist nicht erfolgreich?
Artchi schrieb:
Kannst es also besser machen bzw. zur Besserung beitragen, oder spielst dich nicht weiter so auf. Mit dem Nichtlesen des Boost.IOStream-Links hast du dich aber selber disqualifiziert, wegen Ignoranz.
an solchen diskussionen finde ich es immer sehr schade, dass es immer wieder leute gibt, die, nachdem ihnen die argumente ausgehen, irgendwelche angreifenden statements in die luft werfen, um vom wirklichen thema abzulenken. wirlich sehr schade...
Klar, du hast ja damit angefangen mir einen Programmierstil zu unterstellen und mir irgend welche OT-Sachen versucht zu erklären.
mathik schrieb:
otze schrieb:
wenn ich die zeit hätte... und eigentlich finde ich es auch nicht sonderlich spannend irgendwelche standardbibliotheken zu designen, die es schon wie sand am meer gibt. ich würde die bibliothek von java als proposal vorlegen

Sicher? dann wär ich mal auf deine begründung scharf! Was fidnest du zb an der STL so abstoßend(also nicht IOStream), dass java da so viel besser sein soll?
die bibliothek ist viel umfangreicher und ziemlich einfach! das ist schon alles.
bei den containern ist mir in der stl alles viel zu sehr auf statische polymorphie ausgelegt. in java auf dynamische polymorphie. hat beides seine vor- und nachteile. blöd, dass man nicht beides haben kann...
Der Vorschlag die Java-Standard-Library in C++ zu verwenden, zeugt nur von deinen C++ Unkenntnissen.
-
@mathik: Die haben Angst um ihre Jobs oder sind glaubensmäßig unterwegs, also beruhig dich
Sie sind Programmierer der alten Schule, da waren Programmierer noch "mehr" und besser bezahlt als ein Tischler oder Gärtner, dass muss man natürlich auch mit allen Mitteln verteidigen.Neue Jobstatistiken zeigen dann natürlich das wahre Bild: Durchschnittliches Einkommen liegt im Anfangsstadium (mit HTL, also Abitur + praktischer Ausbildung!) bei nur mehr 1800 Brutto. Da fehlte mir letztes Jahr nicht mehr viel und meine Ferialarbeit war besser bezahlt...
Sprachen werden immer einfacher zu handhaben und können immer leichter eingesetzt werden. Sollen Sie auch, dann kann man viel billigere Arbeitskräfte damit beschäftigen. Für alles andere holt man sich Experten. Spracherkennungssoftware wird von Experten aus dieser Branche entwickelt und die Programmierer schreiben dann eben Deutsch nach Java um bzw. man lernt eben ein bisschen Programmieren als Linguistiker (oder viel zu viel wie minhen :D)
(Aber es wäre auch naiv zu denken, eine ultimative Library zu bauen)
Das sagt ja auch niemand. Aber für den alltäglichen Gebrauch kann ich aus der C++-Library nun leider fast gar nichts verwenden. Das fängt bei den nicht vererbbaren Containern bei denen Datenstrukturart und Implementierung vermischt wurden an, hantelt sich weiter zu kompletten Sinnlosimplementierungen wie die fstream-Lib und endet nicht zuletzt bei striktem C-Code ala ctime. Komplett abgesehen mal von std::string, darüber lieber kein Wort verlieren. Schön designed wurde zB algorithm, allerdings zeigt sie auch, dass C++ nunmal hybrid ist und daher nicht einheitlich anzuwenden ist. Führt natürlich zu viel Verwirrung. Statt "istream >> container" schlägt man sich jetzt mit std::copy rum - warum das einmal so und einmal anders ist weiß leider niemand. Hybrides Modell führt zu Verkomplexierung und außerdem zu unschönen Ausuferungen. Da wird dann - um die Sprache in gewisse Bereiche unbedingt reinzupressen - übelste Meta-Programmierung verwendet statt auf normale Art und Weise im Standard Reflections oÄ einfach hinzuzufügen.
Benutzt jede Sprache für ihren Einsatzzweck. Just my 2 cents.
MfG SideWinder
-
SideWinder schrieb:
@mathik: Die haben Angst um ihre Jobs, also beruhig dich

Ich verdiene meine Brötchen mit Java. Normalerweise müsste ich Java verteidigen. Ehm, wer muß hier also seinen Job verteidigen?