PHP Series-1- เริ่มต้นจาก C->Perl->PHP
ผมเชื่อว่าหลายคนหลังจากได้อ่านประวัติบุคคลสำคัญในวงการ IT ระดับโลกแล้ว น่าจะเกิด
แรงบันดาลใจไม่ใช่น้อยเลย หลายครั้งที่ติดตามอ่านประวัติบุคคลเหล่านี้แล้ว แปลกใจที่จุดเริ่มต้นของสิ่ง
ประดิษฐ์ที่ยิ่งใหญ่ มาจากการแก้ปัญหาเรื่องเล็กๆ ในชีวิตประจำวันของเขาเอง วันนี้ในฐานะที่ผมเองใช้
งานภาษา PHP มานานพอสมควร อยากนำเสนอความเป็นมาของ PHP เชื่อว่าหลายท่านอาจจะเคยอ่าน
จากที่อื่นๆ มาบ้างแล้ว เพราะว่า PHP เป็นภาษาที่ได้รับความนิยมสูง จึงมีหนังสือและสื่อหลายชนิดทยอย
ออกมาให้เราได้อ่านกันอย่างจุใจ เอาละมาเริ่มกันเลยดีกว่า
ตอนเรียนอยู่มหาวิทยาลัยบูรพา ผมสร้างเว็บไซท์เป็นงานอดิเรกและทำมาเรื่อยๆจนกระทั่งถึง
ปัจจุบัน แต่ไม่ได้ยึดเป็นอาชีพแต่อย่างใด ช่วงเรียนปี 2 เป็นช่วงที่ผมเริ่มสนใจเขียนโปรแกรมทางฝั่ง
server-side ตอนนั้นตัวเลือกของผมมันมีหลายตัว เพราะว่า server ที่ทางมหาลัยให้ใช้มันมีภาษาให้
เราเลือกใช้หลายอย่าง ตั้งแต่ Perl,Unix Shell,C,C++,Python,PHP,Java ตอนนั้นผมยังไม่รู้จัก
PHP รู้แต่ว่าถ้าจะเขียนโปรแกรมทางฝั่ง server-side ต้องเขียนด้วย Perl เพราะหนังสือหาง่าย เล่ม
ที่ผมชอบมากที่สุดก็คงจะเป็นของอาจารย์นิรุธ อำนวยศิลป์ แห่ง Thaidev (ที่จริง อ.นิรุธ เป็นนักเขียน
ไม่กี่คนในประเทศที่ผมเห็นว่า เขียนหนังสือทางด้าน IT แล้วอธิบายได้เห็นภาพชัดเจน ไม่ใช่ไปลอกมา
จากหนังสือคนอื่นแล้วใส่ชื่อตัวเอง) และแล้วผมก็เริ่มเขียนโปรแกรมด้วย Perl
เคยอ่านประวัติผู้ที่สร้างภาษา Perl ก็คือคุณ Larry Wall ถือว่าเป็น Hacker ที่มีฝีมือ
ยอดเยี่ยมมากทีเดียว และวิถีการใช้ชีวิตก็ตามแบบสไตล์ Hacker ละครับ คือเป็นคนเรียบง่าย ให้ความ
สำคัญกับเงินทองไม่มากนัก แต่ชอบที่จะทำงานเพื่อสร้างสรรค์ในสิ่งที่ตัวเองรัก แม้ว่าตัวเขาเองจะมีชื่อเสียง
โด่งดัง และมีผู้คนทั่วโลกใช้งานโปรแกรมที่เขาสร้างขึ้นมา แต่เขาก็ไม่คิดไปเปิดบริษัทหาเงินจากสิ่งที่
เขาสร้างขึ้นมา เขาบอกว่ามันไม่ใช่ตัวเขา เขารักที่จะสนุกกับการแก้ปัญหา สนุกกับการเขียนโปรแกรม
มากกว่าจะไปปวดหัวกับการหาเงิน ส่วนใหญ่ Hacker ทางฝั่ง opensource จะเป็นอย่างนี้กันซะมาก
Larry Wall สร้างภาษา Perl เพื่อแก้ปัญหาเนื่องจากเขาใช้ภาษา C
เพื่อเขียน CGI แต่ต้องประสบกับความยุ่งยากหลายประการ ถ้าใครเคย
เขียน CGI ด้วยภาษา C/C++ จะรู้สึกได้ถึงความลำบากในการเขียน
เพราะ code จะยาวและต้องปรับแต่งการทำงานหลายอย่าง ยอมรับ
ในเรื่องความรวดเร็วในการทำงาน เพราะว่าโปรแกรมถูก compile เป็น
native code ทำงานได้ทันทีที่เรียกใช้ แต่ถ้าใครเขียนไม่ดี มีสิทธิ์ที่
จะเกิดปัญหาเรื่องการจัดการ memory ได้ง่ายๆ เพราะภาษา C/C++
ไม่มีตัวช่วยในการจัดการ memory อัตโนมัติเหมือน Java,C# ทำให้
บางทีเกิด Overflow,Memory leak, คราวนี้ละครับปวดหัวแน่นอน
ถ้าฝีมือไม่แจ๋วจริง เขาจะไม่ใช้ C/C++ เขียนกันครับ เพราะมันเสี่ยงหลาย
เรื่อง โดยเฉพาะเรื่องความเสถียรและความปลอดภัย จากปัญหาดังกล่าว
Larry Wall เขาต้องการให้การสร้าง CGI ทำได้ง่ายๆ เขาจึงสร้าง
Perl ขึ้นมาเพื่อเป็นเครื่องมืออำนวยความสะดวกในการสร้าง Web โดยเน้นไปที่การนำมาเขียน CGI เพื่อ
สั่งงาน server ให้ตอบสนองข้อมูลกับผู้ใช้งาน Perl ได้รับความนิยมเป็นอย่างมากและถูกบรรจุเอาไว้ใน
ระบบปฏิบัติการตระกูล Unix,Unix-clone แทบทุกรุ่นและเนื่องจาก server ส่วนมากจะเป็น Unix ทำให้
Perl แทบจะกลายเป็นเครื่องมือที่ขาดไม่ได้สำหรับการสร้าง CGI
เนื่องจาก Perl ได้รับความนิยมอย่างมาก มันจึงถูก Port นำไปใช้ในระบบปฏิบัติการหลายตระกูล
และถูกปรับแต่งเพื่อนำไปใช้งานหลายหลากนอกเหนือไปจากการสร้าง CGI ตั้งแต่งานธรรมดา ยันงานที่ต้อง
ติดต่อกับ Hardware เรียกว่าอยากให้ใช้ทำอะไรทำได้หมด จึงกลายเป็นภาษาอเนกประสงค์ (Multi
purpose language)
Perl ผ่านพัฒนาการมายาวนาน และถูกปรับปรุง เรียกว่า Hack กันมาซะจนพรุนว่างั้นเถอะ เราจึง
สามารถเขียน Perl ได้หลากหลายรูปแบบ ตามแต่ความถนัด ถ้าเคยไปอ่าน perl code ของพวก Hacker
แล้วจะปวดหัว เพราะบางอย่างถูกรวบรัดเสียจนสั้นนิดเดียว แต่ยังทำงานได้เหมือนเดิม คราวนี้ปัญหาคือ
เวลาที่เราจะ Maintenance มันจะยุ่งยากลำบากมาก บางทีคนที่จะมาพัฒนาต่อ อ่าน code แล้วงงไปเลย
เพราะว่ามันยืดหยุ่น free style เอามากๆ และโดยตัวภาษาเองก็มีการใช้สัญลักษณ์แปลกๆ หลายท่าน
รวมไปถึงตัวผมด้วย มาเจอช่วงนี้เข้าจะเริ่มท้อครับ ทำไมมันยุ่งยากจัง อ่าน code ไม่ออก อันที่จริง Perl
สามารถเขียน code แบบที่อ่านง่ายเป็นระเบียบได้เหมือนภาษาอื่นแหละครับ แต่คนอื่นเขาก็ไม่ได้เขียนเป็น
ระบบระเบียบตลอด ถ้าเราไม่ศึกษาไว้บ้าง เราจะอ่าน code คนอื่นไม่ออก ลำบากอีก แต่ถึงอย่างไร Perl
ก็ยังคงได้รับความนิยมอยู่ เพราะความยืดหยุ่นในการใช้งานนี่แหละ
ปัญหาทุกปัญหามีไว้ให้แก้ไข ตราบใดที่ยังมีการใช้งานอยู่ ปัญหาแต่ละอย่างจะต้องถูกแก้ไข
ให้หมดสิ้น ความยุ่งยากหลายเรื่องของ Perl ไม่ถูกใจนักพัฒนา จนกระทั่งมีชายอีกคนหนึ่ง แน่นอนเขาก็เป็น
Hacker อีกเหมือนกัน ต้องการแก้ปัญหานี้ จึงสร้างภาษาขึ้นมาอีกภาษาหนึ่ง และโฟกัสไปที่การแก้ปัญหา
ของการพัฒนา Web แต่เพียงอย่างเดียว โดยยืมเอาแนวคิดและรูปแบบมาจาก Perl แต่ทำให้ง่ายขึ้น จุดนี้เอง
คือต้นกำเนิดของภาษา PHP












January 17th, 2009 at 6:54 pm
ขอบคุณยังไม่สำคัญเท่ากับคำว่าสุดยอดจริงๆ บล็อกคุณนี่ ว่างๆ มาเยี่ยมบล็อกผมได้นะ