Như với tất cả các câu hỏi thuộc loại này, câu trả lời là "nó phụ thuộc". Các yếu tố cần xem xét bao gồm mức độ thoải mái của bạn với ngôn ngữ / khung và những tính năng mà dự án yêu cầu. Phải nói rằng, tôi đã xây dựng các trang web bằng cách sử dụng một số khung, mỗi khung có điểm mạnh và điểm yếu riêng:
Chén
Nếu tôi cần nhanh chóng có được một trang web cho bất cứ điều gì chuyên nghiệp , Grails có lẽ sẽ là lựa chọn đầu tiên của tôi. GORM là một ORM đơn giản và trực quan nhất mà tôi đã thử, mô hình MVC được thực hiện rất tốt, có 0 cấu hình để bắt đầu mã hóa (không phải lo lắng về URL, bản vá DB, bất cứ điều gì), lặp lại rất nhanh (chỉ cần làm mới trang), tích hợp Java liền mạch (một điều tốt trong thế giới kinh doanh) và một số bổ trợ tuyệt vời (ví dụ: Tìm kiếm là một điều hay). Nhược điểm lớn nhất là lưu trữ có thể khó tìm (và đắt tiền).
Viên ngọc trên tay vịn
Trải nghiệm của tôi với RoR rất giống với Grails: MVC được thực hiện tốt. Về mặt tích cực, nó có một cộng đồng lớn hơn, vì vậy tài nguyên trực tuyến (tài liệu, Câu hỏi thường gặp, mẫu mã, v.v.) rất phong phú, có TẤN các plugin, Ruby linh hoạt hơn / biểu cảm / "vui nhộn" hơn, và đó là dễ dàng hơn nhiều để tìm thấy lưu trữ (đặc biệt cho các dự án cá nhân); về mặt tiêu cực, quản lý / thiết lập phụ thuộc rất tệ (Tôi đã sử dụng RubyGems trên Windows, Ubuntu, Fedora và OSX và gặp phải các vấn đề không hề nhỏ trên mỗi cái), có cấu hình / chi phí cao hơn một chút so với Grails (cụ thể là, xử lý các tệp di chuyển db.rb và hàng tấn) và rõ ràng, RoR có một số vấn đề về khả năng mở rộng nghiêm trọng.
PHP (bao gồm khung CakePHP)
Nếu tôi cần nhanh chóng hack một cái gì đó hoặc xây dựng một trang web cho mục đích cá nhân , thì có lẽ tôi sẽ đi với PHP. PHP là ngôn ngữ dễ học và triển khai nhất: tải xuống bất kỳ gói LAMP tiện lợi nào ngoài đó, nhấp một vài lần và bắt đầu hack đi. Cộng đồng lớn hơn RoR, vì vậy tài liệu rất phong phú và có vô số plugin (dễ dàng "cài đặt" bằng cách chỉ cần thả vào tệp php và làm mới trang). Ngôn ngữ rất đơn giản để học, nhưng một số điều trong PHP hoàn toàn lạ lùng và cần rất nhiều kỷ luật để tránh mã xấu. Khung CakePHP thực thi một mô hình MVC đẹp để giúp mọi thứ có trật tự và phần lớn là ngang bằng với RoR, mặc dù cá nhân tôi thấy nó hơi không trực quan.
Java (servlets, JSP, JSTL, struts, Velocity)
Tôi đã xây dựng nhiều trang web bằng cách sử dụng các công nghệ Java servlet và tôi có thể thành thật nói rằng không có lý do chính đáng nào để chọn chúng cho bất kỳ trang web mới nào hiện nay. Chúng có một đường cong học tập dốc, hàng tấn cấu hình để chiến đấu với (địa ngục XML), lặp lại chậm do nhu cầu triển khai lại mọi thứ mọi lúc (trừ khi bạn sử dụng JRebel), mã dài dòng và không có "miễn phí" về chức năng. Tôi đã chơi xung quanh với Play! Framework và Spring Roo một chút và cả hai đang thực hiện một số thứ rất tuyệt vời với ít nhiều mã Java "thuần túy" và đáng để xem xét thêm.