@leonidas:
print ist in Ruby eine methode, ohne dass man es merkt. dazu muss man allerdings das mit dem toplevel-objekt verstehen, das kann ich jetzt nicht noch ausführen (ist ja auch kein Ruby-forum

)
also __len__ mag ich nach wie vor nicht, auch mit historischen gründen

lassen wir das.
@Dookie: newsytle und oldstyle-klassen, die ich unterschiedlich benutzen muss? urks...klingt kompliziert

readonly-attribute und virtuelle methoden gehen in Ruby auch, mit attr_reader und method_missing.
@milan: ja du darfst klammern benutzen, musst du ja manchmal. seit Haskell benutze ich sie eigentlich nie, solange es sich vermeiden lässt.
Das ist ein Spezialfall
schade. spezialfall bedeutet für mich, dass ich ihn speziell behandeln muss, das schränkt meine freiheit ein und steigert den lern- und schreibaufwand.
aber ohne spezialfälle kommt wohl keine sprache aus.
in Ruby gibt methods einfach ein array mit methodennamen zurück.
Da macht es aber wirklich Sinn, denn del hat mehr als eine Bedeutung. Du kannst damit sowohl Referenzen auf Variablen vernichten als auch einzelne Elemente in Listen oder Dictionarys löschen.
del hat verschiedene bedeutungen, und deshalb ist es keine methode? :kopfkratz: naja, da kommen wir wohl nicht weiter.
@mawe: list comprehensions in Ruby? die antwort sind codeblöcke:
Code: Alles auswählen
p (1..16).select { |x| x % 2 == 0 } #-> [2, 4, 6, 8, 10, 12, 14, 16]
p ('A'..'E').map { |x| x * 3 } #-> ["AAA", "BBB", "CCC", "DDD", "EEE"]
beim zweiten hab ich die Python-entsprechung noch gar nicht gefunden...
---
ich will hier niemanden zu Ruby konvertieren oder Python schlecht machen. mir persönlich kommen nur viele dinge seltsam vor, und ich finde Ruby's antworten auf viele fragen einfach besser und logischer.
beide sprachen sind einerseits viel weiter entwickelt als diese öden mainstreamsprachen, andererseits auch weit davon entfernt, perfekt zu sein. beide haben voneinander gelernt, und diskussionen über die unterschiede führen hoffentlich zu noch besseren sprachen.
schade nur, dass sich einige konzepte so radikal auschließen: whitespace-anarchie vs. indent-pflicht, implizite methoden vs. explizites self, optionale vs. leere klammern...
Ruby mit Python zu mischen scheint mir unmöglich.
wer noch ein paar MB frei hat, sollte sich Ruby trotzdem installieren, und wenn man es nur für einzeiler einsetzt (statt Perl

)
Python wird jedenfalls auf meinem system bleiben, leider weiß ich im moment nicht, was ich drin programmieren sollte...