PDA

View Full Version : What I don't like about PHP



virtualgirl
19-03-2007, 01:33
Không phải là mình nói, mà là ông viết bài này nà: http://www.bitstorm.org/edwin/en/php/ các bác cho ý kiến thử xem

hungxalo
19-03-2007, 14:15
uhm, tác giả của cái bài viết đó đã giúp mình biết thêm nhiều điều về PHP, chỉ thế thôi :D

terafunny
19-03-2007, 17:30
Đúng rồi đó, mấy cái đó chê rất đúng, các bạn nên tìm ngôn ngữ nào khác mà xài, chứ PHP thì chỉ thế thôi lol

pcdinh
20-03-2007, 02:12
1. Bad recursion
Đây không nhất thiết là một điểm trừ. Nó chỉ khuyến cáo rằng, bạn nên hạn chế dùng các mảng lớn và đệ quy trên PHP. Mà cái này thì ngôn ngữ nào cũng có vấn đề nếu lạm dụng thôi.

2. Many PHP-modules are not thread safe
Kiến trúc của PHP là độc nhất vô nhị: Share nothing. Khi chạy ở cơ chế single child proccess thì chẳng việc gì phải quan tâm đến threadsafe. Quan tâm đến MPM là đủ.

3. PHP is crippled for commercial reasons
Ơn chúa ko ai bắt buộc phải dùng đồ của Zend. Built-in và popular plugin and ext thì có khác gì nhau. Không chỉ có APC, mà còn có Xcache (E-acc thì lâu quá ko update rồi)

4. No namespaces
Chưa ảnh hưởng đến hòa bình thiên hạ. Cách giải quyết là migrate sang lập trình hướng đối tượng. Dùng prefix như là tiếp đầu ngữ của lớp. Tốc độ xử lý giữ nguyên vì không mất công lookup.

5. Non-standard date format characters
Đây là vấn đề nhỏ, quá nhỏ. Ko ai thừa hơi đi soi tính inconsistent của 1 hàm trong hơn 3000 hàm có docs của PHP. Đây là một lời phàn nàn, không phải là một lời chê.

6. Confusing licenses
Thằng nào ngốc thằng đó chịu. Phải đọc kĩ hướng dẫn trước khi sử dụng. Đừng tưởng con gái người ta là vợ mình là được.

7. Inconsequent function naming convention

Hì hì, cái này thì đúng quá rồi. Người ta biết là có vô khối các hàm alias trong PHP để sửa chữa sai lầm này. Nó liên quan đến thẩm mĩ chứ không ảnh hưởng đến sức mạnh của công nghệ.

8. Magic quotes hell
Đã bị xóa sổ trong PHP 6.0 bản dev.

9. No standard framework
Không cần và không nên xảy ra. Để thiên hạ tự nhiên sáng tạo chứ. Zend có Zend Framework, Paul có Solar, Matthew có CGI2.. còn tớ có Sone.

10. No Unicode
PHP 6.0 dev hiện đã phủ Unicode lên 60.66% số hàm PHP tính đến ngày hôm nay.

11. Slow
Chậm là chậm so với Java, C, C++, Delphi, các ngôn ngữ compiled. So với Ruby, Python, Perl nó còn nhanh và ít bộ nhớ chán chê. Muốn nhanh nữa, code PHP class của bạn bằng C, plug vào Zend Engine và code PHP theo API đó.

Conclusion

Đối với các dự án nhỏ, bạn code kiểu nào cũng được. Đối với các dự án lớn bạn không thể code như code các dự án nhỏ. Đừng hi vọng bên Yahoo, Digg, Facebook hay các PHP Shop tuyển các lập trình viên PHP chỉ biết scripting. Còn thực tế thì chứng mình là PHP thích hợp với các dự án web lớn và rất rất lớn. Vấn đề ở đó là người ta sẽ không code PHP theo cách bạn đã từng code.

Bùm

addme
20-03-2007, 02:53
3. PHP is crippled for commercial reasons
Ơn chúa ko ai bắt buộc phải dùng đồ của Zend. Built-in và popular plugin and ext thì có khác gì nhau. Không chỉ có APC, mà còn có Xcache (E-acc thì lâu quá ko update rồi)

APC rất khó quản lý các file mà nó cache
Chỉ có thể sử dụng khi bạn thuê VPS hoặc server riêng !

pcdinh
20-03-2007, 04:01
Shared hosting ko dùng cho các ứng dụng cỡ thương mại, nơi mà APC cần đến. Lúc đó thì 1 acc VPS chừng 25 - 70 USD là chấp nhận được. Khi nào app đạt đến 30 - 50 Tps thì ra ở riêng được rồi. Ăn chơi nó phải tốn kém

Vinhie47
20-03-2007, 08:03
Thread safe ở đây có phải là thread safe mà ta phải chú ý bên C++ khi dùng multithread không nhỉ? Mà qua bài của bác pcdinh thì mới biết là PHP thích hợp cho các dự án rất lớn :-?

emhoclop1
20-03-2007, 09:45
Khì khì, ngôn ngữ lập trình và công nghệ hỗ trợ của nó là quan trọng nhưng nếu nó được giao vào tay một nhóm code chuối, thiết kế chuối, quản trị dự án cũng chuối, tư vấn kĩ thuật tồi, phân tích nghiệp vụ nghèo nàn thì... có dùng Java cũng om xương.

Thằng ngôn ngữ nào hỗ trợ OOP mạnh và scalable là thằng đó có triển vọng làm được các dự án lớn nếu như team làm nó được huấn luyện hoặc có kinh nghiệm.

PHP mà code OOP, thống nhất về coding convention, luôn có thiết kế và thỏa thuận implementation thì các dự án vài trăm nghìn dòng lệnh, trị giá từ 500 000 đô trở lên thì có gì là khó. Vấn đề khó kiểm soát nhất vẫn chỉ là con người.