[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