Friday, December 01, 2006

ทดลอง Squeak

ช่วงนี้มีเวลาว่าง ก็เลยลองเล่น Seaside
ซึ่งเป็น web application framework บน smalltalk
,ตัว smalltalk ที่ใช้ก็คือ Squeak

หลังจากทดลองพัฒนา program บน squeak ดู
ก็พบว่า มันให้ความรู้สึกแบบเดียวกับ emacs
นั่นคือความรู้สึก powerful
ที่เกิดจากความสามารถในการ extend สภาพแวดล้อมได้ทันที
ไม่ต้องเข้า cycle แก้ไข -> ปิดโปรแกรม -> เปิดโปรแกรม

ที่เป็นเช่นนี้เพราะ squeak ไม่แยกความแตกต่างระหว่าง
program code กับ program state
ทุกอย่างผสม และทำงานอยู่บน virtual machine เดียวกัน
การ save snapshot ลง image file
นอกจากจะ save program code แล้ว
พวก program state ต่างๆ เช่น undo history
ก็เก็บลง image file ไปด้วย
ทำให้เราสามารถทำแบบนี้ได้ เช่น
วันนี้ save บน mac, พรุ่งนี้เอาไปเปิดบน linux
ไม่พอใจอะไรบางอย่าง เลบสั่ง redo สิ่งที่ทำไปเมื่อวาน

ในช่วงหลังๆที่ concept virtualize เริ่มเป็นที่นิยม
เราเริ่มจะได้ยินคนพูดถึงประเด็น
ของการเก็บสภาพแวดล้อมการพัฒนาลงใน image file
(อาจจะใช้ vmware หรือ xen)
พอจะเขียนโปรแกรม ก็เปิด image file ขึ้นมา
เขียนๆๆๆ จบวันก็ save image file
วันถัดไป พอเปิดขึ้นมาสภาพแวดล้อมทุกอย่างจะเหมือนเมื่อวานหมด ทำงานต่อได้ทันที
หรือวันดีคืนดี อยากย้ายเครื่อง ก็เอาไปแต่ image file
ไม่ต้องไปนั่ง setup เครื่องให้ยุ่งยาก
หรือถ้ามีพนักงานใหม่เข้ามา ก็ copy image file ไปให้
จะได้เริ่มทำงานได้เลย

กลับมาที่ squeak ต่อ
ปัญหาที่พบใน squeak ก็คือเรื่อง version conflict ของ package ต่างๆ
เช่นผมอยากได้ feature x, y แล้วก็ z
โดย x ทำงานได้กับ y version 2.0
แต่ก็ไปติดตรง z จะทำงานได้ต่อเมื่อ y เป็น version 3.0 เท่านั้น
เกิดอาการรักพี่เสียดายน้องขึ้นมาทันที

เล่นมา 2 วัน
ได้ bad knowhow มาอื้อเลย

Related link from Roti

5 comments:

roofimon said...

อ่านเรื่อง small talk ขอนอกเรื่องพูดถึงภาษาการเขียนโปรแกรมผมว่าบ้านเราค่อนข้าง ไม่ใช่สิ โลกแคบเลยนะครับคือผมอ่านบทความพี่แล้วความรู้สึกเหมือนตอน
เรียนกับ Timothy A. Budd เรื่อง Object Oriented Programming อ่ะครับคือแกจะสอนเชิงเปรียบเทียบว่าปัญหาเดียวกันเนี่ยแต่แก้
ด้วยภาษาที่ต่างกัน แต่ละภาษาก็จะมีข้อได้เปรียบของตัวเอง ทำให้
มุมมองกว้างออกไป พี่นี่ 360 องศาเลย สรุปเหมือนเราตามกระแสกันเกินไปหรือป่าวก็ไม่รู้เพราะเมื่อก่อนผมเคยฝังใจว่า
จาวา คือภาษาที่ดีที่สุดในโลกเลย ภาษาอื่นเชย ไม่ดี จนบางครั้งพะวงว่าจะต้องแก้ปัญหาให้ได้ด้วยจาวา จนวิธีคิดเสียไปหมด
แต่ตอนนี้เหมือนอยากกลับไปเรียน an introduction to programming ใหม่ครับแต่เอาเชิงเปรียบเทียบนะ

พล่ามจังผม สรุปพี่เป็นคนมันส์มากกกกครับ :-)
http://web.engr.oregonstate.edu/~budd/

vee said...

BTD3 พูดเรื่อง Squeak มั้ยครับ :-D
ไม่รู้ว่าคุณ pok ลองเรื่องภาษาไทยบ้างหรือเปล่า?
ผมนี่แอบหวังอยู่ว่า Squeak จะไปเจอตลาดโรงเรียนได้บ้าง แต่ใช้ภาษาไทยไม่ได้ก็ไม่เป็นไรไปเจาะโรงเรียนอินเตอร์พลางๆไปก่อนได้ lol

jittat said...

ผมกำลังลองเล่นอยู่พอดีเลยครับ
กำลังมึน และตื่นตะลึง (อีกแล้ว) ว่าระบบการเขียนโปรแกรมมันอะไรจะขนาดนี้ (คิดมาตั้งแต่ปี 1980 ให้ตายเหอะ)

จะสอนอีกสองสามอาทิตย์แล้ว ยังไม่ได้ลองเขียนอะไรเป็นเรื่องเป็นราวเลย

แต่สีสวยดีจัง!!!
(โรงเรียนน่าจะชอบนะ)

polawat phetra said...

roof: เมื่อก่อนผมก็ขอบ java มากเหมือนกัน. แต่ตอนนี้ตาสว่างแล้ว :)
vee: พูดเรื่อง seaside ก็ไม่เลวนะ กำลังหา app เจ่งๆ ทำ prototype ดู
อาจารย์มะนาว: ผมไป sit-in ได้เปล่าครับ

jittat said...

sit-in คงไม่ไหวมั้งครับ อยากจะเชิญมาสอนเลยต่างหากครับ :)