ถ้าคุณจำเป็นต้องตัดสินใจเลือกว่าจะใช้กรรมวิธีใดในการพัฒนา Web Base Application ขึ้นมาในปัจจุบัน...
คุณจะเลือกอะไรดี ระหว่าง 2 กรรมวิธี ที่กำลังเป็นที่นิยมอยู่ คือ
1. พัฒนาแบบเร่งด่วน (Rapid development)
เป็นการใช้เครื่องมือในการพัฒนาที่เห็นภาพ (Visual Development) มาใช้ในการสร้างระบบ ตัวอย่างของกรรมวิธีแบบนี้ ที่นิยมก็คือการพัฒนาของค่าย Microsoft เช่น ASP.NET เป็นต้น
2. เน้นเขียนโค้ดเองเป็นหลัก (Hard core coding)
คือการที่เราเป็นคนเขียนโค้ดเองซะเป็นส่วนใหญ่ เพื่อที่จะได้สามารถควบคุมและจัดการ environment เกือบทั้งหมด สิ่งที่จะได้มาก็คือประสิทธิภาพที่ดียิ่งขึ้นของระบบนั้น ๆ เช่น การเชื่อมต่อกับฐานข้อมูล, การทำ Connection Pool เป็นต้น ลักษณะของกรรมวิธีแบบนี้ที่เราคุ้นเคย ก็คือ Java EE (Java Enterprise Edition) นั่นเอง
ทั้งสองอย่างที่กล่าวมาต่างก็มีข้อดี ข้อเสียอยู่ในตัว
ถ้าเราเลือก Java EE, นักพัฒนาก็จะต้องคอยควบคุมทุก ๆ อย่างเอง
และบางครั้งก็เป็นเรื่องหน้าเบื่อ ที่ต้องมาเขียนโค้ดขึ้นกับมือเองทั้งหมด
แต่ถ้าเราเลือกที่จะใช้ ASP.Net ล่ะ?
ข้อดีที่จะได้ก็คือ เราจะสามารถออกแบบและพัฒนาระบบได้ง่ายขึ้นมาก
แต่ข้อเสียก็คือ เราจะควบคุม Environment ต่าง ๆ ได้ยากขึ้น
เพราะเครื่องมือนั้น ๆ ไม่ได้เปิดช่องทางเอาไว้ให้เรามากพอ
จากที่ได้กล่าวมา, Sun Microsystem จึงได้ออก Framework ที่ชื่อ JSF, Java ServerFace ขึ้นมา
เพื่อที่จะประสานข้อดีของรูปแบบการพัฒนา Web Application ทั้งสองอย่างเข้ามาไว้ด้วยกัน
โดยนักพัฒนาที่คุ้นเคยกับการเขียนโปรแกรมฝั่ง Client, เช่น Swing, AWT, หรือ SWT ของ IBM
ก็จะมองว่าการพัฒนาด้วย JSF นั้น ก็มีรูปแบบที่คล้างคลึงกัน
แต่ถ้าหากนักพัฒนามีความชำนาญ JSF มากขึ้น
ก็จะพบว่า JSF นั้นยืดหยุ่นกว่าที่คิด เพราะว่า JSF ได้เปิดช่องให้เราสามารถเข้าไปออกแบบ JSF Tag ขึ้นมาใช้งานเองได้อีกด้วย จะทำให้เราสามารถประยุกต์มาใช้งานได้มีประสิทธิภาพยิ่ง ๆ ขึ้น
และยิ่งไปกว่านั้นคนที่คุ้นเคยกับ Servlet กับ JSP มาก่อน
ก็สามารถมองได้ว่า Servlet กับ JSP เปรียบเสมือนเป็น Assembly Language
ที่อยู่เบื้องหลังของ Framework JSF นั่นเอง