ในช่วงสองสามปีที่ผ่านมานั้น มีหลาย ๆ อย่างที่น่าสนใจ
เกิดขึ้นในโลกของ JVM (Java Virtual Machine) ไม่ใช่ Java นะ
ทั้งภาษาโปรแกรม และ framework ใหม่ ๆ
ซึ่งทำให้การพัฒนาระบบงานบน JVM ง่าย และ เพิ่ม productivity สูงมาก
หนึ่งในนั้นคือกลุ่มของ Web framework
ซึ่งได้รับแรงบันดาลใจมาจาก Sinatra
ซึ่งทำให้การพัฒนา web application บน JVM ง่าย และ เร็วขึ้น
มาดูกันว่ามี framework อะไรที่น่าสนใจบ้าง ?
1. Spark ไม่ใช่ Apache Spark นะครับ
เป็น framework ขนาดเล็กมาก ๆ
และใน Spark 2.0 สนับสนุน Java 8 แบบเต็ม ๆ อีกด้วย
ทำให้สะดวกต่อการพัฒนาระบบ
ตัวอย่าง code ก็ต้อง Hello World กันสิ
ทำการ run และเปิด web browser ไปที่ http://localhost:4567/hello
แสดงผลการทำงานดังรูป
จากตัวอย่างเราเพียงทำการ run Web server ผ่าน main method ได้
เหมือนการทำงานของ Jetty เลย
แต่ก็ยังสามารถทำการ configuration ด้วย web.xml ได้
และสามารถ export ไปเป็น WAR file ได้เช่นเดิม
ในปี 2015 ได้ทำการสำรวจการใช้งาน พบว่า
- 50% ใช้สำหรับพัฒนา REST API
- 25% ใช้สำหรับพัฒนา Web application
2. Scalatra
แค่ชื่อก็รู้ว่าคืออะไร
มันคือ framework สำหรับสร้าง web application ด้วยภาษา Scala นั่นเอง
โดยถูกใช้งานที่บริษัท BBC และ Netflix
การติดตั้งอาจจะยากไปนิด ใช้เวลา download library ต่าง ๆ มากไปหน่อย
แต่ไม่เกินความสามารถของนักพัฒนาไปได้หรอก
ให้เริ่มทำการติดตั้งจากที่นี่ Installation Guide
จากนั้นทำการสร้าง project และ HelloServlet กันดังนี้
ทำการ run ด้วย sbt ดังนี้
$./sbt
>container:start
และเปิด web browser ไปที่ http://localhost:8080
แสดงผลการทำงานดังรูป
สำหรับแฟน ๆ Akka น่าจะชอบ เพราะว่ามันสนับสนุนอยู่แล้ว
ที่สำคัญมันทดสอบง่ายด้วยนะสิ
สำหรับภาษา Scala มีอีก framework ที่น่าสนใจ คือ Finatra
พัฒนาโดย Twitter
มีความสามารถที่น่าสนใจเยอะมาก ๆ
ซึ่งสร้างอยู่บน Twitter-Server และ Finagle
ลองศึกษา และ นำไปใช้งานดูได้ครับ มันแจ่มมาก
3. Compojure
พัฒนาด้วยภาษา Clojure นั่นเอง
ดังนั้นถ้าใครชอบ ใครรัก ใครเขียน Clojure น่าจะชอบ framework นี้นะ !!
เริ่มต้นด้วยการสร้าง Hello project
$lein new compojure hello-world
จากนั้นทำการแก้ไข code ให้มัน Hello World เรานิดหน่อย ดังนี้
ทำการ run Web server ด้วยคำสั่ง
$lein ring server-headless
และเปิด web browser ไปที่ http://localhost:3000
โดยสรุปแล้ว
Framework ทั้งสามตัวนั้น พัฒนาด้วยภาษา Java, Scala และ Clojure ตามลำดับ
ต่างก็ทำงานอยู่บน JVM ด้วยกันทั้งสิ้น
เป็นอีกทางเลือกหนึ่งของการพัฒนา web application
มีเป้าหมายเพื่อ
- การพัฒนาที่ง่าย ไม่ต้อง configuration อะไรเยอะ
- ทำงานร่วมกับ library ต่าง ๆ ได้เช่นเดิม
- สามารถทดสอบได้ง่าย
- แยกการทำงานออกเป็น module ได้ง่าย
แล้วคุณล่ะ ?
มาลองศึกษา และ ลองใช้งานสิ่งใหม่ ๆ ที่มันมีประโยชน์บ้างนะ
น่าจะดีกว่าใช้แต่สิ่งเดิม ๆ ที่มันยากลำบาก หรือเปล่านะ !!
หัดเรียนรู้ภาษาโปรแกรมใหม่ ๆ บ้าง
หัดเรียนรู้ framework ใหม่ ๆ บ้าง