Javas Zukunft?
-
Was mir am meisten fehlt, sind Netzwerkpackete und ne GUI. SmartPointer hab ich eh schon lange selber programmiert, aber gut, dass jetzt die von boost reinkommen.
Optimizer schrieb:
Das will man bei C++ so. Im Grunde find ich es auch nicht verkehrt, wenn dafür alles ordentlich designed ist. (Ich finde die Standardbibliothek zwar nicht ordentlich designed, aber das geht wahrscheinlich nur mir so. )
Was genau gefällt dir denn daran nicht? IIRC gefiel dir das Design der Java Standardlib sehr gut, nicht?
-
GPC schrieb:
Was mir am meisten fehlt, sind Netzwerkpackete und ne GUI. SmartPointer hab ich eh schon lange selber programmiert, aber gut, dass jetzt die von boost reinkommen.
Wie gesagt, werden wir wohl im TR2 bekommen. Die asio Lib wird wahrscheinlich beim Kommittee vorgeschlagen. Weiß jetzt leider nicht ob sich da jemand dessen aus der Boost-Gemeinde angenommen hat. War aber in der Mailingliste jedenfalls die Rede von.
-
Wie wärs wenn ihr eure parallele Diskussion in den Hauptthread im RUDP-Forum verlegt, damit alle was davon haben?
MfG SideWinder
-
GPC schrieb:
Optimizer schrieb:
Das will man bei C++ so. Im Grunde find ich es auch nicht verkehrt, wenn dafür alles ordentlich designed ist. (Ich finde die Standardbibliothek zwar nicht ordentlich designed, aber das geht wahrscheinlich nur mir so. )
Was genau gefällt dir denn daran nicht? IIRC gefiel dir das Design der Java Standardlib sehr gut, nicht?
Ja, das gefällt mir. Ich kann in der C++ stdlib aber keine großen Ähnlichkeiten dazu erkennen. Punkte, die mich persönlich besonders stören, sind:
- affige Namen für Methoden wie begin() und end(), good(), bad(), what(), string macht es mit length() und size() schließlich komplett unintuitiv
- Das Erkennen von EOF bei streams ist affig. Und nach jedem lesen muss man entweder auf Fehler prüfen oder schaltet Exceptions an, die dann auch bei EOF fliegen. Frägt man nach what(), um herauszufinden, wieso eine Datei nicht geöffnet werden konnte, steht dann was hilfreiches wie ios_base::failure da
- Die Iteratoren gefallen mir nicht. In vielen anderen Bibliotheken ist der Iterator nicht bei one-past-end ungültig, sondern am Anfang. Dann braucht man keine for-schleife mit Vergleich auf end() (was ich mir auch einen Tick ineffizienter vorstelle), sondern man kann schreiben while( it.hasNext() ) { ... }
- Die Datenstrukturen sind IMHO unglücklich benannt (und zu wenige gibt es davon). Aus dem Namen std::map kann ich nicht erkennen, dass die map die Elemente sortiert. Ich könnte dahinter genauso gut eine Hashtabelle vermuten. TreeMap oder SortedMap wären IMHO bessere bezeichnen. Das selbe gilt für std::list.
-
Ich kann in der C++ stdlib aber keine großen Ähnlichkeiten dazu erkennen.
Na ja, C++ verfolgt wohl einen anderen Ansatz...
Aber Python kann man z.T. mit Java vergleichen, die lib finde ich auch klasse.Das Erkennen von EOF bei streams ist affig. Und nach jedem lesen muss man entweder auf Fehler prüfen oder schaltet Exceptions an, die dann auch bei EOF fliegen. Frägt man nach what(), um herauszufinden, wieso eine Datei nicht geöffnet werden konnte, steht dann was hilfreiches wie ios_base::failure da
Yup, das ist mir auch schon mehrmals übel aufgestossen, folgender Code ist eigentlich unsicher:
ifstreamf ifs("test.txt"); if (!ifs) return 1; while (ifs.good()) { /*blub*/ }
Hinterher weiß ich aber immer noch nicht, ob's jetzt ein eof war, irgendein fail oder ein bad!
Was ich auch ein bisschen unschön finde (eher kosmetischer Natur), ist die Kleinschreibung der Klassen.
-
Der C++0x Standard wird garnicht sooo wichtig sein, obwohl er schon ziemlich coole Features bekommen wird (Active und Future Objects werden ein neues Zeitalter einleiten). Interessanter wird eher der TR1 und TR2 von C++.
Also Future-Objects kenne ich schon aus anderen Sprachen. Hierbei muss es sich jedoch um etwas anders handeln, da es ohne lazy evaluation keinen Sinn macht. Hast du vielleicht einen Link?
-
Ich hatte mir damals den PDC-Vortrag von Herb Sutter per Video-Stream angesehn, da hatte er das alles angerissen. Hab im Netz seine Powerpoint-Präsi gefunden:
http://216.55.183.63/pdc2005/slides/TLN309_Sutter.pptHier noch der Boost-Mailingthread durch den ich überhaupt auf den Sutter-Vortrag aufmerksam wurde:
http://lists.boost.org/Archives/boost/2005/10/96080.phpHier das Video (dauert sehr lange, glaub mind. eine Stunde!):
http://microsoft.sitestream.com/PDC05/TLN/TLN309_files/Default.htm#nopreload=1&autostart=1
-
Welche Sprachen haben denn noch diese Active- und Future-Objekte? Würde mich schon sehr interessieren.
-
Future Objects sind doch nur Objekte, die asynchrone Methodenaufrufe unterstützen, oder?
Also es gibt viele Programmiersprachen die so etwas können - Auch wenn das ganze da systaktisch etwas anders geartet ist.
Erlang zum Beispiel (Gibt's schon seit zig Jahren).
Auch bei .NET kann man das bis zu einem gewissen Grad machen. Siehe Delegate.BeginInvoke und Co.
Auch viele Forschungssprachen unterstützen asynchrone Methoden. Comega von MS Research z.B. .
Das Ganze ist also eigentlich nichts wirklich Neues.
-
Artchi schrieb:
Welche Sprachen haben denn noch diese Active- und Future-Objekte? Würde mich schon sehr interessieren.
Um mal eins von unzählichen Beispielen für Futures zu bringine: http://www.ps.uni-sb.de/alice/manual/futures.html