[linux-l] Re: Ruby: sehr cool, aber laaaahm... wie geht's schneller?! - D?

Steffen Dettmer steffen at dett.de
Do Aug 24 00:17:20 CEST 2006


* David Hansen wrote on Wed, Aug 23, 2006 at 23:06 +0200:
> On Wed, 23 Aug 2006 16:30:11 +0200 Ivan F. Villanueva B. wrote:
> 
> >     - Das Programm soll schnell laufen und dennoch einfach zu programmieren
>                           ^^^^^^^
> >       sein. z.B. Garbage Collection
> >
> > Java und Groovy sind die, die ich deswegen lerne.
>            ^^^^^^
> 
> Ein Witz?

lol

> "Einfach zu programmieren" und Java passt für mich auch
> nicht recht zusammen, 

Ich finde:

    - Der Compiler soll meine Fehler entdecken können, da ich viele
      mache und ungern in runtime nach Fehlern suche. Ich mag z.B. die
      Generics von Java 1.5
    - Das Programm soll schnell laufen und dennoch einfach zu
      programmieren sein. z.B. Garbage Collection                                        

sprechen gegen Java. Die Generics sind IMHO nur einer der üblichen
Java-Hacks (im Vergleich zu C++ sieht Java aber ja eh immer alt aus).
Schnell laufen auch. Zwangs-Garbage-Collection wie in Java find ich auch
doof, weil man den RAII-geht-nicht-Preis bezahlen muss (überhaupt, es
gehen dann keine const stack/scope objects und überhaupt nix). 

Wenn RAII geht, kann man GC implementieren, aber nicht umgekehrt. Damit
ist RAII für mich das stärkere Konzept.

Ich würde der Wunschliste noch hinzufügen:

     - Paradigmen imperativ/prozedural, objektorientiert, deklarativ,
       logisch, nebenläufig, meta-programming

am besten alle. logisch und nebenläufig kann man über Bibliotheken
abbilden (eingeschränkt jedenfalls), wenn man brauchbare deklarative
Syntax hat. In C++ ist mir das z.B. noch zu wenig. Mit const und so kann
man sicher ne Menge machen, auch boost hilft sicher viel (kenn ich
leider noch nicht). meta-programming in C++ mag mit boost bissel was
können, aber paar Sachen gehen mit preprocessor und source code
generation einfach besser. Das müsste die "Idealsprache" aber alles
können (wie auch immer das aussehen könnte).

In Java geht nur objektorientiert, macht mir z.B. wenig Spass. Ich
möchte Softwaren bauen können, die man kaum falsch benutzen /kann/
(das geht schon los mit private operator=()!).

Nun, und schöne Standard-Libs sind wichtig, finde ich. Die STL von C++
macht Spass, finde ich: es ist elegant und überraschend leistungsfähig.
Find ich Klasse: man braucht vielleicht eine Weile, aber dann kann man
was mit fünf Zeilen machen und man sieht, dass es richtig ist. Fetzt.
Das ist wieder so ein Java-Nachteil, wo sich lieblos designte APIs in
jeder Version ändern (von Swing mal abgesehen). Ich möchte Code
schreiben, der in 10 Jahren oder 50 noch kompiliert. Gut, das geht auch
nicht mit C++, da hat man in der Vergangenheit gepfuscht. Mal hoffen,
dass es besser wird. Die STL jedenfalls blieb (bis auf das initiale
Fehlen des namespace std) relativ stabil, fand ich. Zu Java kann ich
hier nix sagen. Perl (und Java) haben dynamic (reflection und so), dass
fehlt bei C++ manchmal, aber das führt ja auch nur zu Laufzeitfehlern
(mag das daher eh nicht so).

Am Ende muss man die Sprache halt nach der Anforderung auswählen.

> aber die Diskussion gab's ja schon öfter.

Ja, stimmt, und ich bin wieder darauf angesprungen :-)

oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.




Mehr Informationen über die Mailingliste linux-l