Monday, July 30, 2007

PHP ...PHP4 PHP5 PHP6.. PHP....

PHP 5 có lớn song chưa thể nói là trưởng thành......

Và sự kỳ vọng dồn sang PHP6....

Khi mà trên mạng có một "chiến dịch" vận động các host server chuyển
sang PHP5, khi mà có nhiều người ca tụng sự ưu việt của PHP5 so với
PHP4 (hiển nhiên), thì Matthew Mullenweg ( thường gọi là Matt), tay
chèo chính của ứng dụng web blog phổ biến Wordpress, có những suy nghĩ
rất đáng đem ra bàn cãi:

http://photomatt.net/2007/07/13/on-php/

Matt khư khư với PHP4, dè dặt với PHP5, không ngoan chờ đợi PHP6?

Wordpress đâu phải có chất lượng mã (code) tuyệt vời mà ngược lại.
http://mgeisler.net/2005/05/wordpress-code-quality/

Nhưng chất lượng mã của Wordpress dở ẹc, việc Wordpress dùng PHP5 hay
không, những điều này không quan trọng, một khi Wordpress đang độc tôn
trong giới blog app, khi mà người dùng ưng ý, khi mà ăn dơ với nó là
bao nhiêu plugin viết bằng PHP4.

Thái độ của Matt có thể hiểu được.

Có những tay "sành" PHP lên tiếng diễu Matt, chê Matt là tay coder tồi
nhưng được cái là sành marketing nên thành công...(cái này giống Bill
Gate). Công nghệ thì đầy khiếm khuyết nhưng sản phẩm thì chiếm lĩnh
thị trường, có số người sử dụng đông đảo. Matt diễu lại chơi: Có giỏi
thì viết lại 1 blog app từ con số không, dùng PHP5 và khiến nó phổ
biến(popularity) như Wordpress.

What Matt Mullenweg doesn't know about PHP5, and how it hurts him and
his users?

http://funkatron.com/index.php/site/comments/what-matt-mullenweg-doesnt-know-about-php5-and-how-it-hurts-him-and-his-use/

Câu chuyện này khiến anh chị nghĩ gì về PHP, về nghề IT, về chuẩn mực,
về tính chuyên nghiệp?

Dĩ nhiên Matt không phải là Rasmus hay Andy, Rasmus hay Andy cũng
không phải là Matt?

Và Việt Nam KHÔNG CÓ Matt, Rasmus hay Andy. Đó là điều CHẮC CHẮN.

------------------------------------------------------------------------

Quan điểm của Matt hay Mann hay ABC gì đó trong các tình huống kiểu
này là quan điểm của một anh bán thịt lợn trong mùa có dịch, khăng
khăng bảo vệ sự yên ổn của mình. Matt nghĩ gì trong đầu nhỉ (quên
những gì anh ta nói đi, chúng ta thử xỏ dép để đi vào đầu anh ta, nhớ
rửa chân :D ):

+ PHP4 đã có lắm phiên bản. Hỗ trợ đã đủ chết nhưng giờ thì đã yên tâm
+ PHP5 chưa có kinh nghiệm gì. Khách hàng lại tương về một đống lỗi,
biết tính sao
+ Các tính năng của riêng PHP5 Matt chẳng thạo. Matt chỉ thạo những gì
thuộc về PHP4 và kế thừa lên PHP5. Nếu cứ dùng như vậy thì 4 hay 5 có
khác gì nhau. WP không dùng các tính năng của PHP5 nhưng đã được người
dùng hài lòng rồi. Vậy thì bước tiếp theo là giữ cho sự hài lòng đó
được ổn định và mở rộng số người đó ra chứ code tiếp làm gì, làm sao
đảm bảo được tính ổn định, làm sao đáp ứng được môi trường triển khai
rộng lớn và WP đâu phải là bản demo công nghệ.

Matt suy nghĩ như một cá nhân đang có được 1 chỗ đứng nhất định và cần
sự ổn định. Anh ta không quan tâm đến xã hội, anh ta chỉ quan tâm đến
chính mình và khách hàng của anh ta.

Nhưng nếu nhìn từ một tầm cao hơn thì không để PHP thì không thế được.
Tình thế của năm 2007 đã quá khác so với nhưng năm 2003, năm mà WP bắt
đầu lên ngôi, năm mà người ta bắt đầu thấy tên tuổi của Matt và Ryan.
Năm 2007 là năm mà có một số các lập trình PHP cựu trào cố giấu đi kĩ
năng code PHP của mình để khoe ra kĩ năng Ruby on Rails. Tôi gọi đó là
thế hệ lập trình viên tự đánh mất chính mình. PHP ko phải là công nghệ
tồi, nhưng khi vào tay các lập trình không khá thì nó có thể trở nên
rất tồi và đáng ngạc nhiên là nó lại làm cho các lập trình đó tự ái
như thể là ngôn ngữ PHP có tội. Một lập trình viên có thể code nhiều
ngôn ngữ nhưng những lập trình viên tự thấy hổ thẹn vì đã từng code
ngôn ngữ đó thì quả là nực cười. Điều này ở VN chắc là ko có nhưng thế
giới thì có đấy. :D

Năm 2007, người ta nhìn thấy ASP.NET phát triển què quặt, Java không
tương thích kịp với sự phát triển mới của web, Java framework thì như
thể Java developer viết cho Java developer chứ không phải là web
developer viết cho web developer. Python creator thì kêu Python vẫn
chưa dành cho web. Ruby và Rails thì gào: tao là số 1. Còn thế giới
PHP thì đã thay đổi chóng mặt. Người ta thì nhau nói về các mạng xã
hội với hàng trăm triệu hit/tháng hoặc hàng tỉ hit/tháng chạy trên nền
PHP. Người ta thì nhau chuẩn hóa PHP bằng các framework. Người ta quan
tâm đến threading, FastCGI, application server, comet, enterprise
service bus... trên nền PHP nhằm chữa lại hình ảnh của cộng đồng PHP
với đầy dãy các junior programmer vốn là chủ đề tủ của đám lập trình
viên Java.

Đám .NET thì ngược lại chẳng dám chê gì đám PHP vì kĩ năng của lập
trình .NET có hơn gì đám PHP chỉ được cái là có nhiều tool để sử dụng
hơn: kéo thả, built-in control.... Nhưng họ bắt đầu chơi bài: ASP.NET
cũng rẻ lắm, năng suất cũng chẳng kém gì PHP :D Đúng là các đồ .NET
rất sẵn và rẻ trước khi họ yêu cầu chúng ta thanh toán bằng tiền mặt.
Mua một cái như Memcached hay Squid đắt phải biết đấy mà cũng chỉ chạy
trên Windows :D

Đám Java vendor thì khác hơn. Oracle đẩy mạnh đóng góp cho cộng đồng
PHP mà thể hiện rõ nhất qua bản 10g và bản 11g mới ra mắt. IBM thừa
nhận PHP là ngôn ngữ của các mainframe. Sun thì tăng cường marketing
để thu hút người dùng PHP cài đặt Glassfish và Sun Web server thay cho
Apache với các benchmark ấn tượng cho thấy việc triển khai PHP trên
nền tảng Sun web server và Glassfish có thể tăng hiệu suất đến 60%.
BEA cũng tăng cường hỗ trợ để vận hành PHP trên nền tảng WebLogic.
MySQL AB thì hết kiên nhẫn với đám PHP Engine Team nên đã tung ra
Proxy hỗ trợ connection pooling.

Đầu năm 2007, Tim Bray, giám đốc các công nghệ web của Sun Microsystem
đã quyết định bay chuyên cơ B52 và ném bom xuống đầu các lập trình
viên Java bằng tuyên bố bằng PHP có tính scalibility cao hơn hẳn so
với Java và Ruby/Rails nhưng lại có tính maintainability kém hơn hẳn.
Điều này không gây ngạc nhiên với ai đã từng theo dõi sự thừa nhận của
một Java Architect chuyển sang làm dự án PHP. Ông ta đã nhận thấy rằng
chi phí và công sức để làm một dự án web PHP thấp hơn nhiều so với
Java và khi triển khai vì tính scalable là cao hơn rõ rệt. Nhưng đó là
thế giới web, một thế giới có tính high concurrency cao, request ko có
độ sâu về computing, không dùng nhiều bộ nhớ, tính dùng chung thấp.
IBM, Sun.. rõ ràng là đã nhận ra điều đó ở PHP cũng như các điểm yếu
của nó khi vào môi trường có độ tính toán lớn, nơi Java có thế mạnh
cho nên họ muốn dùng PHP như là công nghệ front end và Java như là
công nghệ backend nơi mà Glassfish sinh ra để điều tiết.

Những dấu hiệu khác: OpenSSO phát triển PHP client song song với bản
Java. WSO chưa bao giờ quên giới thiệu PHP client mới mỗi khi bản core
được cập nhật. Cho đến hiện giờ có ít nhất 2 framework giúp kết nối
PHP và Java trong cùng một ứng dụng

Tất cả những điều trên chỉ để nó lên rằng xu hướng công nghiệp hóa
công nghệ PHP và vendor hóa cách tiếp cận ứng dụng PHP đang diễn ra
như một xu hướng tất yếu. Việc phát triển PHP như thể đó chỉ là ngôn
ngữ của các designer ko còn phù hợp. PHP4 không còn phù hợp.

Hiển nhiên là PHP4 rất tốt nhưng trong chuẩn công nghiệp của thế giới
phần mềm và trong con mắt của các vendor thì nó chưa hoàn hảo. Vì sao
nó chưa hoàn hảo? Vì nó thiếu nhất quán, nó thiếu adapt với các common
practice trong môi trường công nghiệp, nó vẫn khuyến khích code như
một designer chứ không phải là một team member.... Vậy nên phải có PHP
5. PHP 5.2 là rất ấn tượng. PHP6 còn ấn tượng hơn và đẩy đủ sức mạnh
của một công nghệ công nghiệp. Nhưng chuyển từ PHP4 sang PHP 5.0 thì
dân tình chỉ cảm thấy khó ở. Từ PHP4 lên PHP 5.1-PHP 5.2 thì có chỗ
đau tức nhưng chuyển một mạch lên PHP6 thì nhiều ứng dụng chết thẳng
cẳng. Ko có sự chuyển biến từ từ thì coi như quay lưng lại với những
người đã làm nên thành công của PHP vì sự thành công ko phải chỉ do
tướng ta, lính tráng mà còn có du kích và hậu phương nữa.

Cái gì thành công của ngày hôm qua đều có thể là vật cản của ngày hôm
nay. PHP đang chịu áp lực của sự cạnh tranh lớn trước nhiều. PHP không
nhận được thiện cảm của giới coder công nghiệp mà PHP4 chính là lý
do.

Matt có thể bảo vệ được sự thành công của Wordpress nhưng không thể
bảo vệ sự thành công của PHP mà chính là những con người như Bergman,
Andrey, Illia, Pierce, Dmitry, Sara, Lerdorf, Dovgal, Malysev... đang
ôm lấy cái gốc của một cái cây lớn nơi mà hằng ngày Matt chuyền cành
nhảy nhót để hái quả. Đã đành rằng người ta biết đến PHP nhờ các ứng
dụng PHP tuyệt vời như WP, vBulletin, SimeMachines, Drupal, Open Ads,
Gallery 2... những cái mà thế giới Java, .NET thèm cũng đếch có, cố
làm cũng đếch làm ra gì :D nhưng mà khi bước vào thế giới vendor thì
cũng phải để người ta cảm thấy PHP phù hợp với lối sống của họ nữa
chứ. PHP4 là đã rất thành công. Nó làm được những thứ mà Java và .NET
không làm được. Nhưng để tiếp tục thành công, nó cần mở rộng thị
trường: lần này là giới công nghiệp. Giới occassional coder và
designer chẳng bao giờ rời bỏ PHP mà :D

Thành công xét cho cùng là một cái gương di động nơi mà ở đó người ta
không nhìn thấy quá khứ, không nhìn thấy Matt, không nhìn thấy tôi hay
các bạn... mà chỉ thấy những người qua đường. Nếu bạn nhìn thấy tôi ở
đó nhưng không thấy tôi code PHP mà đang code C, Erlang hay Java thì
hãy cố tưởng tượng là vào thời gian rảnh tôi cũng đang đi bơm xe để
lấy tiền quyên góp cho sự thành công của các công nghệ nguồn mở như
PHP :D

Trích từ các ý kiến của nhóm người dùng PHP tại Việt Nam.