>>> Let's run Python on Mobile

วันจันทร์, กันยายน 26, 2548

At home ,Let's run IronPython.

Guido van Rossum สร้างภาษา Python ขึ้นมาเมื่อประมาณปี1990
ภาษาPython นั้น เป็น Script Language ที่เรียบง่าย และสวยงาม แต่ก็ทำอะไรดีๆ น่าประทับใจได้หลายๆอย่าง
ประมาณปี1997 Jim Hugunin สร้าง Python อีกสายพันธุ์หนึ่งบน Java
รู้จักกันในนาม Jython (หรือ JPython)
Jython ทำให้สามารถเขียนโปรแกรมJava ได้ง่ายๆ สั้นๆ และสามารถ run ทดสอบcodeได้ใน InterActive Console (ไม่ต้องเสียเวลา compile หลายๆครั้ง)
จะเรียกGUIต่างๆของJava ไม่ว่าจะเป็น AWT ,Swing ก็เรียกขึ้นมาได้ง่ายๆ จาก InterActive Console

เมื่อ10วันก่อน ระหว่างที่ผมกำลังประทับใจ กับความสามารถต่างๆของ Jython
ก็ได้ทราบข่าวจากเพื่อนคนนึงว่า Jim Hugunin ย้ายไปร่วมงานกับ Microsoft ตั้งแต่ปีที่แล้ว
และก็เกิด Python อีกสายพันธุ์ขึ้นมา บน .NET ชื่อว่า IronPython
ผมอาจจะทราบข่าวล้าหลังคนอื่นตั้ง1ปี แต่ก็ทันพอดี IronPython ออก version ใหม่
version 0.9 ,0.91 ,0.92 ออกตามๆกันมา ในเวลาไล่เลี่ยกัน ช่วงกค.-กย.48
IronPython versionนี้ จำเป็นจะต้องrun บน .NET framework 2.0beta ขึ้นไป
ผมเสียเวลาอยู่พักหนึ่ง ถอด .NETframework1.1 ออก
ย้ายVisualStudio.NET2003(ซึ่งจำเป็นต้องย้ายตาม .NETframework1.1) ไปอยู่ harddisk ตัวอื่น
กว่าจะได้ลอง IronPython0.92 ก็เหนื่อย แต่ก็คุ้มที่ได้ลอง
และผมประทับใจกับ IronPython ขึ้นมาทันที

D/L ไฟล์ IronPython-0.9.2.zip ขนาดแค่ประมาณ 1/2MB
มีแนะนำวิธีใช้เพียงแค่ webpage 2หน้า FAQ.html และ Readme.html สั้นๆ
ที่เหลือ ก็ให้เราทดลอง และค้นๆดูวิธีใช้เอาเอง (ท้าทายความสามารถดีแท้ๆ)
เริ่มจากเรียก InterActive Console โดยคลิกที่ไฟล์ IronPythonConsole.exe
จะปรากฏ InterActive Console คล้ายๆCommandPrompt มีเครื่องหมาย >>>
ลองพิมพ์คำสั่ง
import sys
sys.LoadAssemblyByName("System.Windows.Forms")
import System.Windows.Forms.MessageBox
System.Windows.Forms.MessageBox.Show("Hello")


น่าสนใจจริงๆ codeแค่4บรรทัด เรียกใช้คำสั่งใน .NETframework
แสดง MessageBox มีคำว่า Hello ออกมา ง่ายดายอะไรอย่างนี้
ผมลองสร้างเป็น textไฟล์ชื่อ i01.py แล้วลากไปใส่ในไอคอนของ IronPythonConsole.exe
ได้ผลคล้ายๆกัน แต่คราวนี้ได้ไฟล์ i01.exe เพิ่มขึ้นมา
ไฟล์ i01.exe สามารถนำไปsave เก็บไว้ แล้วคลิกที่ไฟล์เพื่อ run โปรแกรมได้เลย
(แต่ต้องrunบน.NET framework 2.0beta ขึ้นไป และมีไฟล์ .dll 2ไฟล์ ของ IronPython อยู่ใกล้ๆ)
ลองเขียนโปรแกรมแบบ Windows Form มีปุ่มกด เรียก MessageBox ดูบ้าง

import sys
sys.LoadAssemblyByName("System.Windows.Forms")
from System.Windows.Forms import *

my_Form = Form(Text="Hello Test")
my_Form.StartPosition = FormStartPosition.CenterScreen
the_Button = Button(Text="Push Me")

def press_here(data, event):
    MessageBox.Show("Hello")

the_Button.Click += press_here

my_Form.Controls.Add(the_Button)
my_Form.ShowDialog()


ได้ผลดังรูปข้างล่าง น่าประทับใจจริงๆ
เขียนโปรแกรมแบบ.NET ไว้ใช้เองได้ง่ายๆ ได้ไฟล์ .exe ซึ่งทำงานได้รวดเร็ว
ได้หัดใช้ คำสั่งต่างๆ ของ Windows Form Programming
แต่คงยังพัฒนาโปรแกรมให้ใครใช้ไม่ได้ครับ
เพราะไม่รู้ว่า มีใครใช้ .NET framework 2.0beta กันบ้างหรือยัง