Tại sao Facebook không được xây dựng bằng Java?
Nhân đọc bài “Facebook đang "hot" hơn cả Mash và MySpace”, và một bài viết của Coach Wei. Đặt ra câu hỏi: Tại sao những website nhỏ lại chọn xây dựng bằng Ruby hay PHP thay cho Java?
Tôi quan tâm vì đơn giản, tôi là một Java developer. Như tất cả Java developers, Tôi tin rằng Java tốt. Không chỉ ngôn ngữ, mà cả môi trường phát triển (Eclipse hay Netbeans), giúp ta từng bước kiểm lỗi, có sẵn nhiều thư viện code, và thông tin về phần lớn các vấn đề về kỹ thuật được tìm thấy qua Google.
Lý do khác mà tôi cân nhắc là Java mạnh và hoàn toàn đáp ứng tốt cho các website cần nhiều hơn là chỉ code html hay scripting, như một middleware logic. PHP và Ruby đang thu hút khá nhiều người xây dựng, nhưng nó không thể xây dựng middleware logic.
Có phải là ngôn ngữ Java khó dùng so với các ngôn ngữ scripting? Vâng, cũng có thể là một lý do. Nhưng có hơn 5 triệu LTV java, và hàng triệu người đang sống bằng nghề viết code java. Nhiều website xây dựng bằng các LTV này, và vì một số lý do họ có thể chọn dùng PHP hay Ruby thay cho Java. Vì sao? Khó khăn hơn nhiều khi dùng java (đặc biệt là khi họ quyết định xây dựng một website 2.0), họ chỉ đến với PHP thông qua viêc học, và kinh nghiệm thì không nhiều.
Thiếu công cụ phát triển(tools)? Tôi nghĩ là java có nhiều tools hơn Ruby.
Thiếu frameworks? Tôi nghĩ là không vì Framework Java nhiều hơn cả số dân Trung Quốc.
OK, nhiều websites đơn giản, chủ yếu dùng html, scripts và một vài phép toán nhỏ trên server, PHP và Ruby là những sự lựa chọn tốt. Java có thể quá “búa rìu” với các websites này. Nhưng có nhiều websites có những xử lý rất phức tạp trên server. Ví dụ, FaceBook là điển hình, nhưng giờ với FaceBook API và Platform, các xử lý ngày càng phức tạp. Vậy vì sao không dùng java?
Vậy cái gì thiếu trong cộng đồng Java? Công nghệ nào dùng để xây dựng một website bằng Java?
Lựa chọn 1: JSP/Servlet với bộ Java Servlet ở tầng trên (hay một application server): Đây là công nghệ chính cho ứng dụng web Enterprise. Nhưng nó không dễ dùng để xây dựng websites so với PHP hay Ruby;
Lựa chọn 2: JavaServer Faces: JSF là một đứa con mới trong gia đình java web. Nhưng nó không làm cho bạn dễ dàng hơn trong việc xây dựng một websites. Nó được thiết kế để việc xây dựng ứng dụng đơn giản hơn.
Lựa chọn 3: Dùng Java dựa trên hệ thống quản lý nội dung (CMS)? Tôi có dùng qua một số hệ thống CMS, và không thấy có gì nổi bật.
Cá nhân tôi nghĩ rằng Java có khả năng xây dựng một ứng dụng có thể nâng cấp, có các xử lý phức tạp (và ngày càng phức tạp), dễ dùng và chỉnh sửa. Vậy tại sao không dùng Java? Tôi mong ý kiến các bạn trong nhận xét.
7 Responses to "Tại sao Facebook không được xây dựng bằng Java?"
Facebook viết bằng PHP bởi Mark Zuckerberg ...thạo PHP nhất, và thưở ban đầu Facebook cũng đơn giản như ai, khi nó phình to lên thì người ta mới cho đủ các thứ hầm bà lằng vào đó. Del.icio.us, Digg, hay Reddit cũng vậy.
Công nghệ nào cũng có thể xây dựng được ứng dụng tốt. Những người yêu Java cũng có thể tự hào rằng Java là nền tảng chính của LinkedIn.com, Alibaba.com, Google cũng có phần, eBay,...và Good nữa :D.
Tôi nghĩ chẳng có vấn đề gì với công nghệ cả, vấn đề là ở những người tạo ra những ứng dụng đó. Họ tài thì Java, .NET, PHP, Ruby họ cũng biến thành Facebook tuốt.
Nhưng có một vấn đề là về cấu trúc thì PHP khó dev và maintain. Một website cộng đồng rộng như vậy mà dùng PHP được thì thật là đáng nể...
PHP rất dễ maintaince và dev thì cực dễ vì mọi thứ trong PHP đều là string, không có nhiều boilerplate code. API của PHP rất compact đến mức mà một lập trình viên C# code PHP phải kêu là ở PHP cái gì cũng có sẵn cả, chẳng phải đi tìm. Tuy nhiên để làm được một hệ thống chạy tốt, bảo trì dễ dàng cấu trúc đẹp thì cũng hệt như các công nghệ khác: cần tài năng, tính chuyên nghiệp và sự đam mê cải tiến.
http://groups.google.com/group/phpvietnam
Đăng nhận xét