Phân loại PHP
PHP chỉ là một ngôn ngữ keo giống như BASH hoặc Perl. Đó là tốt ở đó, nhưng không tốt ở bất cứ điều gì khác, để lại một số công việc nghiêm trọng. Ngôn ngữ không được thiết kế. Nó chỉ được phát triển bằng cách hack nhiều mã khác nhau theo một cách khó hiểu (mã và sửa lỗi).
Ngôn ngữ biên dịch
Trái ngược với PHP, Java là một ngôn ngữ được biên dịch đã được thiết kế đúng. Có các JSR xác định ngôn ngữ, nhiều khung và khái niệm cấp doanh nghiệp như EJB, JMS, ESB, Spring, Struts, Hibernate và các ngôn ngữ khác.
Phần mềm doanh nghiệp
Về mặt hệ thống doanh nghiệp, Java EE là một giải pháp phù hợp với mục đích (Phiên bản doanh nghiệp) trong khi PHP được sử dụng trong các công ty đang cố gắng giảm chi phí bằng cách thuê một lao động giá rẻ với trình độ kém hơn.
Đã có một nỗ lực đáng kể để kéo PHP vào phân khúc Doanh nghiệp bằng nhiều khung công tác khác nhau. Đáng chú ý nhất là Zend Framework 2 . Vấn đề cơ bản ở đây không phải là định hướng đối tượng của PHP, mà là thiếu thiết kế, thiếu gõ mạnh, giải pháp không chuẩn cho các vấn đề tiêu chuẩn (loại hack cho mọi thứ) và thiếu hoàn toàn bất kỳ kiến trúc theo quy định nào.
Thiết kế phần mềm (Kiến trúc đã thảo luận)
Với PHP, gánh nặng của kiến trúc phần mềm vẫn hoàn toàn phụ thuộc vào các nhà phát triển, những người đã làm một công việc rất kém, tức là thường không có bất kỳ kiến trúc nào, chỉ cần mã và sửa lỗi ngẫu nhiên. Bảo mật và giao dịch bị thiếu và cần được các nhà phát triển đánh bóng. Trong Java, một giải pháp được chú thích EJB. Cũng xem xét thực tế rằng, trong PHP, không có gì xảy ra nếu bạn bỏ qua việc bắt ngoại lệ hoặc mắc các lỗi khác nhau. Đó là cho đến thời gian chạy. Với Java, bạn sẽ nhận được cảnh báo và lỗi trực tiếp tại thời điểm thiết kế. Điều đó được gọi là mạnh mẽ, nhưng với PHP bạn chỉ có thể tiếp tục mơ ước.
Đa luồng
PHP không hỗ trợ đa luồng. Mã luôn luôn là một chủ đề duy nhất. Điều này cản trở hiệu suất của nó đối với các vấn đề không tầm thường dưới tải nặng hơn. Với Java EE, đa luồng được hỗ trợ đầy đủ, ví dụ như thông qua giao diện Runnable.
Hỗ trợ và Tiêu chuẩn
Cũng xem xét việc triển khai, Dịch vụ web và các tiêu chuẩn khác. Trong khi ở Java, có các công ty lớn như Oracle, IBM, RedHat, Apache và nhiều công ty khác, PHP chỉ có Zend.
Phần kết luận
Để kết luận, PHP là một ngôn ngữ hướng đối tượng rất xấu. Nói một cách chính xác, nó thậm chí không hướng đối tượng, nhưng lai không tốt từ các phiên bản> 5 vì OOP được trộn lẫn với lập trình thủ tục. Tôi chỉ muốn giới thiệu PHP như một chất keo như BASH, nhưng đối với công việc nghiêm túc tôi sẽ sử dụng Java EE.
Những suy nghĩ liên quan
Thỏa thuận chính với Zend Framework 2 mới nhất là nó đang cố gắng giống như Java EE, nhưng hoàn toàn không cung cấp ít nhất một bộ các gói, tính năng, công cụ, tự động hóa, kiểm tra lỗi, kiến trúc, thiết kế và mọi điều.
Theo kinh nghiệm của tôi, việc sử dụng PHP cho các dự án phức tạp sẽ tốn kém hơn so với Java.
Ngoài ra còn có một số tin đồn như PHP là viết tắt của Lập trình khá khủng khiếp . Tôi có thể xác nhận những điều này.