Koodijargonia
Julius February 24th, 2006
Koodattuani jo muutaman kuukauden Rubya melko aktiivisesti, päätin tökkiä kepillä jäätä, ja tutkia melko samanlaiseksi syntaksiltaan väitettyä Pythonia. Erot kielten välillä ovat melko kosmeettisia, mitä nyt Python-leirillä on parempi dokumentaatio ja Ruby-puolella tarvitsemani kirjastot ovat lisenssiltään vapaampia. Täytyy silti myöntää, että Pythonin tapa vaatia kunnon sisennys koodiin viehättää kovasti. Tällä hetkellä töitäni ajatellen Rubyn Windowsille saatavat kirjastot ja luokat tarjoavat enemmän. Saatuani jälleen Linuxin johonkin koneeseen, voisin kokeilla ensimmäistä kertaa koodata peliä Pythonilla, sen Linux-kirjastot kun ovat huomattavasti Rubyn vastaavia kattavampia.
Lopuksi muutama koodinpätkä, kuinka sama asia toteutetaan molemmissa kielissä:
Python:
from Tkinter import *
class App:
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.button = Button(frame, text="Quit", fg="red", command=frame.quit)
self.button.pack(side=LEFT)
self.hi_there = Button(frame, text="Hello", command=self.say_hi)
self.hi_there.pack(side=LEFT)
def say_hi(self):
print "hi there, everyone!"
root = Tk()
app = App(root)
root.mainloop()
Ruby:
require 'tk'
class App
def initialize(master)
frame = TkFrame.new(master)
frame.pack()
button = TkButton.new(frame) do
text "Quit"
fg "red"
command proc {exit}
pack("side"=>"left")
end
hi_there = TkButton.new(frame) do
text "Hello"
command proc {App.say_hi}
pack("side"=>"left")
end
end
def App.say_hi()
print "hi there, everyone!"
end
end
root = TkRoot.new()
app = App.new(root)
Tk.mainloop()

ei mulla muuta kuin että “from foo import *” on epäpythonmaista :)
Ja minä en osaa pätkääkään Pythonia, vielä…