ได้มีโอกาสได้ไปนั่งคุยกับอาจารย์ของผม (@rawitat) อีกครั้งหนึ่ง และท่านก็ได้เล่าเรื่องของกระทรวงกระทรวงหนึ่งที่เค้าคิดจะกำหนดมาตรฐานวิชาชีพของคน IT ขึ้นมา ทีแรกผมก็ไม่ค่อยชอบเท่าไร แต่พอได้ฟังอีกด้านหนึ่งก็ค่อนข้างเห็นด้วย กับเจตนาของกระทรวงนี้
แต่ อืม... เจตนาดี แต่พอได้อ่านแล้วก็เหงื่อตกเหมือนกันกับข้อกำหนดต่างๆ ที่เค้าได้กำหนดขึ้นมา และอาจารย์ผมก็หันมาถามผมว่า
"อะไรที่แบ่งระหว่าง Web Application กับ Web Site"
เหงื่อตกรอบสอบ ทำเว็บมาก็พักใหญ่ แต่ไม่เคยคิดที่จะถามตัวเองอย่างนี้เลย
เปิดจาก Wiki อ่านความหมายของสองคำนี้แล้วก็ไม่ช่วยอะไรเลย เราได้อย่างมากก็แค่แปล แต่ยังมองไม่เห็นจุดที่จะแยกมันออกมาได้เลย
คำตอบมันแสนง่าย และเป็นอะไรที่ใครก็เห็นแต่ไม่คิดว่าเป็นสิ่งนี้ อาจารย์ผมเฉลยว่าสิ่งที่ทำให้ต่างก็คือ ปุ่มหนึ่งปุ่ม ถ้าเว็บนั้นมีปุ่มไม่ว่าจะทำอะไร นั่นเป็น Web Application ผมก็ยังงงๆ อยู่ทีแรก แต่พอได้ยินคำว่า Computation ก็ถึงบางอ้อเลย
โดยตัวของ HTML เองแล้วมันเป็นแต่เพียง Markup ของเอกสาร ที่เราต้องการให้แสดงได้บน Web Browser แต่ว่ามันก็ทำได้แค่นั้น มันไม่สามารถที่จะทำการใช้ for วนลูป print "Hello World" ให้เรา 10 ครั้งได้ หรือทำการบวกเลขให้เราได้ เป็นต้น
เพราะฉะนั้นเว็บที่มีแต่การแสดง HTML แต่เพียงอย่างเดียว ก็เป็นแค่ Web Site
แล้วถ้าอยากจะให้ HTML ทำธรรมดามันสามารถที่จะ Compute ได้ล่ะ ก็ไม่มาก ก็เอา Programming Language มาใส่ ที่เราคุ้นเคยในตอนนี้ก็อย่างเช่น PHP, Ruby เป็นต้น
แต่ถ้าจะอธิบายให้คนธรรมดาเข้าใจได้ง่ายๆ ถึงความแตกต่างนั้น อาจารย์ผมได้เฉลยคำตอบที่มันง่ายๆ ไว้ว่า "ข้อแตกแต่งระหว่าง Web Site และ Web Application ก็คือ 'ปุ่ม' ให้กดและมันต้องไปทำอะไรบางอย่าง แค่นี้ก็เป็น Web Application"
จริงอย่างที่อาจารย์ผมว่าไว้ (หากว่าไม่มีใครกวนตีน ทำแต่ ปุ่ม แล้วเป็นแค่การเปลี่ยนหน้าเฉยๆ โดยไม่ได้ทำอะไรนะ) การมีปุ่มนั้น ไม่ได้แปลว่าจะมีไว้เฉยๆ มันจะต้องทำอะไรสักอย่าง ซึ่งการจะมีปุ่มได้นั้นส่วนใหญ่แล้วจะเป็นปุ่มของ form ให้เรากด submit เพื่อให้มีการทำงานบางอย่าง
สรุปแล้ว Web Application ต่างจาก Web Site ตรงที่มี Computation