PHP กำลังจะตาย?

เริ่มโพสต์โดย ลุงซัน, 14 ก.ค. 2008, 22:01 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

iannnnn

:46: ขอบคุณครับจารย์ซัน


นี่ขนาดผมไม่รู้เรื่องนะเนี่ย
อ่านๆ ไปเหมือนกำลังเรียนวิชาอะไรสักอย่างเลยครับ
สนุก ตื่นเต้น เร้าใจ :30:

ลุงซัน

หน้าตาของคนทำ PHP (มาพูดเรื่อง PHP6)

http://www.builderau.com.au/video/embed/22433657

ืnote:กำลังคิดว่าจะกระโดดไป PHP6 เลยดีไหม(เพราะมี feature หลายอันที่น่าสนใจเช่น unicode,build-in caching)
http://php6dev.blogspot.com/
http://davidwalsh.name/upcoming-php6-additions-changes
http://www.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

icez

ส่วนตัวผมคิดว่า ถ้า php ไม่คิดจะเจาะตลาด general purpose programming
คือปล่อยให้เป็น web programming 100% อย่างนี้ ก็คงใช้ model แบบเดิมได้
(ปล่อยให้ web server จัดการ thread)

แต่ถ้าจะทำ high performance computing สำหรับรับงานโหดบัดซบ
ประเภทเว็บ google ไรเงี้ย ผมว่า php ก็ไม่ค่อยเหมาะครับ
สาเหตุหลักเพราะเรื่อง scalability เลย
คุมเว็บใหญ่ๆ เยอะ เจอข้อจำกัดของ php แบบยุบยับไปหมดเลย

ลุงซัน

อ้างคำพูดจาก: icez เมื่อ 15 ก.ค. 2008, 01:53 น.
ส่วนตัวผมคิดว่า ถ้า php ไม่คิดจะเจาะตลาด general purpose programming
คือปล่อยให้เป็น web programming 100% อย่างนี้ ก็คงใช้ model แบบเดิมได้
(ปล่อยให้ web server จัดการ thread)

แต่ถ้าจะทำ high performance computing สำหรับรับงานโหดบัดซบ
ประเภทเว็บ google ไรเงี้ย ผมว่า php ก็ไม่ค่อยเหมาะครับ
สาเหตุหลักเพราะเรื่อง scalability เลย
คุมเว็บใหญ่ๆ เยอะ เจอข้อจำกัดของ php แบบยุบยับไปหมดเลย
เห็นด้วยอย่างยิ่ง
หรือเพราะผมคิดมากไป(คิดใหญ่เกินไป)  :43:
เลยกังวลมากไป
http://www.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

icez

ตอนนี้ที่อยากได้ที่สุดคือ วิธี load balancing ของ php แบบง่ายสุดๆ
ให้ไม่ต้องนั่ง sync ข้อมูลข้ามเครื่องอยู่ นึกแล้วปวดหัวมากมาย T_T

ลุงซัน

อ้างคำพูดจาก: icez เมื่อ 15 ก.ค. 2008, 01:57 น.
ตอนนี้ที่อยากได้ที่สุดคือ วิธี load balancing ของ php แบบง่ายสุดๆ
ให้ไม่ต้องนั่ง sync ข้อมูลข้ามเครื่องอยู่ นึกแล้วปวดหัวมากมาย T_T
แยก tier ก็ทำได้แล้ว? sync ข้อมูล? ขยายความหน่อยครับ..
http://porteightyeight.com/archives/121-The-Hitchhikers-Guide-to-PHP-Load-Balancing.html
http://www.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

นายโอ้เอ้

อืม ไม่เคยคิดเรื่องอะไรอย่างนี้มาก่อน สักแต่ว่าจะใช้ส่วนใหญ่  :31:


เอาความรู้อันน้อยนิดคิดมาได้อย่างนี้

php มันเน้นเอามาใช้ในด้าน web app เรียกว่าเกือบจะ 100%
แล้วก็ทำงานแบบเป็นเบี้ยล่าง web browser อีกที
ผ่านมากี่ปีกี่ปี งานด้านนี้มันก็ยังซ้ำซาก วนเวียนอยู่ในแบบเดิมๆ

แต่ในขณะภาษาอื่น อย่าง python ruby  มีการขยับขยายตัวและทำได้มากกว่าทำเว็บ ???



php เกิดมาเพื่องานเว็บตั้งแต่เริ่ม และเกิดบน unix
ซึ่งพื้นฐานโปรแกรมบน unix ส่วนใหญ่มัน fork ???


(มี ??? เพราะผมไม่มั่นใจ  :30:)

ไม่ได้เรียนคอมแต่ก็พอรู้เรื่องมาบ้าง เพราะ apache แท้ๆ เลย
มันมี prefork กับ worker

แต่ส่วนใหญ่เขาแนะนำให้ใช้ prefork มากกว่า worker ที่เป็น multithread
โดยให้เหตุผลว่า unix ยังมีการจัดการเรื่อง memory กับ thread ยังไม่ดีพอ ???
เรื่อง thread ยังเป็นรอง windows อยู่อีกมาก ???

(มี ??? อีกแล้ว  :30:)

Today you , Tomorrow me.

ลุงซัน

#22
อ้างคำพูดจาก: นายโอ้เอ้ เมื่อ 15 ก.ค. 2008, 02:12 น.
php มันเน้นเอามาใช้ในด้าน web app เรียกว่าเกือบจะ 100%
แล้วก็ทำงานแบบเป็นเบี้ยล่าง web server อีกที
ก็เพราะเน้นการใช้หน้าเวปเป็นหลักทำให้มีข้อจำกัดเยอะ

อ้างอิง
ผ่านมากี่ปีกี่ปี งานด้านนี้มันก็ยังซ้ำซาก วนเวียนอยู่ในแบบเดิมๆ
งานเวปกำลังเปลี่ยนไปเยอะ(หลังจากการมาของ web 2.0 กำลังไป web 3.0 และ Software as a service (SaaS))
เราคงต้องยอมรับว่าเวปกลายเป็น Interface ที่คนทั่วไปยอมรับ(ใช้ง่าย ใช้สะดวก และ ใช้ได้ทุกที่ทุกเวลา)
ปัญหาคือระบบที่ภายใต้ข้อมูลของเวปนั้นมีอีกมากมาย
โดยเฉพาะการวางโครงสร้างไอที ซึ่งตอนนี้นิยมใช้เป็น SOA
http://en.wikipedia.org/wiki/Service-oriented_architecture
http://mfatix.com/home/node/112 <- vdo น่าสนใจดี
http://blog.middleware.co.th/2007/07/soa-1.html
ระบบเริ่มเข้าสู่การให้บริการเป็นหลัก(Service-Oriented)

โดยการพัฒนาระบบเน้นเรื่อง agile development ไม่งั้นไม่ทันการ
ก่อนที่จะไป agile development ฐานของมันก็คือ OOP และ Pattern Design
แต่ PHP แทบจะไม่รองรับ OOP เลย(จนถึง PHP5) นั้นเป็นปัญหาที่ผมไม่ได้จับ PHP อย่างแข็งขัน
เดิมผมจับ .net ซึ่งมี solution ค่อนข้างครบ(แต่คงเทียบกับ JAVA ตอนนี้ไม่ได้)
และ .net ก็มีกับ windows ซึ่งเราก็รู้ว่า friendly กับคนไทยมากๆ(ไม่ว่า interface หรือ engine ของภาษาไทย การตัดคำ database/searching ..etc)
ผมหันมาหา PHP เพราะ license ของ windows/MS SQL นั้นแพงมหาโหดสำหรับคนไทย
แต่พอมาจับก็พบว่า PHP นั้นเหมาะแค่ web applications ไม่เหมาะกับการ implement ทั้งระบบ(แม้ว่าจะเป็นระบบที่ใช้เวปเป็นหลัก)
core หลายอย่างยังต้องใช้ภาษาอื่นช่วย (กะจะฝากผีฝากไข้กับ PHP ซะหน่อย เพราะวัยเริ่มเกินที่จะเรียนรู้อะไรใหม่ๆมากมาย  :05:)

อ้างอิง
แต่ในขณะภาษาอื่น อย่าง python ruby  มีการขยับขยายตัวและทำได้มากกว่าทำเว็บ ???
จริงๆทั้ง python และ ruby ก็เกิดมาในยุดของเวป
แต่เพียงเขาไม่ได้จำกัดแค่ web application เลยทำให้งานอื่นทำได้ดีกว่า PHP (เช่นสร้าง SOA สำหรับให้บริการ services ต่างๆของ web applications อีกที)

อ้างอิง
php เกิดมาเพื่องานเว็บตั้งแต่เริ่ม และเกิดบน unix
ซึ่งพื้นฐานโปรแกรมบน unix ส่วนใหญ่มัน fork ???
อันนี้คงไม่ใช่เหตุผลหลัก
เพราะแม้กระทั่ง PERL ซึ่งเกิดขึ้นก่อนยังมี multithread
http://www.perl.com/doc/manual/html/lib/Thread.html
PHP ซึ่งเกิดจากการแทนที่ PERL เป็นหลัก(เพื่อทำ homepage ส่วนตัวและนับจำนวนผู้เข้าใช้งาน,ประวัติ PHP) ไม่ได้วางโครงสร้างที่ดีไว้ก่อนเลยไม่รองรับระบบขนาดใหญ่
ชื่อของ PHP คือ personal home page ซึ่งเป็นการบอกกลายๆว่าเป็นเวปสำหรับบุคคล(ตอนหลังเปลี่ยนคำเต็มเป็น PHP:Hypertext Preprocessor)

อ้างอิง
ไม่ได้เรียนคอมแต่ก็พอรู้เรื่องมาบ้าง เพราะ apache แท้ๆ เลย
มันมี prefork กับ worker
แต่ส่วนใหญ่เขาแนะนำให้ใช้ prefork มากกว่า worker ที่เป็น multithread
โดยให้เหตุผลว่า unix ยังมีการจัดการเรื่อง memory กับ thread ยังไม่ดีพอ ???
เรื่อง thread ยังเป็นรอง windows อยู่อีกมาก ???
การใช้ fork ไม่ใช่ไม่ดี
การใช้ fork แยก child process ออกจาก process หลัก ทำให้ผลกระทบของ child process ไม่กระทบกับ process หลัก
ถ้า main process กับ child process สนับสนุน multithread ก็จบ เพราะจะใช้ประโยชน์ของ multicore ได้เต็มประสิทธิภาพ

เรื่องที่ใช้ prefork มากกว่า worker
เป็นเพราะระบบใช้ PHP เป็นหลัก(ซึ่่ง PHP ไม่สนับสนุนการทำงานแบบ multithread และ ได้ออกคำเตือนสำหรับ apache 2.0 ดังที่ผมกล่าวก่อนหน้านี้
Warning
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

จริงๆแล้วการใช้ worker ดีกว่า prefork มาก ลองดูผลของการทดลองของคนนี้ดู
http://www.camelrichard.org/apache-prefork-vs-worker
So for this setup, the worker MPM was almost twice as fast as the prefork.

unix ทำ fork และ multithread ดีกว่า windows เยอะ
แต่ที่เราไม่ได้ยินเรื่อง fork ของ windows เพราะ windows ทำไม่ได้(ต้องเสริม)เลยได้ยิน windows คู่ multithread ตลอด

http://www.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

Earthchie

สนใจแฮะครับ

ผมอ่านเหมือนจะรู้เรื่องเลยครับ  :30:

พออ่านจบ ถามตัวเองว่า เข้าใจมั๊ย  :44:

แต่น่าสนใจครับ

เหมือนพี่แอนว่าครับ ตื่นเต้น เร้าใจ  :43:
ชื่อ Earth ครับ เรียกเอิดก็ได้ | Earthchie's Blog

ก๊อฟ

ผมว่าน่าจะอีกนานอยู่นะ

กว่าเว็บเล็กๆน้อยจะหันไปสนใจเรื่องใหญ่ๆพวกนี้

แล้วตอนไหน?
ผมคิดว่า คงรอให้มีเว็บเกลื่อนโลก
จนทำให้เว็บโหลดช้าลง

คนจึงจะหันไปสนใจเทคโนโลยีที่จะมาทำให้เว็บตัวเองประมวลผลเร็วขึ้น โหลดเร็วขึ้น
:33:
Gear : Canon 450D
Lens : ฯลฯ
Flash : Canon 580ex II
ขับขี่ปลอดภัย เปิดไฟใส่หมวกกันน็อก...คาดเข็มขัดนิรภัย...ตั้งสติก่อนปั่นกระจู๋

นายโอ้เอ้

ขอบคุณลุงซันมากครับ เปิดโลกขึ้นอีกเยอะเลย  :46:
Today you , Tomorrow me.

เทอร์โบบูสเตอร์

ด้วยความเคารพครับ   :46:




ลุงซัน เจ๋งโคตรๆครับ  :12:
กาก

ลุงซัน

ผมไม่เจ๋งหรอกครับ มีคนเจ๋งกว่าผมอีกมากมายมหาศาล (แต่ผมไม่ชอบพวกชุบทองนะ ประเภทโดนปะทะแล้วทองลอก)
------
พอเจอว่า PHP ไม่ support multithread ก็เลยลองหาทางเลือก ดูเรื่อง scalability
ลองดูภาษาทีมาแรงเช่น Ruby กับเจอว่า ไม่ค่อยมีกรณีที่เป็นระบบใหญ่
http://www.rubyonrailscamp.com/Scalability+and+Performance+Testing
No large projects have been tried yet with rails

แต่ก็เวปขนาดใหญ่ที่เขียนด้วย ruby on rail คือ twitte แต่เบื้องหลังก็มีภาษา Erlang ที่ถือว่าเป็นสุดยอดของเรื่องการรับงานโหดๆ(เป็นภาษาที่ใช้ในระบบโทรศัพท์ของ Ericsson แล้วมา opensource ให้้ใช้กัน)
มีใครเขียน Erlang เป็นก็สอนหน่อยนะครับขี้เกียจนั่งอ่าน

ส่วน python ที่เห็นชัดๆก็ google,google video (youtube ก็ไป python แล้ว?)

แต่ PHP ก็มีมากไม่น้อย flickr ก็เขียนด้วย PHP
yahoo,digg ก็ PHP
จริงๆก่อนจะจับ PHP ก็ศึกษากรณีต่างๆหลายกรณีเพื่อความมั่นใจและพบว่าเวปขนาดใหญ่ก็ใช้ PHP
ยิ่งเจอ Tim Bray พูดเรื่อง JAVA เทียบกับ PHP ยิ่งไปกันใหญ่
http://blog.thinkphp.de/archives/170-Keynote-of-Tim-Bray-some-interesting-comparison-between-PHP,-Rails-and-Java.html
สรุปว่า PHP สามารถใช้ได้กับระบบใหญ่ แต่อาจไม่เหมาะกับงานที่เป็น Core หลัก(แต่จริงๆแล้วส่วนมาก Core หลัก ก็คือ database)
go ahead ต่อกับ PHP เนี่ยแหละผม เพราะหาเหตุผลประกอบหลายๆอย่างเช่น
1.ถ้าจะทำระบบที่ซับซ้อนขึ้นก็คงหาคนช่วยได้ง่าย
2. SourceCode (ทั้งฟรีและ commercial) มีเยอะมากๆ
3. แห่งข้อมูลและเอกสารมีเยอะจริงๆ
-----------------
note:
ถ้าผมจะแต่งหนังสือเกี่ยวกับการออกแบบระบบใหญ่ๆสักเล่มจะมีคนสนใจไหมครับเนี่ย (หรืออาจจะมาเขียนเป็นตอนๆในหิ้งคอมฯก็ได้)

http://www.thaibuddy.com (ฟรีดิกชันนารี่ ชี้แล้วแปล)
ผมรู้เล็กน้อย

ยุนเอ



สนใจมากๆ เลยครับ  :25:
เราจะต้องการอะไรมากมายไปกว่า อะไรมากมาย

poloh

ก่อสร้างกับทำลาย เหมือนที่ลงมือ ต่างที่การกระทำ

SMF 2.1.7 © 2026, Simple Machines