2012-02-28 20 views
21

Tôi cần xác định mức độ sử dụng công nghệ cho một dự án web, nhóm được sáng tác bởi 4 nhà phát triển và thời gian của dự án là 1 năm.JavaEE vs PHP - tại sao rất nhiều người nghĩ Java là tốt hơn?

Tôi quen thuộc hơn với php nhưng khách hàng yêu cầu tôi làm điều đó với JAVA EE.

Tôi luôn có quan niệm tương tự với Java và các khuôn khổ của nó:

  • Vì vậy, nhiều xml và lớp để làm những việc đơn giản. Trong codeigniter tôi đã sử dụng 3 tập tin (mô hình, xem và điều khiển) với hibernate + spring + JSF tôi cần nhiều hơn 10 tập tin !!!
  • Sử dụng máy chủ lạm dụng. Mã javascript mất tầm quan trọng và nó không tốt ngày nay. Tất nhiên chúng ta có thể thêm mã javascript nhưng có vẻ như "java web guys" thích làm những thứ trên máy chủ thay vì khách hàng.
  • Không phải ứng dụng đẹp mắt. Richfaces có vẻ giống như một trang web của vài năm trước đây.
  • Khi tôi nhìn thấy một ứng dụng java như liferay, alfresco, chúng trông nặng và rất chậm.

Tôi nghĩ rằng tôi có thể hơi bối rối vì nhiều người và công ty lớn tiếp tục sử dụng JAVA cho web. Tại sao? đó là về tích hợp?

Mặt khác Java nhanh hơn PHP, nhưng máy chủ của JAVA cần nhiều bộ nhớ (đắt hơn). Trong một máy chủ với nhiều yêu cầu, chúng tôi có thể cải thiện với một ngôn ngữ như php với thời gian lớn hơn cho mỗi quá trình và ít bộ nhớ cho mỗi quá trình vì máy chủ không bao giờ bị thu gọn do bộ nhớ. Đôi khi một máy chủ JAVA có thể bị sập do bộ nhớ và thời gian phản hồi trung bình trong một môi trường sản xuất thực tế sẽ lớn hơn php.

Tôi thực sự hài lòng với Codeigniter, tại sao rất nhiều người nghĩ Java tốt hơn?

Cảm ơn trước,

Alberto

+1

thuộc về http://programmers.stackexchange.com Q & A cho các lập trình viên chuyên nghiệp quan tâm đến câu hỏi khái niệm về phát triển phần mềm – Mchl

+0

lẽ câu hỏi này sẽ được đóng lại. .. anyway có vẻ như với tôi rằng bạn đang trộn ý tưởng của bạn, java và javascript là hai điều khác nhau, bạn có thể làm một trang web bằng cách sử dụng javaEE và không có javascript .. javascript không có gì để làm trong câu hỏi này – pleasedontbelong

+0

Tôi biết java và javascript là khác nhau mọi thứ, tôi đang nói về việc tích hợp JAVA EE với javascript. Tôi biết javascript có thể được thêm vào trong quan điểm, nhưng các kỹ thuật ajax tiêu chuẩn là mất tích trong tất cả các hướng dẫn JAVA EE, có vẻ như "java web guys" thích làm những việc trên máy chủ. Tất nhiên bạn có thể thêm mã javascript như bạn muốn, chúng tôi đang nói về render html ở cuối – alasarr

Trả lời

27

cũng tôi không sử dụng CodeIgniter nên so sánh của tôi là đã không đầy đủ.

Câu hỏi một là: tại sao họ yêu cầu Java? Thường thì các công ty lớn chỉ cung cấp môi trường Java hoặc .Net cho các hệ thống sản xuất để họ có thể không có người để chạy các ứng dụng PHP một cách hiệu quả. Tôi biết nó không phức tạp nhưng người bảo trì xác định những gì họ đang chạy.

Ofter mọi người nói về ngôn ngữ và các tính năng của họ nhưng khi trường hợp sử dụng kinh doanh đầu tiên phải được thảo luận, không có khung nào sẽ tiết kiệm cho bạn khoảng thời gian đó để đếm. Hầu hết ngôn ngữ lập trình bằng cách nào đó sẽ giải quyết vấn đề.

Java không chỉ là RichFaces hoặc JSF. Có rất nhiều lựa chọn. RẤT NHIỀU. Không phải là một lợi thế.

Thứ thường bị quên là công cụ hỗ trợ. Java đi kèm với một JVM có thể được phân tích chi tiết những gì nó làm với bộ nhớ của nó, bộ thu gom rác, luồng và vân vân. Profilers trong Java cho phép bạn xác định hầu như bất kỳ rò rỉ bộ nhớ nào trong vòng vài giờ. Hầu hết các giám sát JVM hoạt động trong thời gian thực (với khoảng 5% chi phí). Nói về công cụ: hỗ trợ tái cấu trúc vượt xa những gì mà IDE IDE đi kèm.

Bạn là chính xác nếu giao diện đầu tiên của Java so với PHP trông giống như voi và ngựa.(ok logo của php là một con voi, so sánh hoàn hảo ...). Ngựa linh hoạt hơn để quay lại các góc nhưng chúng có thể không mang nhiều thứ xung quanh. Tôi nghĩ từ góc độ ngôn ngữ Java vẫn còn cao cấp hơn PHP. Không gian tên, lớp học, loại an toàn. Đây là một phần có sẵn trong PHP nhưng vẫn còn khá mới.

Các khung như Spring cho phép bạn tận dụng ứng dụng của mình ở cấp kiến ​​trúc và không chỉ là thư viện.

Tôi không phải là người hâm mộ Java EE lớn nhất, vì vậy tôi sẽ không phàn nàn về điều đó.

Cách tiếp cận đơn giản cho bạn có thể là Tomcat + Spring + SpringMVC và một công cụ mẫu cho GUI. Ngoài ra còn có GWT (Vaadin) nếu bạn nhắm mục tiêu hành vi khách hàng tốc độ cao hơn (vẫn còn nhiều hơn thế nữa).

Cũng có các cách tiếp cận nhẹ trong Java. Tôi đồng ý các tiêu chuẩn trong Java có xu hướng béo hơn.

Trong kinh nghiệm của tôi, Java không có những hạn chế lớn so với PHP. Lựa chọn ngôn ngữ sẽ chỉ ảnh hưởng đến thành công của dự án nếu mọi người đến với ít kiến ​​thức hơn yêu cầu và dành quá nhiều thời gian vào việc học. Và cố gắng tìm đúng cuốn sách về Java có thể là một dự án của chính nó :) (tính như một lợi thế)

Nhưng tôi không có nghi ngờ PHP sẽ cho phép bạn hoàn thành dự án.

Tôi thà xem xét các mục tiêu và yêu cầu trước khi chọn công nghệ. Điều này thường ngụ ý hoặc đơn giản hóa một quyết định.

Tôi hy vọng tôi đã trả lời ít nhất một câu hỏi ở đây :)

+0

Cảm ơn bạn rất nhiều, tôi đã đọc về mvc mùa xuân, http://blog.springsource.com/2011/01/04/green-beans-getting-start-with-spring-mvc/ – alasarr

+2

Với Vaadin bạn có thể xây dựng các GUI tuyệt vời với Java và không có JavaScript - tất cả các hộp ngoài. Có một cái nhìn vào các mẫu: http://demo.vaadin.com/sampler – Twistleton

+0

@wemu câu trả lời tuyệt vời nhưng tôi muốn thêm một điều nữa về giao diện phong phú và sử dụng ngôn ngữ kịch bản phía máy chủ phía máy khách v/s. Ngày nay bạn có thể sử dụng js góc với mùa xuân đó là hữu ích hơn. Thứ hai, hầu hết các trang web java ngày nay có giao diện phong phú, tất cả đều phụ thuộc vào nhà thiết kế và nhà phát triển bạn có nhưng không kém phần quan trọng nếu bạn đang nghĩ đến việc sử dụng tomcat, sau đó bạn có thể xem máy chủ chủ chốt được hỗ trợ chính thức bởi Spring guys – Luffy

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