แปลสั้นๆ ว่าโครงสร้างภาษามันไม่สนับสนุนซีพียูหลายๆ หัวใช่ไหมครับ
ใช่เลยครับ
แล้วยังงี้เกิดมันออกรุ่นใหมขึ้นมา (สมมติ php7) มันจะสนับสนุนได้ไหมครับ
ได้ครับ
แต่คนคิดคนแรกเริ่ม ไม่ทำแล้ว (Rasmus Lerdorf,PHP1-2)
คนที่ทำปัจจุบันก็เป็นบริษัทซะแล้ว (Zeev Suraski and Andi Gutmans = Zend Technologies)
http://en.wikipedia.org/wiki/phpหรือมันผิดตั้งแต่เกิดแล้ว
ใช่เลยครับ
ต้องเกิดใหม่(ปรับโครงสร้าง)
ซึ่งจะทำให้ใช้ไม่ได้กับของเดิม (ไม่ compatible)
ปัจจุบันแค่ PHP5 ก็มีคนใช้น้อย(เหตุผลหลักเพราะ hosting ยังมีอยู่มากที่สนับสนุน PHP4.x และ PHP4.x ก็ทำงานที่ต้องการได้แล้ว)
ปัญหาของการที่คนใช้ PHP5 จำนวนไม่มาก กับ การมีจุดอ่อนเมื่อเทียบกับภาษาที่เกิดใหม่
การเปลี่ยนโครงสร้างอาจทำให้ดับดิ้นสิ้นใจไปก่อน(เหมือน PERL ซึ่งได้รับความนิยมน้อยลงมากๆ)
PERL มีข้อดีเรื่อง regular expression แต่ภาษาใหม่ก็ทำได้ (PHP ก็มีส่วนเพิ่มของ regular expression)
ปัญหาคือถ้าข้อดีโดนแทนที่(ปัจจุบันก็คงเป็นเรื่อง SourceCode เครื่องมือจำนวนมาก)ภาษาใหม่ๆจะเข้ามาแทนที่ทันที
note: แม้ว่า PHP จะมีจุดอ่อน แต่คงโตไปอีกพักใหญ่ๆ เพราะงานส่วนใหญ่ไม่ต้องการ multithread (งานเป็นลักษณะเวปหน้าต่อหน้า)php มันออกแบบ threading model ไว้สำหรับเป็น sub process ของ web server อยู่แล้วนี่ครับ?
ตัว PHP ไม่ได้ออกแบบสำหรับ threading model (นั้นแหละที่ทำให้ผมตระหนก)
แต่ OS/Web Server สามารถช่วยเรื่อง MultiThread ได้ครับ (แต่ไม่ดีเท่าภาษาที่ใช้) คือ PHP เป็น process ในแต่ละ Thread ของ web server
ให้ตัว web server จัดการเรื่อง thread ไปเลย ส่วน php ก็ process เฉพาะเว็บ
อันนี้ใช่เลยครับ เป็นสาเหตุหลักให้ PHP อยู่รอดได้ยาวไกล(ขนาดนี้)
แต่ถ้าเมื่อไรเราต้องการให้ตัว app ต้องทำงานหลายๆส่วน(ซึ่ง trend ก็เป็นแนวนี้ เช่นการทำงานในลักษณะคล้าย AJAX คือไม่เปลี่ยนหน้า ต้องมีบันทึกข้อมูลหรือติดต่อผู้คนหลายๆคนในเวลาเดียวกัน ต้องใช้ multithread
หรือใช้เทคนิคตามบทความด้านบน แต่ไม่ได้ใช้ power ของ multicore CPU ช่วย)
ก่อนตอบของคุณ icez ผมได้เขียน note ไว้(ตอนตอบคุณแอนนนนน) แต่โดนตัดหน้า
http://www.oreillynet.com/cs/user/view/cs_msg/25764 มีคนเคลมว่า JAVA เหมาะกว่า(ก็แน่นอน)
http://simonwillison.net/2004/Mar/31/phpAndApache2/ ทำไม PHP ไม่เหมาะกับ apache2
http://th2.php.net/manual/en/install.phpWarning
We do not recommend using a threaded MPM in production with Apache 2. Use the prefork MPM instead, or use Apache 1. For information on why, read the related FAQ entry on using Apache2 with a threaded MPM
http://th2.php.net/manual/en/install.unix.apache2.php ต้องปรับและใช้รุ่นให้ถูกต้อง
เอาเป็นว่าอย่าตกใจมากเกินไป
เพราะงานส่วนใหญ่ก็อาศัย OS/Web Server ช่วย (แม้ PHP จะทำได้แค่ process)