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()

Kuvakaappaus ohjelmasta

2 Responses to “Koodijargonia”

  1. psi-on 24 Feb 2006 at 21:40

    ei mulla muuta kuin että “from foo import *” on epäpythonmaista :)

  2. Juliuson 25 Feb 2006 at 1:58

    Ja minä en osaa pätkääkään Pythonia, vielä…

Comments RSS

Leave a Reply