Blick in die Kristallkugel
-
Stroustrup: 'Die C++ Programmiersprache', 4. Auflage, Seite 11, Absatz 4 schrieb:
Frühe Versionen der Sprache, allgemein als >>C with Classes<< bekannt, sind seit 1980 in Gebrauch. Die Sprache wurde ursprünglich entwickelt, weil ich einige ereignisgesteuerte Simulationen schreiben wollte, wofür Simula67 bis auf Effizienzbetrachtungen ideal gewesen wäre. >>C with Classes<< wurde in wichtigen Projekten eingesetzt, in denen die Möglichkeiten zum Schreiben von Programmen, die minimal Zeit und Speicherplatz benötigen, gründlich getestet wurden. Es fehlten jedoch das Überladen von Operatoren, Referenzen, virtuelle Funktionen, Templates, Ausnahmen und viele weitere Details. Die erste Nutzung von C++ außerhalb einer Forschungseinrichtung begann im Juli 1983.
Vielleicht war es nicht so ganz geplant, aber erstmal wurde es so umgesetzt, alles weitere war im ursprünglichen Konzept aber nicht enthalten, so, wie ich das verstanden habe.
-
Artchi schrieb:
Was ist denn mit enum in Java? Was macht es denn ungültig?
enum ist doch in Java5.0 ganz neu und dadurch ist doch nichts raus geflogen. Ich habe jedenfalls nichts gefunden, was rausgeflogen ist. Man kann mit dem neuen JDK auch alte Projekte compilieren. Kein Problem.
Es entsteht ein Problem, wenn du "enum" als Bezeichner in altem Code verwendet hast. Du kannst dann nicht "mit den neuen Sprachfeatures" kompilieren, weil enum jetzt ein Schlüsselwort ist und somit nicht mehr für Bezeichner zur Verfügung steht. Das ist übrigens auch ein Grund, warum das neue foreach so aussieht:
for(String a : b)
Wenn man ein "foreach(String a in b)" daraus gemacht hätte, hätte man 2 neue Schlüsselwörter benötigt, die sich zumindest im Fall von "in" wohl gar nicht mit altem Code vertragen hätten.
-
Cacheline schrieb:
Gibt es eigentlich einen Java-Standard ?
Nicht bei einer Standardisierungsorganisation wie der ISO oder der ECMA. Aber natürlich gibt es eine Java-Spezifikation, in der die Sprache festgelegt ist:
http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html
Die Standardbibliothek wird wohl durch die Referenzimplementierung von Sun vorgegeben, die wiederum ein Resultat das "Java Community Process" ist, in dem beispielsweise neue APIs festgelegt werden usw.:
http://www.jcp.org/en/home/index
Wenn du dir mal die Mitglieder des JCP anguckst, wirst du feststellen, dass nicht nur Sun an der Entwicklung von Java beteiligt ist, sondern letztendlich die ganze Industrie, die in dem Bereich tätig ist, wenn man von MS absieht. Entscheidungen werden im JCP demokratisch durch ein Gremium getroffen, Sun hat da auch nur eine Stimme.
Um eine Implementierung von Java als Java bezeichnen zu dürfen, muss man AFAIK Kompatibilitätstests bestehen, die Sun im JCK (Java Compatibility Kit) zur Verfügung stellt. Das Problem daran war früher, dass eine Lizenz des JCK etwa 100k$ oder so kostet. Das ist wohl ein Grund, warum es keine vernünftigen FOSS-Javaimplementierungen gibt. AFAIK gibt es da aber inzwischen Extraregelungen für FOSS-Produkte, durch die so ein Test für diese auch kostenlos möglich ist. Ob es dadurch mehr FOSS-Javaimplementierungen geben wird, bleibt aber abzuwarten. Ich vermute eher, dass in dem Bereich deshalb so wenig gemacht wird, weil Java für die meisten Leute eh offen genug ist und deshalb nur wenige Leute genug FOSS-Idealismus haben, um da selbst etwas auf die Beine zu stellen.
Hmmm... bin ich vom Thema abgekommen? ...egal.
-
Artchi schrieb:
Wer eine Java VM oder Java Compiler entwickelt, und ein Java-Logo drauf pappen will, muß es bei Sun zertifizieren lassen... natürlich gegen Geld. Deshalb heißen auch diese ganzen inoffiziellen Java-implementierungen Cafe oder so damit es ja keinen Ärger mit Sun gibt.
Die würden auch dann nich den Namen Java verwenden dürfen, wenn sie so viel Geld wie MS hätten. Das Problem ist, dass die einfach inkompatibel sind bzw. nicht das leisten, was für Java vorgesehen ist. :p
-
Nein. C++0x wird C++98 erweitern. Nix untermenge oder so. <<
Was ? C++'98 enthält C'89 als Untermenge und C++0x wird voraussichtlich C++'98
als Untermenge enthalten.
-
mantiz schrieb:
Dieser ganze .NET-Hype wird wohl noch zunehmen, aber man hat doch schon bei Java gesehen, dass die VM (.NET-Framework) und die "Abhängigkeit" von einer Firma (hier Sun, bei .NET Mircosoft) doch eher bremsen, anstatt die Verbreitung voranzutreiben. Klar, im Anwendungsbereich macht das evtl. noch Sinn, aber auf kleineren Systemen?
Hä? Ist Java auf Handys etwa kein relevantes Thema? Oder verstehe ich dich hier falsch? Es gibt ja sogar JStamp und ähnliches.
-
Ähm, hab' mich wohl unglücklich ausgedrückt. Ich meinte .NET bzgl. der kleineren Systeme. Java auf Handys ist mir sehr wohl bekannt.