Grails
วันก่อนเห็นบลอคของอาทเขียนเรื่องเกี่ยวกับ Netbeans 6.0 กับ Grails เลยลองไปนั่งอ่านดู Grails ก็เป็นกรอบสำหรับพัฒนาเว็บแอพพลิเคชันที่อิงมาจาก Ruby on Rails แต่ใช้ภาษา Groovy เป็นหลัก และทำงานบน Java Virtual Machine ลองอ่านหนังสือแนะนำการพัฒนาเว็บโดยใช้ Grails ดูแล้ว ก็ไม่ต่างจาก RoR หรือกรอบงานแบบเดียวกัน เช่น CakePHP แต่จุดเด่นของ Grails น่าจะอยู่ที่การใช้ JVM ให้สามารถใช้เครื่องมือ รวมทั้งไลบรารีต่างๆ ที่สร้างสำหรับ Java EE ได้เลย มีเครื่องมือให้ใช้เยอะพอดู น่าลองใช้ ที่ดูๆ อยู่เนื่องจากปี (การศึกษา) ที่แล้วพัฒนาระบบเก็บข้อมูลภายในสำหรับสถาบันฯ ด้วย CakePHP เว็บที่ทำขึ้นยังค่อนข้างสกปรกอยู่ ปีนี้อาจจะต้องปรับปรุงหรือพัฒนาเพิ่มเติม
ถ้าเปลี่ยนมาใช้ Grails แล้วสะดวกขึ้น หรือสามารถหาคนมาช่วยพัฒนาแทนได้ ไม่จำเป็นต้องทำเองทั้งหมด ก็น่าสนใจ ดูคร่าวๆ แล้ว เห็นว่า Grails มีโครงสร้างต่างๆ ที่ดีกว่า CakePHP เยอะ เพราะจุดขายของกรอบงานแบบนี้ คือ วิธีการที่เรียกว่า scaffolding ซึ่งทำให้สามารถสร้างเว็บเพื่อทำ CRUD (Create-Retrieve-Update-Delete) ได้ง่ายๆ แต่ก็เป็นปัญหาด้วยส่วนหนึ่ง เนื่องจากอาจจะไม่ได้ออกแบบมาให้ปรับแต่งได้ตามความต้องการของระบบ สุดท้ายเวลาต้องการอะไรเพิ่มเติมก็ต้องมาหาวิธีปรับแต่งเอง หรือเขียนเองทั้งหมด อย่าง RoR ก็ต้องมี StreamLine หรือ ActiveScaffold ออกมาเพื่อช่วยให้ทำงานได้ง่ายขึ้น ซึ่งส่วนนี้ดูเหมือนจะเป็นจุดเด่นของ Grails
อย่างไรก็ดี ปัญหาที่สำคัญของการใช้กรอบงานแบบนี้ คือ แนวความคิดในการพัฒนาโปรแกรมของนักพัฒนา ที่จะต้องก้าวข้ามเข้ามาอยู่ในกรอบ Object Oriented และ Model-View-Controller ผมรู้สึกว่านักศึกษาที่สอนอยู่ส่วนใหญ่ยังไม่สามารถข้ามมาได้ ส่วนใหญ่ยังติดอยู่กับ structured programming หวังว่าปีหน้าถ้าเปลี่ยนแนวคิดการพัฒนาโปรแกรมใหม่ ตั้งแต่วิชาแรกที่เริ่มเรียน เขาน่าจะเข้าใจได้ง่ายขึ้น
สุดท้ายจดลิงก์ไว้กันลืม
- Getting Started with Grails เป็น e-book แจกฟรี เขียนเข้าใจง่ายมาก
สอน OOP หรือ OOAD เร็วขึ้นดีไหมครับ?
ผมรู้สึก (ตั้งแต่สมัยเรียน) ว่าการเรียน Data Structure มันเหมือนเรียนแต่ Algo ที่จะสร้าง เรียนแล้วหลายๆ คนมองไม่ออกว่าเรียนไปเพื่ออะไร (เพราะตอนนั้นอาจจะไม่ได้เรียน Data Structure แบบ OOP มั้ง) แล้วมันจะเอาไอ้ Function ที่ลอยๆ พวกนี้ไปใช้อย่างไร
อีกจุดหนึ่ง ผมมองว่าวิชาปีหนึ่งเทอมสองน่าจะเพิ่มประเด็นของ OOP เข้าไปนะครับ รู้สึกว่าเรียน Algo อย่างเดียว มันอาจจะยิ่งใหญ่เกินไปสำหรับนักศึกษาหลายๆ คน (เลยทำให้แขยงหนีไปภาคอื่นเลย)
ช่วงนี้กำลังปรับหลักสูตรกันใหม่ เรื่มคุยๆ กันเรื่องนี้เยอะเหมือนกัน ยิ่งมีการปรับแยก IT/CS ออกจาก MT/EM ตั้งแต่ปีหนึ่ง ก็อาจจะทำให้สามารถปรับวิชาได้มากขึ้นอีก อาจจะได้เห็นอะไรใหม่ๆ ในปีหน้าก็ได้