Cuộc chiến Joomla! – Drupal và TTCN

Trong số các hệ quản trị nội dung (CMS) phổ biến hiện nay, nổi bật lên hai ứng viên sáng giá nhất là Joomla! và Drupal. Hai hệ quản trị nội dung này thay nhau làm mưa làm gió trong các cuộc thi. Đặc biệt ở cuộc bình chọn uy tín nhất của Packt Publishing, Joomla! và Drupal luôn chiếm giữ hai vị trí đầu bảng.

Joomla!

Trước tiên, hãy cùng tìm hiểu sơ qua hai CMS này. Tiền thân của Joomla! là Mambo, một sản phẩm của Miro. Năm 2002, song song với bản thương mại hóa, Miro cho phát hành Mambo Open Source (gọi tắt là MOS, chữ thường thấy trong mã nguồn Mambo và cả Joomla! cho đến tận năm 2008 này). Đến năm 2005, Mambo bước vào giai đoạn chín mùi và giành nhiều giải thưởng lớn như là “Giải pháp nguồn mở tốt nhất” và “Giải pháp hoàn hảo cho công nghiệp” tại LinuxWorld. Tuy nhiên, đến cuối tháng 8/2005, do bất đồng với Miro, tất cả thành viên trong nhóm phát triển Mambo đồng loạt rời công ty, lập ra nhóm “Open Source Matters”. Họ xây dựng thương hiệu mới “Joomla!” dựa trên Mambo và phát hành lại vào gần một tháng sau. Joomla! 1.0 ra đời trong hoàn cảnh đó.

Từ đó đến nay, Joomla! liên tục được cải tiến, đặc biệt là vá các lỗi bảo mật. Bản Joomla! mới nhất là 1.0.13 ra đời tháng 7/2007, ngoài ra thế hệ kế tiếp là Joomla! 1.5 được bắt đầu phát triển từ cuối năm 2006, đến nay đang ở giai đoạn RC4.

Joomla! thực sự dễ dùng. Giao diện quản trị (back end) bắt mắt, việc cài đặt các phần mở rộng chỉ đơn giản là tải lên và chạy chương trình cài đặt. Theo triết lí của Joomla!, đơn vị dữ liệu cơ bản là content item (ở bản 1.5 đổi thành article) chứa trong category, bản thân category được chứa trong section. Như vậy dữ liệu trong Joomla! tổ chức thành 3 cấp.

Cách tổ chức này rất logic và không gây rắc rối cho người dùng mới. Dù vậy, Joomla! không có nền tảng để hỗ trợ các kiểu dữ liệu phức tạp hơn. Một nhược điểm khác là Joomla! được thiết kế dành cho người dùng cuối, nên không cung cấp nhiều phương tiện can thiệp vào hoạt động bên trong.

Nhóm phát triển Joomla! luôn quan niệm “open source does matter”, họ từng lên án các phần mở rộng (extension) viết cho Joomla! mà không cung cấp theo giấy phép GPL, cho dù đó là sản phẩm thương mại hay nguồn mở. Trong các sản phẩm bị chỉ trích có cả SMF, một diễn đàn được dùng khá phổ biến kèm với Joomla! (và kết quả là bridge cho Joomla! bị xóa bỏ khỏi trang download của SMF). Hiện nay, vấn đề này được giải quyết với các sản phẩm viết từ đầu bằng cách cung cấp song song theo GPL và giấy phép khác (như MIT chẳng hạn).

Joomla! hiện đang rất phổ biến ở Việt Nam bởi tính dễ dùng của nó. Ngoài ra, Joomla! đáp ứng được yêu cầu quan trọng nhất để xây dựng nhanh một website: có rất nhiều template (giao diện) có sẵn, cả miễn phí lẫn thương mại, nhiều template có chất lượng rất tốt.

Drupal

Drupal xuất phát từ một diễn đàn viết bởi Dries Buytaert (hiện đang là Nghiên cứu sinh tại Bỉ), được chuyển thành sản phẩm nguồn mở năm 2001. Cho đến nay, Buytaert vẫn lãnh đạo việc phát triển của dự án.

Hạt nhân của Drupal là node với cấu trúc đơn giản. Để phát triển các kiểu nội dung phức tạp, mỗi node sẽ được liên kết với một nội dung có kiểu khác nhau. Node được quản lí nhờ hệ thống taxonomy cực mạnh, đây cũng là đặc trưng của Drupal. Người dùng Gmail, Flickr, WordPress, Yahoo! 360°… ắt hẳn quen với khái niệm “tag” (đôi khi gọi là label), và khái niệm rất hiện đại này đã có trong Drupal ! Khái niệm tag được gọi là “term” trong Drupal, được tổ chức có cấu trúc (chia nhiều cấp). Ngoài ra, trong taxonomy còn có khái niệm “vocabulary” cho phép chia term thành các lớp không giao nhau. Thí dụ một node được gắn một term thuộc vocabulary “Tháng” (gồm 12 term) và các term thuộc vocabulary “Chủ đề”.

Drupal được xây dựng để giúp đỡ cho nhà phát triển. Hệ thống hook đa dạng giúp người lập trình can thiệp vào mọi hoạt động mà không phải sửa bất kì dòng lệnh nào của nhân hay các phần khác – điều này trái ngược với Joomla!. Ngoài ra, công nghệ của Drupal thường mới hơn Joomla!, thí dụ như thiết kế của Drupal không dùng bảng (table) trong khi ở Joomla! thì bảng xuất hiện ở mọi nơi (những viên gạch đầu tiên của Joomla! được xây dựng khi các chuẩn Web chưa ra đời). Triết lí “không tương thích ngược” của Drupal làm cho module phải được viết riêng cho từng phiên bản 4.x, 5.x và 6.x (tại cùng một thời điểm, Drupal chỉ hỗ trợ 2 phiên bản mới nhất). Điều này cũng có mặt trái: nhiều người e ngại phải nâng cấp liên tục khi dùng Drupal.

Ở Việt Nam hiện nay Drupal ít được phổ biến vì nó tương đối khó sử dụng. Cộng đồng Drupal Việt Nam chỉ mới manh nha những bước đi đầu tiên sau khi Drupal vượt qua Joomla! trong cuộc thi CMS nguồn mở tốt nhất do Packt tổ chức.

… và Thông Tin Công Nghệ

Bắt đầu xây dựng vào tháng 2/2007, TTCN chọn Joomla! làm nền tảng. Đây là một lựa chọn đúng đắn vì sự đơn giản của Joomla! đã giúp đỡ rất nhiều vào thời điểm đó. Joomla! giúp dễ dàng xây dựng một blog cùng với các thành phần phụ xoay quanh.

Sau đó, càng phát triển, chúng tôi càng phải sửa đổi nhiều trong kiến trúc của Joomla!. Nhưng dường như sự cồng kềnh trong mã nguồn (theo ohloh), sự cứng nhắc trong cấu trúc cùng khả năng tích hợp không được như mong đợi đã khiến TTCN phải đánh giá lại. Tháng 10/2007, Drupal được chọn để thay thế. Từ đó đến nay, chúng tôi thử nghiệm chuyển đổi dữ liệu, tìm hiểu và xây dựng các module để nâng cấp và bổ sung tính năng cho TTCN.

Nội dung mã nguồn của Drupal. Nguồn: ohloh.

Nội dung mã nguồn của Joomla!. Nguồn: ohloh.

Theo so sánh trên, có thể thấy rằng mã nguồn của Drupal rất nhỏ so với Joomla!. Ngoài ra, riêng hạt nhân của Drupal cũng có rất nhiều tính năng quan trọng: bài viết, tìm kiếm, bình chọn, menu, rss, tài khoản, cache, quản trị và ngay cả những chức năng Joomla! không có như diễn đàn, bình luận, làm việc nhóm, phân quyền. Chính sự nhỏ gọn của nhân này sẽ giúp việc phát triển trên Drupal dễ dàng hơn, đặc biệt là phát triển các tính năng mạng xã hội. Hiện nay, nhiều trang web lớn của Việt Nam đã dùng Drupal, như là tamtay.vn, cho thấy tiềm năng của CMS này.

Đến lúc này, có thể kết luận rằng “dường như chuyển sang Drupal là một lựa chọn đúng đắn”. Chúng ta cùng mong đợi việc chuyển đổi sẽ hoàn tất trong thời gian ngắn sắp tới🙂

Hải Nam.

Đính chính: clip.vn không dùng Drupal mà tự phát triển từ đầu.

Bổ sung (của Bacscar): Dries vừa bảo vệ thành công luận án Tiến sĩ của mình, đề tài liên quan đến Java, do cha đẻ của Java hướng dẫn.

Gửi phản hồi

Please log in using one of these methods to post your comment:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

%d bloggers like this: