Apache

MAMP

แพกเกจชุด LAMP บน Mac OS X นั้นค่อนข้างเก่า Apache 1.3 กับ PHP4 ส่วน MySQL ต้องหามาลงเพิ่ม (สะดวกหน่อยมีเป็น .dmg) ดังนั้นถ้าอยากได้ Apache 2.0+PHP5 ก็ต้องคอมไพล์เอง (หรือใช้ DarwinPort) ซึ่งก็มีขั้นตอนวิธีมากมายเป็นอุปสรรคขวางหน้า MySQL บนแมคก็มีปัญหาเรื่องที่อยู่ของ socket อีกด้วย

ปัญหาทั้งหมดแก้ได้ด้วย MAMP

นอกจาก Apache2, PHP5, MySQL5 ก็ยังมี phpMyAdmin และ SQLite มาให้ด้วย ที่ผมชอบคือเค้าตั้งพอร์ตของ Apache กับ MySQL มาไม่ชนกับของเก่า ทำให้ลงคู่กันได้โดยไม่ต้องทำอะไรเพิ่ม (ถ้าอยากเปลี่ยนก็แก้ได้ในตัวโปรแกรมเลย อันนี้รวมถึง DocumentRoot)

ไม่ชอบนิดเดียวตรงหน้าเว็บสำหรับคอนฟิกใช้เฟรม ซึ่งพอเอา phpMyAdmin ไปใส่ในเฟรมอีกชั้นนึง มันมองแทบไม่เห็นอะไร

"Java มัน over-engineered"
พี่ป๊อก

ผมเกลียด Java ครับ แต่ด้วยงานการก็ไม่มีทางเลือก ตอนนี้กำลังพยายามเข้าสู่โลกของ Java (โดยเฉพาะฝั่ง Apache) ให้สรุปความรู้สึกแบบสั้นๆ ก็ต้องพูดว่า "chip หาย" อะไรก็ไม่รู้เต็มไปหมด

ผมคิดว่ามีแฟนๆ Java อ่านบล็อกนี้อยู่บ้าง ถ้าอยากให้ผมรัก Java ก็ต้องช่วยกันตอบคำถามเหล่านี้ (มันจะงอกมาเพิ่มเรื่อยๆ)

  1. ความแตกต่างระหว่าง Spring, Struts, Tapestry
  2. ความแตกต่างระหว่าง Maven กับ Ant
  3. ความแตกต่างระหว่าง Tomcat กับ Jetty
  4. จาก 1,2,3 นั่นแปลว่า Apache เป็นเรื่องของ choice ใช่หรือไม่ ถ้าใช่ มีวิธีเลือก choice อย่างไร
  5. ความสัมพันธ์ระหว่าง ActiveMQ กับ ServiceMix
  6. ทำไมเราถึงใช้ Derby ในเมื่อมี SQLite
  7. JavaServlet คืออะไร
  8. EJB คืออะไร
  9. ความสัมพันธ์ของแต่ละส่วนประกอบใน Geronimo
  10. ทำไมเราถึงควรใช้ Geronimo (หรือ WASCE) ถ้าเทียบกับ Glassfish, JBoss หรือ BEA WebLogic
  11. ความสัมพันธ์ของ Catalina, Jasper และ Tomcat

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

อาปาเช่ (Apache) เป็นโครงการเว็บเซิร์ฟเวอร์แบบโอเพ่นซอร์ส ด้วยความสามารถ ความเร็ว ความเสถียรของมัน (รวมไปถึงการที่มันฟรีด้วย) ทำให้เป็นเว็บเซิร์ฟเวอร์ที่ครองส่วนแบ่งตลาดเว็บเซิร์ฟเวอร์อยู่ในขณะนี้ จากการสำรวจของ Netcraft (http://www.netcraft.org) อาปาเช่มีส่วนแบ่งอยู่ประมาณ 63% ตามมาด้วย IIS ของไมโครซอพท์ที่ 27% ส่วนที่เหลือก็มีหลากหลาย เช่น iPlanet (คือ Netscape เดิม ตอนนี้กลายเป็นบริษัทร่วมทุนของซันกับอเมริกาออนไลน์) หรือ NCSA ก็ประปราย

จากเว็บไซท์ของอาปาเช่ได้อ้างว่า มีเว็บเซิร์ฟเวอร์ประมาณ 6 ล้านแห่งทั่วโลกที่ใช้งานอาปาเช่อยู่ในขณะนี้ (ข้อมูลเมื่อปี 2000 เก่าไปหน่อยนะ) เว็บไซท์ดังๆ ที่เรารู้จักกันดีหลายแห่ง เช่น Yahoo, CNN, Amazon ก็ใช้งานอาปาเช่อยู่ หรือถ้าเป็นของไทย Pantip, Sanook และ Mweb ก็ยืนยันความสามารถและความนิยมในตัวอาปาเช่ได้เป็นอย่างดี บริษัทยักษ์อย่าง IBM ยังนำอาปาเช่ไปเป็นส่วนหลักในผลิตภัณฑ์ WebSphere อีกด้วย และยังทุ่มทุนพัฒนาอาปาเช่มากมาย

ประวัติคร่าวๆ ของ อาปาเช่ นั้นเริ่มมาจากเว็บเซิร์ฟเวอร์ตัวแรกๆ ของโลก มาจาก NCSA (National Center for Supercomputing Applications) ที่มหาวิทยาลัยอิลินอยส์ หลังจากทางมหาวิทยาลัยยุติการพัฒนา ทีมงานได้แยกตัวออกไป และบางส่วนยังจับมือกันพัฒนาเว็บเซิร์ฟเวอร์ตัวใหม่ขึ้นมาแทน นั่นก็คือ อาปาเช่ นั่นเอง แรกๆ นั้นก็ใช้วิธีเมล์ส่งแพตช์ (patch) กันไปมา และมันก็กลายเป็นที่มาของชื่อ อาปาเช่ เพราะว่ามาจาก A PAtCHy server เรียกให้เท่ๆ ก็เลยกลายเป็นอาปาเช่ (Apache)

ในปัจจุบัน ทีมงานผู้สร้างอาปาเช่ ได้เปลี่ยนแปลงโครงสร้างในการบริหาร โดยตั้ง The Apache Software Foundation ขึ้นมาบริหารงานแทน แต่รูปแบบการพัฒนายังเป็นโอเพ่นซอร์สเช่นเดิม นอกจากนี้ยังได้มีโครงการอื่นๆ นอกเหนือไปจากตัวเว็บเซิร์ฟเวอร์ เพิ่มเข้ามาในโครงการอาปาเช่ด้วย โดยมักจะเป็นการเพิ่มความสามารถให้อาปาเช่ เช่น Jakarta เป็นส่วนของภาษาจาวา , ส่วนของภาษา Perl, Python และ XML เป็นต้น




การใช้งานอาปาเช่นั้น หลายๆ คนอาจจะมองว่า การติดตั้งและใช้งานเว็บเซิร์ฟเวอร์เป็นเรื่องไกลตัว แต่ในบางครั้งเราต้องการจะทดสอบเว็บหรือใช้อะไรก็ตามที่ต้องใช้เว็บเซิร์ฟเวอร์ เช่น ทดสอบ cgi จริงๆ แล้วการใช้งานอาปาเช่ง่ายมากเลยครับ ในลินิกซ์แทบทุกตัว (จะเรียกว่า ทุกตัว เลยก็ได้) นั้นได้ให้อาปาเช่มาอยู่แล้ว การติดตั้งจะง่ายขึ้นไปอีกเมื่อเราเลือกติดตั้งอาปาเช่ ตั้งแต่ตอนลงลินิกซ์เลย (เลือกแบบ Server หรือ เลือกส่วนของ Apache เอง ตอนลงแพกเกจก็ได้) และเปิดการทำงานของเซอร์วิสอาปาเช่ตอนเปิดเครื่องด้วย (ถ้าเลือกไว้ จะเห็นขึ้นว่า httpd ตอนเราเปิดลินิกซ์ขึ้นมา และกำลังแสดงว่ารันอะไรขึ้นมาอยู่)

ถ้าเกิดว่าไม่แน่ใจ ลองเปิดเว็บบราวเซอร์ขึ้นมา และเรียกไปที่ ชื่อคอมพิวเตอร์ของเรา (มักจะเป็น localhost ถ้าไม่ได้ตั้งอะไรไว้แต่แรก) ถ้าเห็นหน้าสีขาวๆ มีรูปขนนกอยู่ แสดงว่า อาปาเช่กำลังทำงานอยู่ครับ เราก็นำไฟล์เว็บเพจของเราไปใส่ไว้ที่ /var/www/html เราก็จะรันเว็บไซท์ของเราได้แล้ว ถ้าใครไม่มีลินิกซ์ อาปาเช่สามารถรันได้หลายแพลตฟอร์มเลย เช่น วินโดว์ ยูนิกซ์ เน็ตแวร์ และลินิกซ์ ถ้าต้องการดาวน์โหลดมาใช้งาน หรืออ่านข้อมูลอื่นๆ สามารถหาได้ที่ http://www.apache.org ครับ

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



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



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



LAMP ย่อมาจากอักษรตัวแรกของซอพท์แวร์เสรี 4 ตัวที่ทำหน้าที่ต่างๆ สำหรับเว็บเซิร์ฟเวอร์ นอกจากทุกตัวจะฟรีแล้ว ความสามารถก็ยังล้นเหลือ และได้รับความนิยมอย่างสูง โดยเว็บไซท์ทั่วโลกที่สร้างด้วยชุด LAMP นี้ มีมากกว่า Windows Server ที่ลง Internet Information Server และรัน ASP หลายช่วงตัวทีเดียว ...อะแฮ่ม...อย่าหาว่าคุย



L ตัวแรกมาจากคำว่า Linux ระบบปฏิบัติการยูนิกซ์สายพันธุ์หนึ่งที่ฟรี ฟรี และฟรี ปัจจุบันข่าวสารเกี่ยวกับลินิกซ์ได้เผยแพร่ผ่านสื่อจนกลายเป็นเรื่องธรรมดาไปแล้ว ดังนั้นไม่ต้องแนะนำอะไรกันมากนะครับ ประสิทธิภาพของมันแทบไม่เป็นรองระบบปฏิบัติการใดๆ ในโลกแล้ว (ยกเว้นแต่เว็บไซท์ที่คนเข้าเยอะมาก อย่างCNN.com อาจต้องใช้โซลาริสของซัน ที่ยอมรับกันประสิทธิภาพดีกว่า แต่จะมีเว็บระดับนั้นสักกี่แห่งกันเชียว) สนับสนุนหน่วยประมวลผลแบบหลายตัว ประมวลผลแบบขนานได้สารพัดระบบ ตัวลินิกซ์เองหาดาวน์โหลดได้ผ่านอินเทอร์เน็ต หรือซื้อเอาจากร้านซีดีในอินเทอร์เน็ต ที่พันธุ์ทิพย์ก็มีขายครับ



A ตัวที่สอง มาจากคำว่า Apache สุดยอดเว็บเซิร์ฟเวอร์อีกตัว ที่เคยแนะนำในคอลัมน์นี้ไปแล้ว จากการสำรวจของ Netcraft ประมาณ 60% ของเว็บไซท์ทั่วโลกรันอยู่บน Apache นอกจากประสิทธิภาพจะดี รับโหลดได้เยอะ Apache ยังพัฒนาเตรียมรับกับเทคโนโลยีใหม่ๆ ที่กำลังจะมาในอนาคต เช่น เว็บแอพพลิเคชั่นหรือเว็บเซอร์วิส มีโครงการย่อยมากมายกำลังถูกพัฒนาอยู่ใต้ร่มเงาของ Apache โดยเฉพาะด้านจาวา และ XML เช่น โครงการ Tomcat, Ant, Jarkata, Xerces แถมยังหาได้ง่ายเพราะมากับลินิกซ์แทบทุกตัวอยู่แล้ว



M มาจาก MySQL โปรแกรมฐานข้อมูลโอเพ่นซอร์ส มีความสามารถในด้านฐานข้อมูลครบครัน เพียงพอกับเว็บไซท์ทั่วๆ ไป ที่เก็บข้อมูลไม่เยอะมาก (ยกเว้นต้องการความสามารถในระดับสูงมากๆ หรือมีข้อมูลเยอะสุดๆ ต้องยอมเสียเงินใช้ Oracle หรือ DB2 แล้วล่ะครับ มีให้ใช้บนลินิกซ์เช่นกัน) MySQL ได้รับความนิยมสุดๆ และมากับลินิกซ์เกือบทุกตัว ติดตั้งง่าย ดูแลสะดวก มีโปรแกรมช่วยจัดการฐานข้อมูลมากมาย ทั้งเป็นโปรแกรมปกติ และเว็บเบส (แนะนำ phpMyAdmin ครับ) เมื่อก่อนพูดถึงฐานข้อมูลโอเพ่นซอร์ส ต้องนึกถึง MySQL เพียงตัวเดียว แต่ตอนนี้มีคู่แข่งรายใหม่เกิดขึ้นมาแล้วครับ ชื่อว่า PostgreSQL (อ่านว่า โพส-เกรส-คิว-แอล) เริ่มพัฒนาจากมหาวิทยาลัยแคลิฟอร์เนียเบิร์กเลย์ ความสามารถในเชิงฐานข้อมูลเยอะกว่า MySQL ด้วย เลือกใช้ได้ทั้งคู่แล้วแต่ถนัดครับ



P ตัวสุดท้าย มาจาก Perl/PHP/Python หมายถึงภาษาที่ใช้พัฒนาเว็บไซท์นั่นเอง ทั้งสามตัวเป็นภาษาสคริปต์ เขียนง่าย โค้ดจะสั้นๆ ไม่ซับซ้อน ส่วนมากใช้เรียกข้อมูลจากฐานข้อมูล MySQL หรือ PostgreSQL แล้วนำมาแสดงผลเป็น HTML เพื่อให้ได้เว็บไซท์แบบไดนามิก เดิมที Perl ได้รับความนิยมมาก่อน ปัจจุบันตลาดหันมาใช้ PHP เพราะเขียนง่ายกว่า และออกแบบมาสำหรับการทำเว็บโดยเฉพาะ (PHP ย่อมาจาก Personal Home Page) ส่วน Python เป็นภาษาใหม่ที่กำลังรุ่ง เพราะเขียนง่าย มีประสิทธิภาพสูง ทั้งสามตัวมากับลินิกซ์แทบทุกยี่ห้อเหมือนกัน ถ้าใครใช้วินโดว์ก็สามารถดาวน์โหลดมาใช้งานได้ฟรีๆ มีหนังสือภาษาไทยสอนการเขียน Perl/PHP เพื่อทำเว็บหลายสิบเล่มในท้องตลาด เลือกใช้งานได้ตามถนัดเช่นกันครับ (ถ้าไม่รู้ว่าจะเลือกอะไร ก็แนะนำ PHP ครับ ง่ายดี)



รู้จัก LAMP ครบทั้ง 4 ตัวไปแล้ว เมื่อมีตัวซอพท์แวร์แล้ว เว็บไซท์จะไปรุ่งหรือเปล่า อันนี้ต้องขึ้นกับ”คนดูแล”เว็บไซท์แล้ว ว่าจะทำงานกับโปรแกรมพวกนี้ได้ดีขนาดไหน ซึ่งก็ต้องอาศัยการฝึกฝนอยู่บ้าง ในอินเทอร์เน็ตมีคู่มือสอนการใช้งาน LAMP มากมาย (สามารถค้นหาด้วยคำว่า LAMP ได้เลย เพราะกลายเป็นคำสามัญไปแล้ว) หนังสือภาษาไทยมีหลายเล่มเช่นกัน ที่สอนใช้โปรแกรมในตระกูลนี้ ถ้ามีปัญหาก็มีชุมชนนักพัฒนาเว็บไซท์ด้วย LAMP อีกมากที่คอยให้ความช่วยเหลือเราได้ ขอให้ประสบความสำเร็จในการตั้งเว็บครับ

Apache Harmony

จาวาโอเพ่นซอร์ส




ข่าวใหญ่ในวงการโอเพ่นซอร์สช่วงปลายเดือนพฤษภาคมที่ผ่านมา คือ การประกาศโครงการ Harmony ของมูลนิธิ Apache Foundation ซึ่งเป้าหมายของโครงการก็คือ การสร้าง Java 2 Standard Edition ขึ้นมาใหม่ให้ทำงานได้เท่ากับตัวดั้งเดิม แต่ตัวใหม่นี้มีสัญญาการใช้งานแบบโอเพ่นซอร์สทั้งหมด



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



ตัวภาษาจาวาสร้างโดยบริษัทซัน ไมโครซิสเต็มส์ มีเอกสารกำกับแน่นอนและเปิดเผยอย่างละเอียด ไม่ว่าใครก็เขียนภาษาจาวาที่เป็นมาตรฐานเดียวกันทั่วโลก



แต่การจะให้โปรแกรมภาษาจาวาทำงานได้ ต้องมีโปรแกรมอื่นๆ ประกอบครับ เช่น รันไทม์สำหรับเวลารันโปรแกรมจาวา (Java Runtime Environment หรือ JRE), ตัวแปลภาษาจาวา (Java Compiler) และชุดไลบรารีสำหรับงานพื้นฐานต่างๆ เช่น ทำงานเกี่ยวกับรูปภาพ หรือเว็บ



โปรแกรมเหล่านี้ บริษัทซัน ไมโครซิสเต็มส์ได้แจกให้เราทุกคนใช้กันฟรีๆ อยู่แล้ว ในชื่อ Java 2 ซึ่งมีหลาย Edition แต่ตามปกติจะใช้ Java 2 Standard Edition หรือ J2SE ปัจจุบันออกถึงรุ่น 5.0



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



ซันให้เหตุผลว่าเป็นการรักษาความเข้ากันได้ของจาวา ซึ่งมีจุดขายที่เขียนเพียงครั้งเดียว ใช้งานที่ไหนก็ได้ ไม่ต้องปรับปรุงแก้ไขใหม่ (Write Once Run Everywhere)



ได้มีความพยายามจากฝั่งโอเพ่นซอร์ส ในการสร้างโปรแกรมที่ทำงานได้แบบเดียวกันขึ้นมาใหม่ และใช้สิทธิ์แบบโอเพ่นซอร์ส อย่างเช่น โครงการ GCJ (ตัว Compiler ภาษาจาวาของโครงการ GNU) หรือ Blackdown Java (ตัวรันไทม์และโปรแกรมอื่นๆ) เพียงแต่เป็นการสร้างบางส่วนของชุด J2SE เท่านั้น ไม่ใช่ทั้งหมด



โครงการ Apache Harmony นี้เป็นการสร้างโปรแกรมแบบเดียวกับ J2SE ทั้งชุดขึ้นมาใหม่ ซึ่งตอนนี้เพิ่งประกาศว่าจะสร้างมาได้ไม่นาน และกำลังอยู่ในขั้นร่างแผนเท่านั้น



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



การประกาศโครงการ Harmony นี้ทำให้เกิดข้อถกเถียงเป็นอย่างมากครับ เพราะทางซันเองก็ไม่ค่อยอยากให้โครงการทำนองนี้เกิดมาตามเหตุผลที่ผมเขียนไว้ ก็คือต้องการควบคุมความเข้ากันได้ของจาวาอย่างเคร่งครัด ขนาด James Gosling นักวิจัยจากซันผู้คิดค้นจาวาได้ออกมาให้สัมภาษณ์ในทางที่เป็นลบกับ Harmony



ทั้งสองฝ่ายก็มีเหตุผลที่ฟังขึ้นครับ ฝ่ายโอเพ่นซอร์สก็จำเป็นต้องมีโครงการแบบนี้ เพื่อความก้าวหน้าในการพัฒนาจาวาแบบโอเพ่นซอร์ส ซึ่งทาง Harmony ได้ออกมารับประกันว่า โปรแกรม Harmony จะเข้ากันได้กับจาวาของซัน 100% แน่นอน เพราะต้องผ่านชุดทดสอบความเข้ากันได้ของจาวาอยู่แล้ว ซึ่งปัญหาไม่ได้อยู่ที่ทำได้หรือไม่ แต่อยู่ที่เมื่อไรเท่านั้น (เพราะการสร้างโปรแกรมแบบเดียวกับ J2SE ที่พัฒนาต่อเนื่องมาเป็นสิบปีขึ้นมาใหม่ ต้องใช้เวลาอย่างมากไม่ต่ำกว่า 3-5 ปีแน่นอน)



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



คำถามอีกข้อคือ จาวาออกมาตั้งนานแล้ว ทำไมเพิ่งมาคิดทำแบบโอเพ่นซอร์ส คำตอบอยู่ที่สัญญาการใช้งานหรือ License ครับ สัญญาของจาวาเพิ่งอนุญาตให้เกิดโครงการแบบ Harmony ในจาวารุ่น 5.0 ที่เพิ่งออกเมื่อปีที่แล้วนี้เอง



รูปแบบของโครงการ Harmony นี้จะคล้ายกับโครงการ Mono ซึ่งเป็นการสร้างชุดพัฒนาตระกูล .NET ของไมโครซอฟท์ขึ้นมาใหม่แบบโอเพ่นซอร์สเช่นกัน Mono เริ่มประกาศในปี 2001 ซึ่งตอนนี้เวลาผ่านมาประมาณ 4 ปีได้ก้าวหน้าไปมาก แต่ก็ยังไม่เทียบเท่ากับชุด .NET ของไมโครซอฟต์อยู่ดีครับ ดังนั้นกว่า Harmony จะเห็นผล ผมว่าคงซักประมาณปี 2007-2008 เป็นอย่างน้อยเช่นกัน