Guerilla Projektmanagement

IT Projekte & Agilität & Zeuch

Mein Projekt: Ruby On Rails

Ruby on Rails ist ein Framework welches auf der objektorientierten Sprache Ruby (und php) basiert. Die Installation unter ubuntu-Linux war ziemlich simpel: apt-get install ruby rails
Bei der Anbindung von Apache2 an ruby bin ich ein wenig über die Rechtevergabe gestolpert. Aber im Prinzip klappt das auch. Da rails aber seinen eigenen in ruby geschriebenen Web-Server mitbringt, braucht man das eh‘ nicht zum Spielen.

Erste Erfahrungen mit Ruby
Sich eine neue Programmiersprache anzuschauen ist – finde ich zumindest – meistens nicht sonderlich aufregend. Die Zahl der möglichen Konzepte ist nun mal begrenzt und die meisten Sachen hat man irgendwo schon mal gesehen. Ruby Fans weisen darauf hin, dass alles Objekte sind. So ist die 12 ein Objekt der Klasse Integer und kennt z.B., die Methode to_s welche die Zahl 12 in den String „12“ umwandelt: 12.to_s. Oder 12.upto(100) zählt von 12 bis 100. Schön.
Es gibt jedoch andere Sprachen, die dies ebenfalls so weit wie möglich durchziehen.

Prinzipiell ist es meistens Geschmackssache, welche Programmiersprache einem persönlich gefällt. Ich finde z.B, BETA immer noch super.

Besonderheit von Ruby:
Eine Programmiersprache muss einen Spagat machen. Auf der einen Seite soll ein Experte so schnell wie möglich entwickeln können. Das führt z.B. zu Sprachen wie APL – Sourcecode den unbeteiligte Beobachter zu 100% nicht verstehen … Auf der anderen Seite sollte der Code gut lesbar sein um Wartung und Entwicklung im Team zu vereinfachen. Und schließlich hat jeder Entwickler unterschiedliche Herangehensweisen an ein Problem. Gerade zum Beispiel Perl ist dafür berühmt, dass 4 Entwickler ein Problem auf 6 verschiedene Arten mit Perl lösen würden.

Ruby versucht es scheinbar allen Recht zu machen. Die Syntax ist, na sagen wir, sehr flexibel.
Eine Schleife, die von 0 bis 9 zählt, kann so aussehen:
10.times do
|i|
puts i
end

Es geht aber auch so:
10.times { |i| puts i }

Oder so:
10.times {
|i|;
puts i;
}

Ich bin mir noch nicht sicher, was ich davon halten soll. Klar, so mich als einzelnen Hacker ist das nett. Kann ich doch die Syntax so schreiben, wie ich es schöner finde. Für die Arbeit im Team ist es aber u.U. nicht so schlau.

Wie auch immer, eigentlich ist die Sprache ganz nett. Hier ein Beispiel (Primzahlensieb):

# Parameter n: wie hoch wollen wir Primzahlen finde
n = 1000
# Liste mit allen 2-n aufbauen Zahlen aufbauen
a = (2..n).to_a
# Jetzt das Sieb: Für alle Zahlen von 2 bis zur Wurzel von n
# Entfernen wir die Vielfachen der Zahl aus der Liste, da
# diese keine Primzahlen sind
(2..Math.sqrt(n)).each{|n|
a = a.delete_if{|i| i % n == 0 and i > n }
}
# Ausgabe
a.each {|n|
puts „prim:“+n.to_s
}

Hübsch kurz und trotzdem noch einigermaßen verständlich (i%n gibt den Rest der Division von i/n an. Ist der Rest 0 und i größer als n, ist i also ein ganzzahliges Vielfaches von n – delete_if löscht alles aus der Liste welches dem Ausdruck entspricht).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert