Phần mềm mã nguồn mở (Open-Source Software – OSS) đang ngày càng trở nên phổ biến và được nhiều người yêu thích bởi tính minh bạch, khả năng tùy biến và cộng đồng hỗ trợ mạnh mẽ. Bản thân congnghehot.net cũng luôn khuyến khích độc giả khám phá và tận dụng các giải pháp mã nguồn mở. Tôi hiện đang tự host một số dịch vụ như Immich (nền tảng lưu trữ ảnh tự xây dựng) và Automatisch, những dự án chỉ có thể thành hiện thực nhờ bản chất mã nguồn mở.
Có thể bạn đang sử dụng phần mềm mã nguồn mở mà không hề hay biết, bởi các ứng dụng quen thuộc như Firefox, GIMP, OBS, VLC và hệ điều hành Linux đều là những công cụ mã nguồn mở. Tuy nhiên, trong quá trình làm việc và trải nghiệm sâu hơn với các phần mềm này, tôi đã gặp phải một số vấn đề đáng lưu tâm mà người dùng cần cân nhắc kỹ lưỡng trước khi hoàn toàn chuyển đổi sang chúng. Mặc dù mã nguồn mở mang lại nhiều lợi ích vượt trội, nhưng không phải lúc nào nó cũng là giải pháp hoàn hảo cho mọi nhu cầu.
1. Ứng dụng mã nguồn mở vẫn có thể có “tường phí” (Paywall)
Các tính năng nhất định có thể bị khóa
Nhiều người thường đánh đồng phần mềm mã nguồn mở với phần mềm miễn phí. Mặc dù phần lớn các ứng dụng mã nguồn mở là miễn phí, điều này không có nghĩa là bạn sẽ không bao giờ gặp phải các hình thức kiếm tiền hay “tường phí” khi sử dụng chúng.
Đây không chỉ đơn thuần là việc các nhà phát triển kêu gọi quyên góp hoặc ủng hộ cho những đóng góp của họ, mà là việc khóa một số tính năng nhất định đằng sau các giấy phép doanh nghiệp (enterprise licenses). Ngay cả khi bạn tự host phần mềm trên máy chủ của mình, bạn vẫn có thể thấy rằng một số tính năng yêu cầu một loại giấy phép khác. Tôi đã trải nghiệm điều này khi thử dùng OpenProject.
Một ảnh chụp màn hình ứng dụng Brave trên macOS với logo Brave và giao diện duyệt web tối giản
Browser Brave là một trình duyệt miễn phí tuyệt vời và cũng là mã nguồn mở. Tuy nhiên, một số tính năng nhất định, như VPN và Tường lửa tích hợp, yêu cầu bạn phải đăng ký gói thuê bao. Nếu một dịch vụ mã nguồn mở cung cấp khả năng lưu trữ đám mây (cloud hosting) hoặc gói dịch vụ đám mây, bạn sẽ thường thấy đây là một phần trong các dịch vụ trả phí của họ.
Tôi hoàn toàn không phản đối việc các nhà phát triển tìm cách kiếm sống từ phần mềm mà họ đã dày công phát triển, đặc biệt là khi số tiền đó được dùng để tài trợ cho việc cải tiến các phiên bản cộng đồng hoặc phiên bản hợp tác. Nhưng đây là một điều mà mọi người cần ghi nhớ khi cân nhắc áp dụng các giải pháp mã nguồn mở thay thế, để tránh những hiểu lầm về khái niệm “miễn phí hoàn toàn”.
2. Các dự án dễ bị gỡ bỏ theo DMCA
Hầu hết các nhà phát triển không có công ty lớn hỗ trợ
Tôi đã chứng kiến không ít dự án mã nguồn mở bị gỡ bỏ do các mối đe dọa pháp lý, đặc biệt là từ Đạo luật Bản quyền Thiên niên kỷ Kỹ thuật số (DMCA – Digital Millennium Copyright Act). Bạn sẽ thường thấy điều này xảy ra nếu bạn theo dõi các subreddit về mã nguồn mở hoặc các trang tin tức chuyên biệt. Mặc dù một số vụ gỡ bỏ có thể là hợp pháp, nhưng ngay cả khi không, các nhà phát triển cũng không thể làm gì nhiều để chống lại nếu họ không có một công ty lớn đứng sau hỗ trợ.
Một thông báo DMCA takedown hiển thị trên trang GitHub của một kho lưu trữ mã nguồn, cảnh báo về việc vi phạm bản quyền và gỡ bỏ nội dung
Một số dự án mã nguồn mở được duy trì bởi các công ty hoặc quỹ lớn, nhưng rất nhiều dự án khác chỉ là những dự án nhỏ với vài người đóng góp. Các nhóm nhỏ này không có đủ kinh phí để theo đuổi các vụ kiện tụng kéo dài, vì vậy nhiều người chỉ đơn giản là chọn bỏ hoàn toàn một dự án nếu nó thu hút sự chú ý của một công ty có đội ngũ luật sư hùng hậu. Điều này đặt ra rủi ro lớn về tính bền vững cho người dùng dựa vào các công cụ này.
3. Công cụ yêu thích của bạn có thể bị bỏ rơi
Và không phải dự án nào cũng được “fork” (phát triển tiếp)
Việc các dự án bị bỏ rơi không chỉ xảy ra với phần mềm mã nguồn mở; có rất nhiều ứng dụng và dịch vụ độc quyền cũng bị các công ty tạo ra chúng “bỏ rơi” (điển hình là “nghĩa địa Google”). Tuy nhiên, tôi nhận thấy phần mềm độc quyền có xu hướng có vòng đời dài hơn.
Vấn đề này ảnh hưởng nhiều nhất đến các dự án nhỏ. Firefox có khả năng sẽ tiếp tục phát triển mạnh mẽ nhờ vào Quỹ Mozilla và Mozilla Corporation. Nhưng công cụ “độc đáo” với mục đích sử dụng ngách mà bạn yêu thích có thể bị các nhà phát triển ban đầu bỏ rơi.
Một thông báo trên GitHub cho biết một kho lưu trữ mã nguồn không còn được duy trì hoạt động và đề xuất các lựa chọn thay thế hoặc phát triển tiếp
May mắn thay, nhiều nhà phát triển sẽ đặt một thông báo từ chối trách nhiệm trên GitHub khi họ ngừng duy trì dự án và sẽ chuyển hướng người dùng đến một trong các bản “fork” (phiên bản phát triển tiếp từ mã nguồn gốc) của dự án đó. Nhưng cũng có rất nhiều dự án không được cập nhật trong nhiều năm mà không có bất kỳ thông báo nào từ những người tạo ra chúng. Tôi đã thấy đây là một vấn đề thường gặp với các plugin cộng đồng của Obsidian, với nhiều plugin phổ biến cho thấy chúng đã không được cập nhật trong nhiều năm. Điều này gây ra rủi ro về bảo mật và khả năng tương thích khi hệ điều hành hoặc các ứng dụng khác được cập nhật.
4. Khó xác minh bảo mật nếu bạn không phải nhà phát triển
Bạn cần đào sâu vào mã nguồn
Một trong những lợi ích được ca ngợi của phần mềm mã nguồn mở là vì mã nguồn được công khai, nó luôn sẵn sàng để được kiểm tra kỹ lưỡng. Điều này có nghĩa là các nhà phát triển khác và thành viên cộng đồng có thể xác định các lỗ hổng bảo mật bị bỏ qua trong mã và cảnh báo những người khác.
Mã nguồn của trình duyệt Firefox hiển thị trên trang GitHub, cho thấy cấu trúc thư mục và các dòng code phức tạp
Nhưng điều gì sẽ xảy ra nếu bạn đang sử dụng một công cụ ít được biết đến? Trong trường hợp đó, khả năng phát hiện các vấn đề phụ thuộc vào kiến thức về lập trình và an ninh mạng của chính bạn. Vì các nhà phát triển không phải là những người duy nhất tự host hoặc sử dụng phần mềm mã nguồn mở, có rất nhiều người sẽ không thể phát hiện ra nếu có vấn đề với một ứng dụng cụ thể. Họ phải tin tưởng vào cộng đồng hoặc những người có chuyên môn hơn đã kiểm tra mã nguồn, nhưng điều này không phải lúc nào cũng đủ để đảm bảo an toàn tuyệt đối.
5. Một số dự án có thể khiến bạn gặp rắc rối
Và nhiều dự án không đi kèm cảnh báo
Một điều tôi nhận thấy khi duyệt qua các ứng dụng mã nguồn mở và tự host được đề xuất là mọi người thường giả định rằng những người được đề xuất phần mềm đều nhận thức được những hàm ý khi sử dụng chúng. Ví dụ, mặc dù bạn có thể tự host các ứng dụng giải trí theo cách hoàn toàn hợp pháp, nhưng thực tế là nhiều người sử dụng các nền tảng này để tải xuống nội dung có bản quyền mà họ không sở hữu. Tùy thuộc vào nơi bạn sinh sống, việc chia sẻ phương tiện này với người khác có thể khiến bạn gặp rắc rối với pháp luật.
Trang web uBlock Origin, một tiện ích chặn quảng cáo mã nguồn mở, hiển thị các tùy chọn và thông tin về cách nó hoạt động
Cũng có rất nhiều ứng dụng mã nguồn mở cho phép bạn tải xuống nội dung từ các nền tảng như YouTube hoặc sử dụng chúng mà không có quảng cáo. Tuy nhiên, việc sử dụng các ứng dụng này đi ngược lại điều khoản dịch vụ của YouTube. Ngay cả các trình chặn quảng cáo, một công cụ thiết yếu cho nhiều người dùng internet, về mặt kỹ thuật cũng vi phạm các điều khoản của YouTube. May mắn thay, trong trường hợp này, bạn thường chỉ được cảnh báo tắt trình chặn quảng cáo thay vì bị cấm tài khoản. Nhưng điều này không có nghĩa là các dịch vụ như YouTube và Spotify sẽ không sớm bắt đầu cấm những người dùng vi phạm điều khoản của họ.
6. Nhiều phần mềm có giao diện người dùng không trực quan
Không phải dự án nào cũng được trau chuốt
Rất nhiều dự án mã nguồn mở tập trung vào tính năng hơn là giao diện người dùng, và tôi cũng phải thừa nhận rằng tôi thà có một bộ tính năng phong phú hơn là một giao diện bóng bẩy. Nhưng giao diện người dùng không trực quan chắc chắn là một hạn chế mà tôi đã gặp rất nhiều khi sử dụng phần mềm mã nguồn mở từ các nhóm phát triển nhỏ hơn.
Các biểu tượng của GIMP và Darktable, hai phần mềm chỉnh sửa ảnh mã nguồn mở, hiển thị trên màn hình MacBook
Tuy nhiên, tôi đã rất ngạc nhiên bởi sự trau chuốt của một số dự án. Tôi đã thử Immich để xem liệu nó có thể tái tạo các tính năng yêu thích của Google Photos hay không, và tôi đã rất ngạc nhiên khi phần mềm này không chỉ dễ sử dụng mà còn đầy đủ tính năng. Nhưng đồng thời, mặc dù tôi sử dụng GIMP cho một số chỉnh sửa hình ảnh, tôi luôn thấy giao diện người dùng của nó còn thiếu sót và khó làm quen. Đây là rào cản lớn đối với người dùng phổ thông, những người không có nhiều thời gian để học cách sử dụng các công cụ phức tạp.
7. Thiếu tích hợp với các nền tảng khác
Phần mềm độc quyền thường tương thích tốt hơn
Một hạn chế khác của phần mềm mã nguồn mở là nó không phải lúc nào cũng tích hợp tốt với các nền tảng khác. Một nền tảng lớn như Zapier có nhiều tích hợp hơn hẳn so với các lựa chọn thay thế mã nguồn mở mà tôi đã thử. Điều này đặc biệt đúng khi phần mềm đến từ một công ty phát hành nhiều ứng dụng. Hãy nghĩ xem các ứng dụng của Microsoft hoạt động tốt với nhau như thế nào, hoặc vô số tích hợp mà các ứng dụng của Google có.
Trang web Zapier, một dịch vụ tự động hóa quy trình làm việc, hiển thị trên màn hình laptop, minh họa khả năng kết nối các ứng dụng khác nhau
Điều này không có nghĩa là không thể tích hợp các dịch vụ yêu thích của bạn với các lựa chọn thay thế mã nguồn mở. Trên thực tế, tôi đã sử dụng Automatisch để tạo một số tự động hóa không cần mã với một số ứng dụng phổ biến mà tôi sử dụng hàng ngày. Tôi cũng biết rằng Home Assistant hỗ trợ rất nhiều tích hợp. Nhưng dự án bạn đang sử dụng càng nhỏ, bạn càng có nhiều khả năng gặp phải ít tích hợp với các công cụ khác. Sự thiếu hụt này có thể làm gián đoạn quy trình làm việc và yêu cầu người dùng phải tìm các giải pháp thay thế thủ công hoặc tự phát triển tích hợp.
8. Bạn thường không nhận được hỗ trợ kỹ thuật
Bạn phải tự xoay sở
Nếu có sự cố xảy ra khi bạn đang sử dụng phần mềm mã nguồn mở, bạn không có khả năng được tiếp cận với bộ phận hỗ trợ kỹ thuật hoặc kênh dịch vụ khách hàng. Đôi khi bạn có thể tìm thấy các bài đăng của những người khác thảo luận về các cách khắc phục sự cố, nhưng nếu công cụ bạn đang sử dụng không nổi tiếng, bạn có thể sẽ chỉ tìm thấy những “ngõ cụt”.
Màn hình hiển thị các dòng log lỗi của Docker, cho thấy các thông báo và cảnh báo kỹ thuật phức tạp
Một cách để nhận được sự giúp đỡ là đăng vấn đề lên GitHub, nhưng liệu bạn có nhận được phản hồi hay không hoàn toàn phụ thuộc vào nhà phát triển và những người đóng góp. Tôi cũng thấy rằng đôi khi khi tôi nhận được phản hồi, cách khắc phục lại không thực sự hiệu quả.
Đây là một lĩnh vực khác mà việc thiếu kinh nghiệm lập trình cũng có thể gây khó khăn cho bạn, đặc biệt nếu bạn đang tự host phần mềm. Tôi đã dành nhiều giờ để khắc phục sự cố phần mềm mã nguồn mở, chỉ để cuối cùng phải từ bỏ việc sử dụng nó do những vấn đề tôi không thể giải quyết. Điều này đã thúc đẩy tôi bắt đầu học lập trình để hy vọng tôi có thể khắc phục sự cố tốt hơn và cũng đóng góp cho các nền tảng mà tôi hưởng lợi từ chúng.
Phần mềm mã nguồn mở rất tuyệt vời, nhưng vẫn có những vấn đề tồn tại
Bạn có thể đọc bài viết này và nghĩ rằng tôi đang khuyến khích mọi người chỉ sử dụng phần mềm độc quyền, nhưng không phải vậy. Tôi yêu phần mềm mã nguồn mở và thực tế là nó có thể tập hợp mọi người lại để hợp tác phát triển các công cụ hữu ích, sáng tạo.
Tuy nhiên, vẫn có một số hạn chế, đặc biệt là nếu bạn không có kỹ năng kỹ thuật để kiểm tra và khắc phục lỗi cũng như các vấn đề tiềm ẩn với phần mềm chia sẻ mã nguồn. Nó cũng có nghĩa là khi các dự án bị bỏ rơi, bạn phải dựa vào những người khác để tiếp tục phát triển các bản fork của bản gốc hoặc hy vọng rằng có một lựa chọn thay thế có sẵn. Việc nhận thức rõ những thách thức này sẽ giúp bạn đưa ra quyết định sáng suốt hơn khi lựa chọn phần mềm, đảm bảo trải nghiệm sử dụng hiệu quả và an toàn nhất.
Tài liệu tham khảo:
- I used completely open-source software for a month, and these are the 5 lessons I learned
- 5 software I regret paying for instead of using a free alternative
- 6 under-the-radar FOSS projects that could save you hundreds this year
- 5 reasons you should try using open-source software
- 6 software subscriptions I cancelled after finding free alternatives
- I built a self-hosted entertainment suite with these services
- I wasted my time looking for free software, here’s why I’ll pay for it now
- 7 open-source alternatives to Windows essentials you’ll actually want to use
- Automatisch is a free Zapier alternative I’ve started using for my automations
- I don’t pay for productivity apps on Mac, I use these open source tools instead
- 5 tools for diagnosing and fixing PC hardware issues