ว่าด้วยเรื่อง [OOP] PHP5 VS ASP.Net

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

อาจารย์พยายามจะแนะนำให้ใช้ ASP.Net เป็นภาษาเขียน ซึ่งตัวผมถนัดไปในทาง PHP มากกว่า

และได้นำหลักการเขียน PHP แบบ OOP ไปอธิบายด้วย อาจารย์กล่าวถึง เรื่องคุณสมบัติของ OOP

ซึ่งที่ผมดูแล้วก็(คิด)ว่ามีครบหมดสำหรับ PHP

พอลองได้ไปสืบค้นเกี่ยวกับ OOP ระหว่าง ASP.Net และ PHP

หลายคนจะบอกว่า ASP.Net เป็น OOP ที่สมบูรณ์แบบ (ไม่เถียง) และ PHP นั้น การเขียนแบบเชิงวัตถุยังไม่สมบูรณ์ ?

แต่ว่าภาษาในการเขียนคล้ายกันมาก แทบจะลอกกันเด๊ะ ๆ เลย แตกต่างกันตรง Syntax (อันนั้นปกติ)

หลายคนที่บอกว่า PHP OOP ไม่สมบูรณ์ ไม่เห็นมีใครบอกเลยว่า เพราะอะไร ? มีใครพอจะทราบบ้างมั้ยครับ ว่ามันต่างกันยังไง

หาเท่าไหร่ก็ไม่เจอเหตุผลจริง ๆ เห็นฝรั่งเถียงกันไปเถียงกันมา - -*

หากจะให้สมบรูณ์แบบโปรแกรมเชิงวัตถุต้อง C++ ครับ
ทั้ง PHP และ ASP ยังไม่ใช่ครับ แค่เลียนแบบ

มันไม่มีเหตุผลที่อธิบายได้ใช่หรือเปล่าครับ

asp.net นี่ Full OOP เลยนะครับ html มันยังถือว่าเป็น object นึงเลย เรียกใช้งานได้หมด
ส่วน PHP5 ด้าน oop ยังไม่สมบูรณ์ครับ ขาด namespace (ซึ่งกำลังมา) กับการจัดการ event handler

ถ้าเอากันตามทฤษฎี ขณะนี้ไม่มีภาษาใดเป็น OOP 100%

แต่ถ้านับว่าเป็น OOP เต็มตัว

ASP.net นี่ OOP เต็มตัวจริงๆครับ

PHP เองก็เขียนได้ ถ้าแนวคิดเป็น OOP แล้วทำ OOP ออกมาด้วย PHP ก็ไม่เสียหายครับ PHP เองก็ไม่น้อยหน้าเรื่อง OOP แต่บางเรื่องอย่างที่ ice บอก ก็ยังขาดไป

framework นั้นก็ออกมากันเพียบเลยน่าใช้ทั้งนั้นครับ ไม่น้อยหน้า ASP.net แต่คงสู้ Visual Studio ไม่ได้ T_T มันเจ๋งจริง ง่ายจริง วุ่นจริงด้วย

ขอบคุณท่าน Icez มาก ๆๆๆ เลยครับ ที่บอกสิ่งที่ขาดหายไป และขอบคุณสำหรับทุกความเห็นนะครับ จากที่อ่านมาพอเข้าใจแล้วครับว่ามันต่างกันยังไง

:unsure: ที่ผมบอกเป็นแค่ที่ผมรู้อะครับ เอาจริงๆ ยังขาดอีกเพียบเลย แต่นึกไม่ออก

กำลังทำ Project อยู่เลยครับ

Visual Studio 2008 (C#)

ทำ PHP Compiler Over .NET ซิครับ

ขายกันหลายบาทอยู่นะ :wub:

ไม่เคยชอบ Microsoft เลย… ภาษา C, C++ ไม่มีวันตาย… เจ้า MS ก็ยังเอามาทำในเนมของตัวเองเป็น C# บ้าบออะไรก็ไม่รู้ MS พยามบิดเบือน Original ทุกอย่าง

TCP/IP ก็เช่นกัน สมัยโน่น MS ชู่โรงเอาแต่ NetBIOS แล้วไงล่ะ อยู่ TCP/IP ก็นิยมใช้งานใน Internet จริงๆก็ใช้งานมานานมากแล้ว ก่อนที่ MS จะสร้าง OS ที่มี Network ซะด้วย

มาเรื่องภาษา ก็เช่นกัน ที่เห็นว่าดีก็แค่ภาษา Basic
แต่ระยะผ่านไปเข้า Basic ก็ไม่สามารถที่จะลบล้างภาษา C ลงได้ ทุกวันนี้ก็ยังล้างไม่ได้
เราๆก็ใช้ภาษา C, Perl กันโดยไม่รู้ตัว ไม่ว่าจะ Unix, Linux ล้วนแต่เป็น C Compiler สร้างมาทั้งนั้น 100% เลยด้วย
กับความพยามครั้งใหม่ MS สร้าง C# ออกมา… แท้จริงมันก็คือ C++ นั้นเอง

เด็กรุ่นใหม่ก็คิดเอาว่า MS สร้างโน่นสร้างนี่ ผมล่ะไม่ชอบเลย ยังไงๆมันก็คือ C, C++

อืมมม

นั่นซิ ขนาด oop ยังไม่ 100% ยังดีขนาดนี้

ถ้า 100% จะขนาดไหนนะ

lol

OOP ไม่ใช่ของวิเศษอะไร… โปรแกรมเชิงวัตถุภาษาแรกคือ C++ ที่สืบทอดมาจากภาษา C
โปรแกรมเชิงวัตถุ มองทุกอย่างเป็นคลาส ในแต่ละคลาสมันก็มีสมาชิกคุณสมบัติประจำตัว

วัตถุอย่างไร… คือ

ผลไม้ ก็มีสมาชิกเป็น ส้ม, ส้มโอ้, ส้มเปรี้ยวหวาน เหล่านี้เป็นคลาสของผลไม้ และยังแตกออกไปเป็นผลไม้ประเภทๆอีกเช่น ทุเรียน, หน่อยหน่า, มังคุด อะไรประมานนี้

เมื่อก่อนก็บ้าซื้อ text มาอ่านเรื่อง OOP/C++ อยู่พัก ทำไงก็ไม่เข้าใจ ไปไม่ถึงดวงดาว
แต่ที่รู้ๆ OOP สร้าง Framework (Class) ต่างๆมากมาย มันจึงง่ายต่อการหยิบมาใช้งาน แต่ก็นั้นแหละ Overhead ของโปรแกรมจะสูงมาก พอเรามาทำงานโปรแกรมเข้าจริงๆ ก็หนีไม่พันหย้บ “C” เพียวๆมาทำโปรแกรมๆนั้น ทั้งเล็กทั้งเร็ว ม้วนเดียวจบ ไม่มี Overhead/Overtime ให้หนัก

หากมุ่งมั่นงานโปรแกรมมิ่งจริงๆ จับภาษา C ตัวเดียวจบ ไปได้ทุกแฟลตฟอร์ม สักพักก็จับ C++ ได้…แล้วก้าวไป Java ซึ่งตัวหลังนี่ค่อนข้างเห็นชัดว่ามันน่าจะเป็น OOP มากกว่า ไหนจะทำงานได้ทุก Environment ขอแต่มี Java Runtime.

อ่าฮะ

ขอบคุงครับที่ช่วยให้เห็นภาพแจ่มแจ้ง

แต่จะเขียนอย่างไรนี่ล่ะ

ภาษาซี ยังน้อยนิดเลย แค่ไม่ให้ โอเวอร์ลูปเป็นพอ ><

อิอิ

ผิดครับ ภาษาแรกที่มีการใช้หลักการ OOP คือ SIMULA (1962) ครับ แก่กว่า C++ มากครับ C++ เกิดปี 1983

ภาษา Simula ครั้งนั้นเขียนบนอะไรครับ ช่วยเล่าสู่กันฟัง

ผมว่า Simula-67 (1967) นะครับ เท่าที่เคยอ่านหนังสือมา

เพิ่มเติม

C# เขียนง่ายครับ (ผมเขียน Java คล่อง)

ผมหัด 3 วัน เขียนโปรแกรม บน Mobile ส่ง ImagineCup เนี่ย

ที่ยากคือ การ Implement ได้กับ Environment ต่างๆ

SIMULA ปี 62 ครับที่เริ่มมีแนวการพัฒนาแบบ OOP โดยสืบทอดมาถึง Simula-67 (1967) ด้วย
Simula พัฒนาบนภาษา Algol 60 มีการใช้งานในเครื่อง Burroughs B5500 และ URAL 16

ทั้งหมดได้แต่เคยอ่านมา เกิดไม่ทัน -_-!

ภาษาที่ผมหัดเขียนภาษาแรกคือภาษา Pascal และภาษาที่สองคือภาษา C หลังจากได้ศึกษาภาษา C แล้วก็หลงไหลกับไวยกรณ์ของภาษานี้
จะเขียนให้เป็น Structure ก็ได้ หรือเขียนแบบไม่เป็น Structure ก็ได้

เรื่องที่ยากที่สุดของภาษา C คือตัวแปร Pointer หากใช้ Pointer ไม่ดีจะเกิด Floating Point Error เกิดขึ้น
และ Tool ที่ชอบมากที่สุดคือ Borland Turbo C 2.0 สมัยนั้นก็มี Tool ภาษา C หลายตัว

DBMS ที่ใช้ภาษา C ตัวแรกก็คือ B-tree สมัยนั้นเขียน C ให้ Clipper Call Function แสดงผลภาษาไทย (ยุค Card IRC, RLab) ต่อมาเจ้า C++ ก็เริ่มได้รับความนิยมก็อยู่ในช่วง Windows 3.0 ประมานนั้น นี่ก็ผ่านมาจะยี่สิบปีแล้วสิ ที่เห็นภาษา C/C++ ยังคงได้รับความนิยมมาโดยตลอด

PHP ก็โครงสร้างเดียวกับภาษา C เท่าที่จับๆมาแต่ก็ยังเป็นแบบ CGI อยู่มาก
ก็หลายปีมากแล้วที่ไม่ได้จับโปรแกรมภาษาครับ เพราะตั้งแต่ Netware ออกมาผมก็หันหน้าเข้าหา Network System แต่นั้นมา ก็มีประทับใจ Windows NT นะ…

หากจะเทียบระหว่าง PHP กับ .NET ผมว่ามันเทียบกันไม่ได้ มันคนละ Class กันเลยครับ ต้องเทียบ .NET กับ Java มากกว่า หรือกับ EJB อะไรพวกนั้น
ส่วน OOP มันเป็นแค่ Concept เท่านั้น…หามิใช่ภาษาแต่อย่างใด แต่ภาษาไหนรองรับ Concept นี้ที่เห็นๆและชัดเจนที่สุดก็คง C++ เท่าที่ผมทราบ
ส่วน C# ก็คือ C++ นั้นเองครับ แค่ MS เปลี่ยนชื่อให้เหมือนเป็น Original Language

ที่ผมสนใจคือ Web Object ของ Apple มากกว่าครับ ตัวนี้แหละที่ควรจะเทียบชั้นกับ C# Framework ของ MS