2012-02-10 27 views
10

Gần đây tôi đã chọn PHP và có vẻ như ngôn ngữ khá gọn gàng cho phép phát triển ứng dụng web rất nhanh (có thể nhanh hơn so với yêu thích cá nhân của tôi - Java :)Lý do đằng sau yêu cầu bồi thường "PHP không mở rộng quy mô (tốt)" là gì?

Bây giờ, tôi không có chuyên gia PHP - không có ngôn ngữ cũng không nội bộ/chi tiết cụ thể. Nhưng khá nhiều người trong số các đồng nghiệp của tôi đã tuyên bố rằng các ứng dụng PHP không mở rộng tốt - thực tế là tôi đã không thể tìm ra cho bản thân mình và do đó là câu hỏi.

Tôi vừa mới học được hương vị thủ tục của PHP và dự đoán không khả năng mở rộng của tôi là khả năng mở rộng ngôn ngữ thủ tục so với OO (C so với C++/Java). Tôi đồng ý và tôi có thể thấy đó sẽ là rào cản đối với các ứng dụng web cực kỳ phức tạp. Tuy nhiên, tôi nhận thức được OO-Ness đến với thế giới PHP và không thấy rằng đó là một trở ngại lớn (hãy sửa tôi nếu giả thuyết của tôi là không chính xác). Ngoài ra, tôi không hiểu vấn đề về khả năng mở rộng nào sẽ xảy ra đối với một ứng dụng web với số lượng người dùng lớn (vì mục đích thảo luận, hãy giả sử thiết kế Restful - no sessions - vì tôi biết rằng cản trở khả năng mở rộng). Tôi quan tâm nhiều hơn đến việc biết lý do 'khách quan' cho một tuyên bố như vậy, nếu có thể. Chủ quan là tốt nhưng tôi không ở đây để bắt đầu một cuộc tranh luận về PHP so với mọi thứ khác. Tôi chỉ quan tâm đến việc biết những hạn chế tiềm năng của ngôn ngữ này mà tôi phải ghi nhớ và không nên cắn tôi ở phía sau nếu/khi ứng dụng web có 1000 người dùng mỗi ngày (hoặc giờ).

+0

Điều này đã được thảo luận nhiều lần (khả năng mở rộng google php). Ngoài ra, một số trang web lớn nhất trên thế giới được cung cấp bởi PHP. – simshaun

+2

@simshaun: Bạn có thể vui lòng cung cấp cho tôi một số liên kết không? Điều đó có thể giúp tôi gắn cờ Q của riêng tôi với tư cách là bản sao và đã đóng cửa - chỉ cần một lý do đằng sau xác nhận quyền sở hữu: P – PhD

+0

Kết quả cao nhất là "Huyền thoại khả năng mở rộng PHP" - http://onjava.com/onjava/2003/ 10/15/php_scalability.html - nó khá là hẹn hò! – PhD

Trả lời

5

Tôi không thể nghĩ ra một ngôn ngữ có giới hạn khả năng mở rộng. Giới hạn khả năng mở rộng cho một ngôn ngữ sẽ là một cái gì đó như:

Ngôn ngữ X không thể được sử dụng để viết các chương trình yêu cầu nhiều hơn 1000 dòng mã.

Điều đó nghe có vẻ vô lý và đúng vậy.

Sự kỳ thị rằng Các ứng dụng PHP không mở rộng tốt xuất phát từ thực tế là nhiều lập trình viên thiếu kinh nghiệm chọn PHP cho các ứng dụng web của họ. Điều này là do PHP là một ngôn ngữ dễ học, tích hợp rất tốt với Apache và được hỗ trợ trên hầu hết mọi máy chủ trên thế giới.

Các lập trình viên thiếu kinh nghiệm thường sẽ sử dụng các thực tiễn không tốt khi viết mã. Với đủ các thực hành xấu này rải rác trên toàn bộ web, được viết bằng ngôn ngữ yêu thích của lập trình viên thiếu kinh nghiệm, thật dễ dàng để xem tại sao một số người lại không thích PHP.

Ngoài ra, có lẽ, một thái độ "thánh thiện hơn bạn" mà một số lập trình viên đã hướng tới PHP (một lần nữa, vì tính đơn giản của nó).

Quy mô PHP cũng như bất kỳ ngôn ngữ nào khác khi lưu vào bộ nhớ cache trang và thực tiễn tốt nhất được tính đến. Có rất nhiều dự án PHP được sử dụng tốt để chứng minh điều đó.

+0

Làm thế nào về thực tế là PHP là đơn luồng? – Rabiees

+1

@Ken Đây chỉ là một câu trả lời sai lệch.'Ngôn ngữ X không thể được sử dụng để viết các chương trình đòi hỏi hơn 1000 dòng mã âm thanh vô lý, bởi vì đó không phải là tất cả những gì có nghĩa là khả năng mở rộng. Bạn không thể nghĩ ra giới hạn khả năng mở rộng, vì bạn không biết ý nghĩa của nó là gì. Python và PHP là cả hai ngôn ngữ thể hiện giới hạn mở rộng theo chiều dọc vì chúng chỉ có thể chạy trên một chuỗi gốc duy nhất. Tôi không chắc chắn về việc mở rộng theo chiều ngang, nhưng tôi có thể tưởng tượng PHP cũng không làm tốt điều đó. – taylorcressy

+0

@taylorcressy - Không chắc chắn liên kết phải làm gì với khả năng mở rộng của ngôn ngữ lập trình. Mở rộng một ứng dụng có thể yêu cầu những kỹ thuật đó, nhưng ngôn ngữ mà ứng dụng được viết là tùy ý. – ken

Các vấn đề liên quan