admin01
260
18-04-2024
Phần mềm nguồn mở được phát triển theo cách phi tập trung và hợp tác, dựa vào các đánh giá và sự chung sức xây dựng từ cộng đồng. Phần mềm nguồn mở thường rẻ hơn, linh hoạt hơn và có tuổi thọ cao hơn so với các phần mềm độc quyền tương tự. Hãy cùng Cole tìm hiểu về Open source trong bài viết dưới đây.
Thuật ngữ open source đề cập đến bất kỳ chương trình nào có mã nguồn được cung cấp để sử dụng hoặc sửa đổi khi user hoặc developers khác thấy phù hợp.
Không giống như các phần mềm độc quyền, open source software là phần mềm máy tính được phát triển dưới dạng cộng tác mở, công khai và được cung cấp miễn phí cho công chúng.
Trong những năm đầu phát triển phần mềm, các lập trình viên thường chia sẻ phần mềm để học hỏi lẫn nhau và phát triển lĩnh vực lập trình máy tính. Điều này đã thúc đẩy việc thành lập Quỹ Phần mềm Tự do – Free Software Foundation (FSF), bao gồm chương trình sắp chữ TeX của David Knuth vào năm 1979 và hệ điều hành GNU của Richard Stallman vào năm 1983. Trên thực tế, trình duyệt web đầu tiên Netscape là một phần mềm miễn phí với mã nguồn mà sau này sẽ tiếp tục phát triển để giúp phát triển các open source software như Mozilla Firefox, một trình duyệt web vẫn được sử dụng phổ biến cho đến ngày nay.
FSF sau đó được thay thế bởi Open Source Initiative (OSI) – một nhóm các software developers tạo ra phần mềm nhằm mục đích được những người khác chia sẻ, cải tiến và phân phối lại một cách tự do. Phong trào open source không phải không có những người gièm pha – ví dụ, Jim Allchin của Microsoft, người vào năm 2001 đã tuyên bố rằng OSI là kẻ “hủy hoại tài sản trí tuệ”.
Tuy nhiên, ngày nay, Microsoft và nhiều hãng khác đã tham gia vào phong trào open source software miễn phí bằng cách này hay cách khác. Điều này đã tạo ra một sự thay đổi lớn trong cách nhìn nhận open source software.
Một số nhà đóng góp, nhà tài trợ và tổ chức phi lợi nhuận cho dự án open source khác bao gồm Quỹ Linux, Quỹ WordPress, Creative Commons, Android Open Source Project và Quỹ Mozilla.
Open source | Closed source | |
Chi phí | Có sẵn cho phí cấp phép và sử dụng danh nghĩa hoặc bằng không. | Chi phí thay đổi tùy theo quy mô của phần mềm. |
Tự do tùy chỉnh | Hoàn toàn có thể tùy chỉnh nhưng nó phụ thuộc vào giấy phép nguồn mở. Yêu cầu chuyên môn nội bộ. | Yêu cầu thay đổi phải được gửi tới công ty bán phần mềm. Điều này bao gồm sửa lỗi, tính năng và cải tiến. |
Thân thiện với người dùng | Thông thường, nó ít thân thiện với người dùng hơn, nhưng nó có thể phụ thuộc vào mục tiêu của dự án và những người duy trì nó. | Thường thân thiện với người dùng hơn. Là một sản phẩm vì lợi nhuận, khả năng chấp nhận và trải nghiệm người dùng thường là những yếu tố quan trọng cần cân nhắc. |
Khả năng hỗ trợ sau khi sử dụng | Một số phần mềm nguồn mở rất phổ biến (ví dụ: PMNM do Red Hat hoặc SUSE phân phối) có rất nhiều hỗ trợ. Mặt khác, người dùng có thể tìm trợ giúp thông qua diễn đàn người dùng và mailing lists. | Đội ngũ hỗ trợ chuyên dụng được đưa ra. Mức độ dịch vụ sẵn có tùy thuộc vào thỏa thuận cấp độ dịch vụ (SLA). |
Bảo mật | Mã nguồn được mở để mọi người xem xét. Có một lý thuyết phổ biến cho rằng việc chú ý nhiều hơn đến code sẽ khiến bugs khó tồn tại hơn. Tuy nhiên, bugs và lỗ hổng bảo mật vẫn có thể tồn tại và gây ra rủi ro đáng kể. | Công ty phân phối phần mềm (tức là chủ sở hữu phần mềm) đảm bảo mức hỗ trợ nhất định, tùy thuộc vào các điều khoản của SLA. Vì mã nguồn bị đóng để xem xét nên có thể xảy ra vấn đề về bảo mật. Nếu phát hiện ra vấn đề, nhà phân phối phần mềm có trách nhiệm khắc phục chúng. |
Vendor lock-in | Không có sự ràng buộc của nhà cung cấp do chi phí liên quan. Tích hợp vào hệ thống có thể tạo ra sự phụ thuộc về mặt kỹ thuật. | Trong hầu hết các trường hợp, các khoản đầu tư lớn được thực hiện vào phần mềm độc quyền. Việc chuyển sang một nhà cung cấp khác hoặc sang một giải pháp nguồn mở có thể tốn kém. |
Tính ổn định | Điều này sẽ phụ thuộc vào cơ sở người dùng hiện tại, các bên duy trì phần mềm và số năm có mặt trên thị trường. | Các giải pháp cũ dựa trên thị trường ổn định hơn. Các sản phẩm mới có những thách thức tương tự như các sản phẩm nguồn mở. Nếu nhà phân phối ngừng ứng dụng, sẽ ảnh hưởng đến trải nghiệm khách hàng. |
Độ phổ biến | Một số open source solutions rất phổ biến và thậm chí còn dẫn đầu thị trường (ví dụ: Linux, Apache). | Trong một số ngành, phần mềm độc quyền phổ biến hơn, đặc biệt nếu nó đã có mặt trên thị trường trong nhiều năm. |
Chi phí sở hữu | Thấp và trả trước nếu có chi phí sử dụng tối thiểu hoặc không có, đồng thời phụ thuộc vào mức độ bảo trì được yêu cầu. | Cao hơn nhiều và phụ thuộc vào quy mô cơ sở người dùng. |
Sự tham gia của cộng đồng | Cộng đồng tham gia phát triển, đánh giá, phê bình và nâng cao phần mềm là bản chất của nguồn mở. | Cộng đồng khép kín. |
Khả năng tương tác với các phần mềm nguồn mở khác | Điều này sẽ phụ thuộc vào mức độ bảo trì và mục tiêu của nhóm, nhưng nó thường tốt hơn phần mềm nguồn đóng. | Điều này sẽ phụ thuộc vào các tiêu chuẩn phát triển. |
Tính thuế | Khó khăn do không xác định được giá trị. | Chắc chắn có. |
Cải tiến hoặc cập nhật tính năng mới | Người dùng có thể phát triển nếu cần. | Yêu cầu phải được gửi tới chủ sở hữu phần mềm. |
Sự phù hợp với môi trường sản xuất | OSS có thể không được thiết kế hoặc thử nghiệm tốt về mặt kỹ thuật trong môi trường sản xuất quy mô lớn. | Hầu hết các phần mềm độc quyền đều trải qua nhiều vòng thử nghiệm. Tuy nhiên, mọi thứ vẫn có thể gặp trục trặc khi triển khai trong môi trường sản xuất. |
Các cân nhắc về tài chính | Ngành tài chính có xu hướng tránh open source solutions. Nếu được sử dụng thì phải thực hiện quá trình kiểm tra. | Các tổ chức tài chính ưa chuộng phần mềm độc quyền hơn. |
Sự bảo đảm | Không có sự bảo đảm. | Phục vụ tốt nhất cho các công ty có chính sách bảo mật yêu cầu cao và bồi thường trách nhiệm pháp lý. |
Nắm rõ ưu và nhược điểm của open source software sẽ giúp bạn sử dụng dạng phần mềm này một cách hiệu quả:
Open source vẫn tồn tại nhiều hạn chế
Open source đã trở thành một phong trào và một hình thức hoạt động vượt ra ngoài việc sản xuất phần mềm. Theo dõi Cole và tham gia khóa học ba online để cập nhật các kiến thức mới nhất về lập trình phần mềm và khoa học dữ liệu.
>> Xem thêm: Khám phá sự khác biệt giữa TDD và BDD