Screen Shot 2558-08-21 at 12.53.46 PM
ในช่วงสองสามปีที่ผ่านมานั้น มีหลาย ๆ อย่างที่น่าสนใจ
เกิดขึ้นในโลกของ 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
แสดงผลการทำงานดังรูป

Screen Shot 2558-08-21 at 11.02.23 AM
จากตัวอย่างเราเพียงทำการ 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
แสดงผลการทำงานดังรูป

Screen Shot 2558-08-21 at 1.07.05 PM

สำหรับแฟน ๆ 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

Screen Shot 2558-08-21 at 11.50.24 AM

โดยสรุปแล้ว

Framework ทั้งสามตัวนั้น พัฒนาด้วยภาษา Java, Scala และ Clojure ตามลำดับ
ต่างก็ทำงานอยู่บน JVM ด้วยกันทั้งสิ้น
เป็นอีกทางเลือกหนึ่งของการพัฒนา web application
มีเป้าหมายเพื่อ

  • การพัฒนาที่ง่าย ไม่ต้อง configuration อะไรเยอะ
  • ทำงานร่วมกับ library ต่าง ๆ ได้เช่นเดิม
  • สามารถทดสอบได้ง่าย
  • แยกการทำงานออกเป็น module ได้ง่าย

แล้วคุณล่ะ ?
มาลองศึกษา และ ลองใช้งานสิ่งใหม่ ๆ ที่มันมีประโยชน์บ้างนะ
น่าจะดีกว่าใช้แต่สิ่งเดิม ๆ ที่มันยากลำบาก หรือเปล่านะ !!

หัดเรียนรู้ภาษาโปรแกรมใหม่ ๆ บ้าง
หัดเรียนรู้ framework ใหม่ ๆ บ้าง