Code-Lesbarkeit am Beispiel Ruby | 19. Januar 2007 um 18:23 Uhr / Programming
Also eigentlich ist Ruby ja schon eine sehr coole Sprache und ich finde es auch wirklich leserlich. Gestern zum Beispiel hatten wir so einen Vergleich:
# Ruby:
5.times { print "Ruby is cool!" }
# PHP:
$i = 5; while($i--) { echo "PHP is cool!"; }
Wenn man nun des Englischen mächtig ist kann man sich allein durch das laut Vorlesen vorstellen was denn der Code macht, zumindest bei Ruby. Beim PHP Beispiel muss man da schon einiges wissen, dass while bei 0 abbricht, was das mit dem $i-- auf sich hat, usw.
Aber je tiefer man da in das ganze eindringt desto unleserlicher wird der Code, naja zumindest bei mir und vor allem wenn ich es ausnutzen möchte dass man mit ruby mit sehr wenig code sehr viel erreichen kann. Dann nämlich kommen Sachen wie diese hier dabei raus, und ohne einen Kommentar wäre man wohl ziemlich aufgeschmissen:
data[team][:states][24] = (23..25).map { |z|
@all_results.get_by_state(game_id, data[team][:id], z)
}.inject { |s,v| s + v } Kommentare
Die Kommentare sind für diesen Eintrag geschlossen.




abonnieren.
Martin schrieb am 20.01.2007
In dem PHP-Beispiel müsste es aber 5 sein. Oder 6, wenn man --$i statt $i-- verwendet.
Rolf aus Karlsruhe schrieb am 20.01.2007
Die Frage der Lesbarkeit ist mit Sicherheit nicht daran gebunden, welche Programmiersprache benutzt wird.
Kommentare, Einrückungen usw., das geht mit jeder Programmiersprache.
SpaghettiCode zu schreiben natürlich auch ;-)
--roro
Jeena Paradies aus Varberg schrieb am 21.01.2007
Ah stimmt Martin, ich habe das mal geändert, danke.
Sven Rautenberg schrieb am 21.01.2007
Ich denke, der erste Vergleich zwischen Ruby und PHP hinkt schon.
Wer wird denn auf die Idee kommen, in PHP eine while-Schleife mit dekrementiertem Argument zu benutzen, um einen Text exakt 5 Mal auszugeben?
for ($i=1; $i<=5; $i++) {echo "PHP ist cooler!";}Zack, auch eine Zeile, exakt identisches Ergebnis, und viel selbsterklärender.
Wie du ja schön selbst bewiesen hast, kann man im Obfuscation Contest sowohl mit PHP als auch mit Ruby antreten.
einbecker schrieb am 21.01.2007
und
for ($i=1; $i<=5; $i++) {echo "PHP ist cooler!";}ist "viel selbsterklärender" als
5.times { print "Ruby is cool!" }oder
?
Siechfred schrieb am 22.01.2007
Da kann ich über:
<sing>
Hose runter, Schwanzvergleich,
die Stimmung kocht gleich über.
Wir packen uns're Rohre aus
und messen das Kaliber.
</sing>
Tim schrieb am 26.01.2007
clynx schrieb am 26.01.2007
Tim schrieb am 26.01.2007
clynx schrieb am 26.01.2007
alert( Array(6).join("selber!\n") );Jeena Paradies aus Varberg schrieb am 26.01.2007
Na wenn wir schon beim obskurem anstatt leserlichem sind dann habe ich hier noch ein Ruby Beispiel:
Siechfred schrieb am 29.01.2007
Obskur? In Perl ging das schon, da rannte Ruby noch mit der Trommel um den Christbaum:
Ansonsten siehe hier ;)
Dominik aus Kassel schrieb am 19.02.2007
jaja :)