การเติบโตของ Open Source Web Application ก็ไม่แตกต่างจากการเติบโตของมนุษย์ซักเท่าไหร่ครับ ต้องมีการเปลี่ยนแปลงจากสภาวะนึงสู่สภาวะนึง เท่าที่ผมเห็นนะ ตอนนี้ Open Source Web Application ได้เปลี่ยนผ่านมา 3 รุ่นแล้ว และกำลังจะก้าวเข้าสู่รุ่นที่ 4 ในเร็ว ๆ นี้นะ (ถ้าทำนายไม่ผิด)

รุ่นที่ 1 –  เปิดเผยตัวตน

จากเดิมที่ใครก็ตามที่หาญกล้าปล่อย freeware ที่ตัวเองสร้างขึ้น ออกมาให้ชาวบ้านได้ดาวน์โหลดกัน เขาคนนั้นต้องมั่นใจแล้วว่า freeware ของเขานั้นมีกลไกที่เจ๋งสุด ๆ ไอ้เรื่องจะ bug นี่แทบจะไม่มี หนำซ้ำหน้าจอก็ต้องสวยงามใช้งานง่าย เข้ายุคเข้าสมัยไม่มีเชย

แต่เมื่อ Open Source บังเกิดขึ้น มันกลายเป็นว่านอกจากเขาจะต้องอวดว่าซอฟต์แวร์ของเขาเจ๋งและสวยแล้ว เขายังต้องอวดให้ชาวบ้านเห็นด้วยว่าเขาเขียนโค้ดได้อย่างสวยงาม มีระเบียบ เป็นระบบ สืบค้นตรวจสอบได้ง่าย เขียนต่อเพิ่มเติมได้ไม่ยากเย็น และที่สำคัญเข้าใจง่ายที่ซู้ดเลย ไม่ว่าหน้าไหนจะมาแก้ไขก็ตาม

ผมเองเคยได้ทำ changelog กับ Open Source Web Application ในรุ่นที่ 1 แค่ตัวเดียวครับ นั่นก็คือ phpBB

ขอบอกเลยว่าขนาดเขา Open Source แล้ว ผมยังแกะตั้งนานกว่าจะแก้ให้มันเป็นอย่างที่ผมต้องการได้ ยิ่งถ้าแก้เสร็จแล้วมันใช้ได้ดี เราอยากจะให้คนอื่นได้แก้ตามด้วย เราก็ต้องทำ changelog เพื่อบอกลำดับการแก้ไขให้ชาวบ้านเขารู้ว่าต้องแก้ไงถึงจะได้ผลลัพท์อย่างที่เราทำได้ ซึ่งผมเองก็เคยทำตาม changelog ของคนอื่นเหมือนกัน … ทำเสร็จแล้วเหนื่อยไปเลย นี่ขนาดเขาบอกไว้อย่างดีแล้วนะเนี่ย T-T

รุ่นที่ 2 – เสาะหาบริวาร

ทีนี้เมื่อ Open Source Web Application มันถูกเผยแพร่อย่างกว้างขวางมากขึ้น อีกทั้งโปรแกรมเมอร์ทั้งหลาย (รวมทั้งผมด้วย) เล็งเห็นแล้วว่าการเข้าไปนั่งแก้โค้ดในส่วนที่เป็นเครื่องในมันยุ่งยากมาก เพราะอันไหน “ไส้” อันไหน “เซี่ยงจี๊” อันไหน “ตับ” ก็ไม่รู้ ถ้าล้วงไปล้วงมาเดี๋ยวเครื่องในมันปนกันหมด บรรลัยกันพอดี

ผู้พัฒนา Open Source Web Application ในรุ่นที่ 2 เลยใช้วิธีสร้างกลไกต่อเชื่อมขึ้นมา แล้วจึงเปิดทางให้โปรแกรมเมอร์คนอื่น ๆ สามารถที่จะสร้างกลไกเสริม เพื่อต่อเชื่อมเข้ามาได้โดยไม่จำเป็นต้องไปล้วงควักในกลไกหลักอีกต่อไป

ซึ่งถือเป็นกุศโลบายที่ดีมาก เพราะมันเป็นการเปิดทางให้เกิดระบบบริวารขึ้นมา สุดแล้วแต่ว่าจะเรียกว่าอะไร บางที่ก็เรียกว่า Plugins บางที่ก็เรียกว่า Modules ส่วนบางทีก็เรียกว่าเป็น Add-Ins หรือ Add-Ons อันนี้ก็เรียกตามสะดวก

มันเลยกลายเป็นว่าใครก็ตามที่ต้องการสร้าง Open Source Web Application รุ่นที่ 2 ให้สำเร็จได้นั้น นอกจากจะต้องเขียนโค้ดได้เจ๋งเป้งสวยเช้งแล้ว ยังต้องมีวิสัยทัศน์ที่กว้างไกล คิดไว้ตั้งแต่แรกเลยว่า Open Source Web Application ของตนเองนั้น จะต้องเป็นอาณาจักรอันยิ่งใหญ่ ที่มีแคว้นเล็กเผ่าน้อยเข้ามาศิโรราบ หมอบกราบส่งบรรณาการมิขาดสาย

เท่าที่ผมเห็น ทุกวันนี้ Open Source Web Application ส่วนใหญ่จะเป็นรุ่นนี้กัน แต่ก็มีอยู่หลายเจ้าที่เริ่มจะวิวัฒนาการตัวเอง ให้กลายเป็น …

รุ่นที่ 3 – เปิดใจยอมรับผู้อื่น

ผมเริ่มจะเห็น Open Source Web Application ในรุ่นนี้บ้างเหมือนกันนะ คือตัวของมันเองมีลักษณะของรุ่นที่ 2 อยู่ มันมีบริวารซึ่งก็คือ Modules, Plugins, Add-Ins หรือ Add-Ons อยู่พอสมควร แต่ดูเหมือนกับว่าผู้พัฒนาจะเล็งเห็นว่าน่าจะเป็นการดี ถ้ามีการเปิดช่องเพื่อให้ Open Source Web Application ตัวดังกล่าว สามารถที่จะต่อเชื่อมไปเป็นบริวารของ Open Source Web Application ที่ดูท่าจะมีอนาคตและเป็นที่นิยมมากกว่าได้

ตัวอย่างที่ดีที่ผมเห็นก็คือ Gallery มันเป็น Open Source Web Application ที่สร้างขึ้นเพื่อไว้สำหรับทำเว็บไซต์บริหารจัดการรูปภาพ โดยตัวของมันเองนั้นเป็นรุ่นที่ 2 เต็มรูปแบบ แต่ด้วยกลไกเปิดที่ถูกสร้างเอาไว้ ทำให้มันสามารถที่จะกลายไปเป็น Modules ของ Drupal ซึ่งเป็น Open Source Web Application อีกตัวนึงได้อย่างไม่เคอะเขินอะไร

เปรียบได้กับเมืองสองแควพิษณุโลก ที่ถึงแม้จะมีเมืองบริวารรายล้อมอยู่มากมาย แต่ก็ยังต้องขึ้นตรงเป็นบริวารต่ออโยธยาศรีรามเทพนครอยู่ดี (เปรียบซะโคตรลิเกเลย :-P)

รุ่นที่ 4 – แยกร่าง

ผมคิดว่าคนที่อ่านบล็อกแห่งนี้ คงมีน้อยรายนักที่ได้สัมผัสซอฟต์แวร์ระดับใหญ่ประเภท Oracle Financial, Oracle CRM หรือ SAP … พอดีบังเอิญว่าผมเคยเฉียดเข้าใกล้ซอฟต์แวร์เหล่านี้ครับ เฉียดประมาณ 0.5 มิลลิเมตรเห็นจะได้ ก็เลยว่าจะมาโม้ให้อ่านกันซะหน่อย

ซอฟต์แวร์เหล่านี้จริง ๆ แล้วถ้ามันรวมกันครบทุกชิ้น มันจะทรงพลานุภาพที่สุดครับ แต่โดยคุณสมบัติของมัน มันแยกเป็นชิ้น ๆ ได้ครับ เพราะถ้าแยกไม่ได้ก็คงไม่มีใครมีปัญญาซื้อครบทุกชิ้น เพราะแต่ล่ะชิ้นนี่แพงโคตร ๆ จะเซ็นซื้อแต่ล่ะทีงี้คิดแล้วคิดอีก เพราะไม่รู้ว่าซื้อมาแล้วจะคุ้มหรือเปล่า ซึ่งการที่มันแยกชิ้นได้ก็ด้วยเหตุผลเพราะตัวมันใหญ่มาก แล้วก็ครอบคลุมความต้องการในสาขานั้น ๆ แบบครอบจักรวาลนั่นเอง

ผมก็เลยคิดว่า Open Source Web Application ในอนาคตจะเป็นรุ่นที่ 4 ครับ คือถูกพัฒนามาเป็นตัวใหญ่ยักษ์บะเริ่มเทิ่ม ใครที่คิดจะเอาไปใช้ก็ต้องมาเลือกเอาว่าจะเอาชิ้นไหนไปใช้บ้าง แถมแต่ล่ะชิ้นก็ดันมีคุณสมบัติของรุ่นที่ 2 คืออนุญาตให้เสาะหาบริวารได้ แล้วก็มีคุณสมบัติเหมือนกับรุ่นที่ 3 คือสามารถจะทำตัวเป็นบริวารของ Open Source Web Application ยี่ห้ออื่นได้อีกด้วย เอาเข้าไป!!!

โดยสรุปแล้วก็รู้สึกเหมือนกับว่า Open Source Web Application นี่มันช่างเติบโตคึกคักดีจริง ๆ

[tags]chronicle, open source, web application, คอมพิวเตอร์, ซอฟต์แวร์[/tags]

Related Posts

8 thoughts on “The Chronicle Of Open Source Web Application

  1. เคยแตะ Open Source อยู่ครั้งนึงเหมือนกันครับ ในโมดูลภาษาไทยของ MySQL 3 ตอนนั้นช่วยกันแกะอยู่สองคน เล่นเอามึนตึ้บไปหลายชั่วโมง

  2. คึกคักไปครับ มีหลายเจ้าเกิน จะใช้ทีนี่เลือกไม่ถูก รักพี่เสียดายน้อง จะเล่นครบทุกตัวก็ไม่ต้องทำมาหากินกันพอดี

    ว่าแล้ววันนี้ก็เสียเวลาค้นหา Ajax Framework ตัวที่เหมาะกับงานทั้งวัน…

  3. ช่วงนี้ผมก็ยุ่งกับพวก รุ่นที่2 ของ drupal อยู่เลยครับ
    ไม่ได้เขียนโมดูลหรอกนะครับ แต่ไปเรียกใช้ function ที่อยู่ใน module
    ของ drupal ซึ่งก็สะดวกดีครับ 🙂

  4. อุตส่าห์แอบเดาว่าพี่ไท้จะเขียนเรื่อง API
    เท่าที่แอบดูใน Trac มีหลายโครงการ ที่ต้องการคนแปลภาษามากกว่าการเขียนโค้ดครับ

  5. ช่วงนี้ผมกำลังสนใจเรื่อง open source API พอดี เห็น google กำลังอัดกับ facebook ค่าย microsoft

    อยากทำอะไรอย่าง facebook เมื่อวันก่อนเลยไปหาซื้อหนังสือ html กับ php มาอ่าน

    คงไม่ได้เขียนเองหรอกครับ เพราะไม่มีพื้นฐานเลย ซื้อมาอ่านเอาไว้คุยกับ programmer อยากทำ web แบบ facebook แต่ตอนนี้เอา web video clip ให้จบก่อน ทำ blog อีก เหนื่อยจริง ^^”

  6. ใช่ ๆ มันยากเน้อะคุณอภิสิทธิ์ ไอ้การมานั่งแกะโค้ดชาวบ้านเนี่ย ถึงเขาจะเขียนออกมาได้สวยงามดีแล้วก็เถอะ … แต่มันก็ยังต้องมาทำความเข้าใจอยู่ดี T-T

    555 คิดเหมือนกันเลยอ่ะคุณ crucifier แต่ล่ะอันเขาก็มีข้อดีของเขา … งั้น กัดฟันตัดสินใจแต่ง ๆ กับใครไปคนนึงเลยก็แล้วกัน อิ อิ (เรื่องเดียวกันป่าววะเนี่ย?)

    เอ้อใช่คุณ iPorsut ผมเห็นเวลาจะโพสต์ node เข้า drupal มันอนุญาตให้เราใช้ php mode ได้นี่ งั้นก็แสดงว่าต้องสามารถเรียกใช้ฟังก์ชันมาตรฐานได้เหมือนกัน … ผมเองก็กำลังคิดจะลองเข้าไปตรวจสอบดู แต่บังเอิญยังไม่มีโจทย์ เลยยังหาแรงบันดาลใจไม่ได้เลยครับ ว่าจะเข้าไปเรียนรู้ทำไม (ความขี้เกียจไม่เคยปราณีใครครับ :-P)

    ของเขาดีอยู่แล้วครับคุณ Audy ที่เหลือก็การกระจายให้รู้อย่างกว้างขวางมากกว่า

    ระดับป๋า BigNose คิดไอเดียแล้วจ้างเขาเถอะครับ รู้ไว้เพื่อไม่ให้โดนโก่งค่าแรงก็พอ อิ อิ

  7. ชอบคำเปรียบเปรยที่ใช้จังเลย “เมืองสองแควพิษณุ​โลก” กับ “อโยธยาศรีรามเทพนคร​” ท่าทางจะเป็นแฟนท่านมุ้ยนะเนี่ย

    ส่วนเรื่อง drupal ให้ใช้ php mode กับ node ได้นั้น ปกติเป็นการอำนวยความสะดวกให้ admin มากกว่าผู้ใช้งานทั่วไปครับ เพราะถ้าขืนเปิดไว้ให้สาธารณะชนใช้ มีหวังเละ! โดนปาร์ตี้ php แน่ๆ (admin สั่วๆอย่างผมยังใช้ซะเกือบเละเลย)

  8. ขอบคุณครับ
    ยังไม่ได้ซักขั้นเลยครับ
    เด็กน้อยขอเร่งศึกษาก่อนครับ

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *