[linux-l] Ocml vs. Java
Ivan Villanueva
iv at artificialidea.com
Di Sep 20 17:35:13 CEST 2005
Hallo Oliver,
ich kenne nur Java, aber ich interessiere mich für Spracheigenschaften.
On Tue, Sep 20, 2005 at 02:14:07AM +0200, Oliver Bandel wrote:
[über Ocaml]
> ...aber OK, kurz und knapp:
> - funktional
Java auch mit Interfaces (ohne pointers) aber sehr "verbose"
> - imperativ
> - objekt-orientiert
Java auch
> - mächtiges Modulsystem (mit Funktoren (Funktionen über Module :)) !)
Was ist das ? Wofür ist es gut ?
> - rigides Typsystem; type-inference, compile-time checked, polymorphic
> - gut sortierte Bibliothek
Java auch. Kann man mehr "compile-time checks" machen als Java macht ?
> - pattern matching (im Sinne von Haskell, nicht im Sinne von Perl)
Ist es ähnlich als in Java ?
if (symbol.matches("([a-z]|[A-Z]|[0-9]|&|,|\\.|-|_)+")==false) {
> - performanter Compiler
> - performantes Compilat (und trotzdem Garbage Collection)
Besser als gcj ?
> - interaktives Toplevel (Interpreter-like)
Es gibt auch so etwas für Java
> - Bytecode-Compiler
Java auch
> - Native-Code-Compiler für sehr viele Plattformen
Java für manche
> - Garbage Collector (und dennoch sauschnell)
Schon mit Java verglichen ?
> - keine Pointer, keine Casts
Java hat auch keine Pointer, Casts sehr wenig seid Java 5
> - array/string boundary checks
Java auch
> - ocamllex/ocamlyacc
javacc habe ich vor kurz eingesetzt. Ein Kinderspiel.
> - camlp4 ---> Syntax-Extensions
Was ist das ? Wofür ist es gut ? Hat es Ähnlichkeiten mit Metadata (Annotations)
in Java 5 ?
> - Debugger kann vorwärts und rückwärts arbeiten
Keine Ahnung ob es das für Java gibt, aber bestimmt.
> - einfache Einbindung von C-Code
In Java wurde vereinfacht, aber ich weiß nicht wie einfach das ist mit z.B.
gcj
> ..äääh, hab' ich alles?
Ich nenne ein paar andere Sachen in Java, die mir besonders gefallen:
- 1000 Tools, z.B. junit, ant, umlgraph
- Wunderbare Dokumentation
- Sehr viel open source code. Vor kurz habe ich sogar 3 Open Source Projekte
gefunden, die etwas in Propositionale Logik gemacht haben.
- Sehr einfach zu lernen und lesen: mir ist es lieber zu schreiben:
name.charAt(5)
als Gerogryphen wie z.B.: $n{5}
- Objektorientierte Programmierung + Entwurfsmustern ist sehr mächtig
> Compiler, der mir wegen der Typprüfung immer auf die Finger haut, ziemlich
> nervig.
> Aber mittlerweile will ich das nicht mehr missen!
> Das hilft so oft, Fehler schon sehr früh ausfindig zu machen.
>
> Und das ist eine absolute Arbeitserleichterung.
> Verkürzt die Debugging-Zeiten radikal. :)
Ich stimme total zu für Java
Iván
Mehr Informationen über die Mailingliste linux-l