PHP เป็น Programming language หรือ ไม่ ไปพิสูจน์กัน

ก่อนจะไปพิสูจน์ ผมขอบอกก่อนเลยว่า บทความนี้ จะไม่พยายามไปชี้นำว่าตกลง PHP เป็น Programming language หรือ ไม่ แต่จะเป็นการไป research ข้อมูลมา เพื่อให้ผู้อ่าน นำไปตีความ หรือ discuss กันต่อไปเอง
PHP History
PHP เป็น server-side scripting language ถูกสร้างมาเพื่อ Web development จุดประสงค์ทั่วไปของมันก็คือ programming language ตัวนึง
เริ่มสร้างในปี 1994 First appeared ปี 1995 นี่ก็ประมาณ 23 ปีมาแล้ว
มีพื้นฐานของภาษา มาจาก ภาษา C
ผู้สร้างคือคุณ Rasmus Lerdorf
มีสัญลักณ์เป็นรูป ช้าง
ปัจจุบันที่ผมเขียนนี่ PHP ก็เดินทางมาจนถึง Major version ที่ 7 หรือ PHP7 แล้ว ref#1
ต้องยอมรับว่า PHP มี Community ที่สูงมาก ลองถาม Programmer 100 คน ต้องมีเกิน 70 คนที่เคยผ่านการใช้งาน PHP มาบ้าง ไม่มากก็น้อย เนื่องจากอะไร อันนี้ผมจะไม่ชี้นำ
ผลงานของ PHP มีตั้งแต่ระดับชนบท ไม่จนถึง ระดับโลกไม่ว่าจะเป็น CMS Wordpress (ไม่แน่ใจตอนนี้ย้ายไปใช้ภาษาอื่นหรือยัง), Facebook เองก็มีการใช้ PHP (เลิกใช้หรือยัง อันนี้ไม่แน่ใจ)
Framework ที่ถูกสร้างขึ้นมาให้ใช้งานก็มีเยอะมาก เช่น Laravel, Symsony, Yii, codeigniter, PHP cake และ อื่น ๆ
เกือบเป็น บทความขายของไปแล้ว ผมไม่ได้มาขายของ PHP มันทำอะไรได้ได้บ้าง ผมจะขอข้ามไปเลยแล้วกันนะครับ

List of programming languages by type
ต้องบอกว่า ปัจจุบัน มีภาษาทางโปรแกรมมิ่ง เยอะมาก ซึ่งเขามี List ของ programming languages แบ่งออกเป็น 49 type ผมไม่ได้เขียนผิดครับ สี่-สิบ-เก้า ไทป์ จากการ research ซึ่งท่านสามารถตามไปดูได้ที่ ref2# ด้านล่างของบทความ ผู้เขียนเองก็เพิ่งรู้ ว่ามี type เยอะขนาดนี้ เรามาดูกันว่า 49 type นั้น มีอะไรกันบ้าง
- Array languages
- Assembly languages
- Authoring languages
- Constraint programming languages
- Command line interface languages
- Compiled languages
- Concurrent languages
- Curly-bracket languages
- Dataflow languages
- Data-oriented languages
- Decision table language
- Declarative languages
- Embeddable languages
- Educational languages
- Esoteric languages
- Extension languages
- Fourth-generation languages
- Functional languages
- Hardware description languages
- Imperative languages
- Interactive mode languages
- Interpreted languages
- Iterative languages
- Languages by memory management type
- List-based languages – LISPs
- Little languages
- Logic-based languages
- Machine languages
- Macro languages
- Metaprogramming languages
- Multiparadigm languages
- Numerical analysis
- Non-English-based languages
- Object-oriented class-based languages
- Object-oriented prototype-based languages
- Off-side rule languages
- Procedural languages
- Reflective languages
- Rule-based languages
- Scripting languages
- Stack-based languages
- Synchronous languages
- Shading languages
- Syntax handling languages
- System languages
- Transformation languages
- Visual languages
- Wirth languages
- XML-based languages
แล้วในแต่ละ Type ก็อาจจะมีภาษาที่ซ้ำกัน เนื่องจาก 1 ภาษา ก็เป็นไปได้หลายไทป์
List of PHP by type
เรามาดูกันว่า PHP อยู่ใน Type ไหนบ้าง PHP ของเราติดอยู่ถึง 8 Type มีดังนี้
- Curly-bracket languages
- Imperative languages
- Interpreted languages
- Iterative languages
- Multiparadigm languages
- Object-oriented class-based languages
- Reflective languages
- Scripting languages
จะเห็นว่า PHP ติดตั้ง 8 คิดเป็น เปอเซ็นต์ก็ 16% อ่าวไม่เกี่ยว
Types of languages
จากข้างบน จะเห็นว่า มี type เยอะมาก ซึ่งจริง ๆ แล้ว ถ้าหากจะให้แบ่งกันให้เข้าได้ได้ง่ายขึ้น จะมีอยู่ด้วยกัน 3 type
- Machine language หรือ ภาษาเครื่องนั่นเอง ซึ่งเป็นภาษาที่ประกอบด้วย 0 กับ 1 หรือ bits นั่นเอง
- Assembly language ภาษานี้ ดีขึ้นมาหน่อย มีความเป็นมนุษย์มากขึ้น ไม่ต้องใช้แค่ 0 กับ 1 แล้ว แต่ก็ยังสามารถติดต่อกับพวก hardware ได้ตรง ๆ
- High-level language เป็นภาษาระดับสูง พวกภาษาที่ไม่ได้ไปต่อกับเครื่องโดยตรง ไม่ได้ต่อกับ CPU register, CPU Cache, I/O port อะไรพวกนี้ ไม่ใช่ว่ามันไปต่อเครื่องไม่ได้นะครับ มันต่อได้ผ่าน compiler ภาษาพวกนี้มีความเป็นมนุษย์มากขึ้นมีการใช้ภาษาที่มนุษย์ทั่วไปอ่านแล้วเข้าใจได้ ซึ่ง C, C++, COBOL, JAVA, C# หรือ PHP ก็อยู่ในระดับนี้
เขียนอีกนิดจะกลายเป็นบทความ programming 101 แล้ว เอาเป็นว่า 3 type ใหญ่นี้ ยัง group ได้อีก โดยที่ จะแบ่งออกได้เป็น 2 หมวด ดังนี้
- Low-level language ก็จะมี Machine language กับ Assembly language
- High-level language ซึ่งก็ได้กล่าวถึงไปแล้วด้านบน
Interpreter And Compiler
ในเมื่อ PHP จัดอยู่ในหมวด High-level language ดังนั้น เราก็จะมาพูดกันต่อถึง ความแตกต่างของ Interpreter และ Compiler ซึ่งตัวภาษา PHP อยู่ในหมวด Interpreter
Interpreter
- แปลงคำสั่งหนึ่งชุดพร้อมกัน
- ใช้เวลาน้อยในการ analyst source code แต่เวลาในการ execute โดยรวมจะช้าลง
- ไม่มีการสร้าง object ใช้ memory ไม่มาก
- ทำการ translate โปรแกรมจนกว่าจะเจอข้อผิดพลาดถึงจะหยุด ทำให้การแก้ไขข้อบกพร่องจึงเป็นเรื่องง่าย
- ภาษาที่เป็น Interpreter นอกจาก PHP ก็ python, ruby และ อื่น ๆ
Compiler
- แสกนโปรแกรมทั้งหมด แล้วแปลงเป็นภาษาเครื่อง
- ใช้เวลาเยอะ ในการ analyst source code แต่เวลาในการ execute โดยรวมจะเร็ว
- มีการสร้าง object มาไว้ใช้งาน จำเป็นต้องใช้ memory มากกว่า
- จะแสดงข้อผิดพลาด หลังจากแสกนโปรแกรมทั้งหมดเสร็จแล้ว
- ภาษาที่ใช้ Compiler เช่นพวก C, C++, JAVA

Conclusion
PHP เป็นภาษาที่ครองใจผู้ใช้ทั่วโลก มี community มากมาย คุณสามารถหัดเขียนโปรแกรม จาก PHP ก็ได้ ไม่ว่าคุณจะติดปัญหาอะไร แค่คุณ Search ให้ถูก keyword ผมว่ายังไงก็เจอคนตอบครับ
PHP ประกาศเองว่าตัวเองเป็น scripting language ซึ่งมันก็อยู่ใน 49 type ถูกจัดอยู่ใน High-level language โดยที่เป็น Interpreter
สุดท้ายนี้ ก็ขึ้นอยู่กับท่านผู้อ่านแล้วครับ ว่าตกลงแล้ว PHP เป็น Programming language หรือไม่
ref1# wikipedia.org PHP
ref2# wikipedia.org List_of_programming_languages_by_type
ref3# php.net
