Chia sẻ kiến thức lập trình

Mã Nguồn Mở

Là phẳng thế giới

Thứ quan trọng nhất đối với ngành công nghệ thông tin đó chính là mã nguồn. Tất cả những gì chúng ta thấy, từ hình ảnh đến video, từ chương trình soạn thảo văn bản đến trình duyệt web, từ hệ điều hành cho đến các ứng dụng điện thoại, tất tần tật những gì chúng ta thấy trên máy tính hay điện thoại đều được tạo nên bởi mã nguồn.
Từ xa xưa các công ty công nghệ như Microsoft hay Apple coi mã nguồn như một tài sản bí mật không thể tiết lộ, thì ngày nay họ đã buộc phải mở mã nguồn của mình để tránh đi ngược lại với xu thế toàn cầu.
Có thể nói mã nguồn mở đã là phẳng thế giới này, giúp cho các doanh nghiệp có thể chia sẻ tri thức, thu hẹp khoảng cách giữa các nước giàu, các nước nghèo và các nước đang phát triển.

Nguyên nhân ra đời

Không có một tài liệu chính thức nào nói về nguyên nhân ra đời của mã nguồn mở, nhưng theo mình xuất phát điểm nó đến sự cao thượng, tinh thần học hỏi và chia sẻ không ngừng của những lập trình viên trên toàn cầu. Tư tưởng của những người làm lập trình và những người làm kỹ thuật đều cơ bản như nhau:

  1. Họ luôn nghĩ rằng tri thức này là của cả nhân loại chứ không phải của một công ty hay một tổ chức nào cả
  2. Cách nhanh nhất để giải quyết 1 vấn đề chính là chia sẻ nó, chính vì vậy mã nguồn mở là cách tốt nhất để chia sẻ
  3. Họ đam mê và muốn thể hiện kỹ năng của mình. Không có gì tuyệt với hơn bằng sự công nhận của những người làm kỹ thuật khác

Giá trị mang lại

Sự ra đời của mã nguồn mở đã mang lại những giá trị vô cùng to lớn:

  1. Giúp cho tất cả mọi người đều có thể dễ dàng tiếp cận được với lập trình: nếu tất cả các công ty đều đóng mã nguồn, thì có lẽ chỉ có những nhân viên trong công ty đó mới có thể dễ dàng tiếp cận được đến các thư viện lập trình mà thôi
  2. Tăng khả năng sáng tạo từ đó tạo ra nhiều nền tảng mã nguồn mở nữa: chúng ta sẽ không bị phụ thuộc vào một nền tảng cụ thể, thậm chí chúng ta có thể tự xây dựng nền tảng của riêng mình nếu chúng ta muốn
  3. Huy động được trí tuệ của rất nhiều người trên khắp thế giới tham gia phát triển và tạo ra một sản phẩm hoàn thiện
  4. Giúp chúng ta chia sẻ vấn đề và nhận được sự hỗ trợ nhanh chóng từ cộng đồng
  5. Giúp chúng ta phát hiện các lỗ hổng và kịp thời vá nó
  6. Giúp các tổ chức giảm được chi phí đào tạo mà vẫn có được nguồn nhân sự chất lượng tốt

Những rào cản

Mặc dù phát triển mạnh mẽ nhưng đa phần các dự án mã nguồn mở đều xuất phát từ ý tưởng của một cá nhân, chính vì vậy nguồn lực là không đủ và phải mất nhiều năm, thậm chí có nhưng thư viện lập trình phải mất hơn 10 năm mới có thể hoàn thiện được tài liệu và được sử dụng rộng rãi bởi cộng đồng. Chính vì vậy mà nguồn lực (tài chính, nhân lực và thời gian) chính là những rào cản lớn nhất đang cản trở sự phát triển của mã nguồn mở. Nhưng với sự tham gia của các tập đoàn lớn trên toàn cầu và các tổ chức phi lợi nhuận, rào cản này sẽ sớm bị phá bỏ.

Trách nhiệm của cộng đồng

Để các phần mềm, thư viện lập trình phát triển rộng rãi, rất cần sự chung tay từ cộng đồng. Xuất phát điểm là phục vụ cho nhu cầu phát triển các sản phẩm cho mình hay tổ chức của mình, từ đó giảm thiểu chi phí, sống sót và phát triển. Trong quá trình sử dụng chúng ta có thể sửa lỗi, đóng góp tài liệu cho nguồn mở. Khi đã thành công, chúng ta sẽ quay trở lại hỗ trợ (donate) cho cá nhân hay tổ chức đã tạo ra mã nguồn để thay lời cảm ơn.

Không phải mở tất cả

Nói rằng mã nguồn mở nhưng không có nghĩa là các tổ chức phải mở toàn bộ mã nguồn của họ. Họ có thể chỉ mở mã nguồn của các thư viện lập trình hay các công nghệ lõi, còn lại các mã nguồn để tạo ra các sản phẩm vẫn cần đóng lại, bảo vệ thật kỹ để đảm bảo bí mật kinh doanh và các đặc trưng riêng của tổ chức.

Có quy định riêng

Khi phát hành một phần mềm hay một thư viện lập trình mã nguồn mở, người tạo ra nó có thể đính kèm một trọng những loại giấy phép để thể hiện rằng:

  • Phần mềm hay thư viện có cho phép sử dụng cho mục đích thương mại không
  • Người sử dụng có thể phát hành lại (dưới tên mình) phần mềm hay thư viện không
  • Các thư viện sử dụng có phải đính kèm cùng loại giấy phép hay không

Về cơ bản thì người sử dụng không nhất thiết phải tuân thủ các điều lệ trong giây phép nguồn mở, tuy nhiên nến vi phạm trọng phạm vi thương mại bạn có thể bị phạt tiền, ngoài phạm vi thương mại, bạn có thể đối diện với sự tẩy chay từ cộng đồng và có thể bị xoá bỏ khỏi các nền tảng mã nguồn mở.

Các giấy phép

Tính đến thời điểm hiện tại đã có hàng triệu các phầm mềm, thư viện lập trình mã nguồn mở khác nhau. Đa phần chúng đều sử dụng một trong các giấy phép:

  1. Apache 2.0: giấy phép này cho phép ngưởi sử dụng tự do với bất kì mục đích nào, kể cả chỉnh sửa, thay đổi hay phân phối lại mà không có bất kì chi phí nào
  2. Mozilla 2.0 (MPL 2.0): giấy phép này cho phép ngưởi sử dụng tự do, tuy nhiên khi muốn sao chép hay thay đổi thì phải giữ nguyên giấy phép MPL
  3. MIT: cũng giống với Apache 2.0 giấy phép này cho phép ngưởi sử dụng tự do với bất kì mục đích nào, bạn có thể thoải mái làm bất kì hành động nào bạn muốn
  4. Giấy phép GNU GPL: Giấy phép này đã có từ lâu đời, nó cho phép người dùng tự do làm bất kì điều gì họ muốn nhưng không được phân phối lại bản gốc

Mã nguồn mở ở Việt Nam

Hiện nay các trường đại học ở Việt Nam đã đưa mã nguồn mở trở thành một môn học chính thức cho sinh viên. Mục tiêu là để giúp các bạn hiểu được mã nguồn mở là gì, lợi ích nó mang lại là gì và cần phải chú ý gì đến các giấy phép. Đây là một môn học rất hay giúp lan toả tri thức về mã nguồn mở và thúc đẩy các bạn sinh viên tham gia vào phát triển nó.
Ở Việt Nam đa phần chúng ta vẫn đứng trên vai trò là người sử dụng là chính, chưa có một tổ chức nào đủ lớn để tạo ra các phần mềm hay thư viện phục vụ cho Việt Nam và thế giới. Một phần do việc sử dụng các sản phẩm lậu tràn lan, phần là do chúng ta chưa quy tụ được những nhân tài vào một nơi để phát triển nguồn mở giống như các tổ chức khác đang làm.
Chính vì điều này bọn mình đã thành lập tổ chức phi lợi nhuận youngmonkeys.org quy tụ các kỹ sư từ khắp các quốc gia, để tạo ra các hệ sinh thái, nền tảng, phần mềm và thư viện nguồn mở phục vụ cho Việt Nam và thế giới. Tất cả mã nguồn sẽ được mở trên nền tảng Github.

Tham khảo

  1. Wiki
  2. Why do people make open source software?
  3. Các giấy phép cho mã nguồn mở
Share: