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

Oliver Bandel oliver at first.in-berlin.de
Di Aug 22 20:10:55 CEST 2006


On Tue, Aug 22, 2006 at 11:54:54AM +0200, Ivan F. Villanueva B. wrote:
> Am Di, Aug 22, 2006 01:16:54 +0200, Volker Grabsch schrieb:
> > On Mon, Aug 21, 2006 at 01:48:18PM +0200, Oliver Bandel wrote:
> > > seit kurzem schaue ich mir Ruby an.
> > > 
> > > Echt coole Sprache.
> > > Da kann man sich das mit dem OO ja doch wieder angewöhnen ;-)
> > 
> > Ja, die Syntax sieht schön aus.
> > (im Vergleich zu z.B. Ocaml oder Python, und erst recht im
> > Vergleich zu C/C++/Java ;-))
> > 
> > Aber ich persönlich finde die Sprache nicht gut designt.
> 
> Da gerade in diesem Thread über Sprachen diskutiert wird, möchte ich fragen, was
> die Multi-Linguale hier über D [1] denken.

Tja, bisher denke ich dazu nochg nicht sehr viel,
da ich damit noch nix gemacht habe.

Habe bisher darüber nur gelesen, und das ist auch schon lange, lange her.


> 
> C hat mir nie gefallen. Gute kritische Artikeln gibt es natürlich in [2].

Aber Java?
Das ist doch letztlich auch ein Ableger von C...

Aber D ist doch auch ein C-Ableger.

> 
> Verglichen mit anderen Sprachen scheint D schneller, z.B [3] [4], und die
> Syntax sieht angenehm aus, nicht wie in Java, wo man müde ist, nachdem man ganz
> viele Zeile für ganz wenig getippt hat (allerdings musst man ganz wenig
> Debuggen)

Verglichen mit allen anderen Sprachen ist es mit handoptimiertem Assembler 
sicherlich möglich, die schnellsten Lösungen zu bekommen.

Geht es Dir Vorrangig um Geschwindigkeit, nimm Assembler ;-)

Ich nehme gerne Hochsprachen, da die einem erlauben,
mit wenigen Zeilen viel zu erreichen. Dafür nehme ich,
wenn es die Anwendung erlaubt, auch Performance-Verluste in Kauf.
Aber die sollten sich immer noch im Rahmen bewegen, bzw.
man sollte da ggf. auch noch handoptimieren können, wenn der Compiler
oder Interpreter doch mal etwas lahme Ergebnisse hervor bringt.

Welche Sprache man auswählt, hängt davon ab, was man machen will.

Du hattest mal erwähnt, Du magst KI - sieht man ja auch auf Deinen
Seiten (artificialidea).
Eine Reihe von Leuten der KI arbeiten mit OCaml. Da hat man sehr
hohe Abstraktionsmöglichkeiten und dennoch flotten Code.

Kann ich also dringend anraten, das mal anzuschauen.

Als OCaml entworfen wurde, war bei Xavier Leroy der Wunsch,
daß es mit der Performance auf jeden Fall maximal 1/2 von C
anbietet. Bei dieser Zielsetzung ist es sogar noch wesentlich besser,
von manchen seltenen Fällen abgesehen.

Frage also an Dich: WAS willst Du damit machen?!
                    WAS erwartest Du von einer Programmiersprache?



Wenn Du das nicht genau weisst, kannst Du ewig lange Sprachen ausprobieren,
denn es gibt so extrem viele Programmiersprachen und ständig kommen neue hinzu.

Um eine Sprache zu finden, die Dir liegt müsstest Du also ungefähr wissen,
nach was Du suchst, oder was Du programmieren willst, oder was Du auf garkeinen
Fall haben magst.

Nach wie vor kann ich grundsätzlich OCaml empfehlen, da es aus vielerlei
Perspektiven IMHO die ultimative Sprache ist (besonders, wenn man beachtet,
welche vielen Möglichkeiten es bietet, da es eine Multiparadigmen-Sprache ist).

Daß ich nun Ruby lerne (und es sogar als Sprache recht interessant finde)
heisst keinesfalls, daß ich es OCaml vorziehen würde, wenn ich mich entscheiden
müsste zwischen den beiden Sprachen.
Vielleicht kommt auch noch Python mal dran, wenn mir der Sinn danach steht;
LISP steht auch schon länger auf der Warteliste, aber nun ist halt Ruby angesagt.

Empfehlen kann ich nachwievor OCaml.

Gruß,
   Oliver

P.S.: Auch manche Scheme-Implemetationen sind extrem schnell;
      die würde ich wohl doch eher empfehlen, als D.
      Denn da hast Du eine FPL, manche Scheme-Implementationen
      haben auch OO.
      Ich bin zwar kein D-Spezi, wage aber zu bezweifeln, daß man da
      HOFs hat. Aber wenn Du eine Klammern-Allergie hast, wird
      Scheme nicht das richtige für Dich sein ;-)



Mehr Informationen über die Mailingliste linux-l