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.

Cao Trong Hien

7 Responses to "Tại sao Facebook không được xây dựng bằng Java?"

Java Cola said :
14:13 29 tháng 11, 2007
Có một lý do vô cùng đơn giản mà trong tất cả các thread tranh luận (hoặc cãi vã) giữa Java vs PHP vs Ruby vs .Net vs blah blah... không thấy nêu ra là: Người tạo ra các site đó ban đầu thông thạo công cụ/ngôn ngữ nào nhất thì anh ta xài cái đó.

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.
09:35 7 tháng 12, 2007
Đúng như javacola nhận xé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ể...
pcdinh said :
21:11 1 tháng 1, 2008
Thạo công nghệ là 1 lý do. Còn những lý do khác nữa để khiến cho Friendster, một mạng xã hội khác cũng rất lớn chuyển từ Java sang PHP.

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
13:13 3 tháng 1, 2008
Cảm ơn sự chia sẽ của bác Định! Vì lập trình mà, ai chẳng tự hào về những gì mình viết ra. Khi nào làm php em sẽ nhờ bác chỉ giáo.
15:52 24 tháng 3, 2009
Nhận xét này đã bị quản trị viên blog xóa.
boyd bed said :
21:50 2 tháng 4, 2009
Nhận xét này đã bị quản trị viên blog xóa.
nguyễn minh vượng said :
20:37 5 tháng 9, 2012
a ơi, e mới học C và chuyển sang php&MySQL thấy nó trong sáng và dễ hiểu nhất, e muốn hỏi a là nếu muốn chuyển sang java mà từ C thì có dễ dàng như từ C chuyển sang PHP không? và những người học Java cần chuẩn bị những gì? sức mạnh của Java về Web là gì so với PHP .NET Rubi, mong a trả lời qua email: nmvuong92@gmail.com dùm e với nha

Đăng nhận xét