Skip to content
Flying Animal

Open Source or Close Source

🕒 Published at:

Bắt đầu

Có lẽ đây là chủ đề được nhắc đi nhắc lại nhiều nhất nên có lẽ mình nên viết một chủ đề về vấn đề này. Liệu chúng ta nên Open Source hay Close Source, những điểm lợi và hại khi bạn bắt đầu tham gia Open Source là gì ?

Open Souce Là gì ?

Nhắc đến Open Source(FOSS), người ta thường nghĩ ngay đến một thứ gì đó mở, một thứ mà nhiều người cho là tốt đẹp, văn minh sáng sủa. Theo cảm nhận của cá nhân mình, mã nguồn mở còn nhiều thứ hay ho khác nữa. Mã nguồn mở được cung cấp miễn phí để người dùng có thể dễ sử dụng và phân phối lại.Tuỳ theo điều khoản giấy phép của dự án mà người dùng sẽ có những hạn chế về sửa đổi, thay đổi, xóa bỏ, hoặc phân phối lại, thậm chí bạn có thể sử dụng nó như một phần của dự án mã nguồn mở khác.

Mã nguồn mở bùng nổ như một phong trào để chống lại những hạn chế của mã nguồn đóng. Có một ví dụ bạn có thể hiểu nhanh đó là chân dung người phụ nữ sáng chế ra vaccine ngừa COVID-19 giá rẻ AstraZeneca. Bà Gilber từng trả lời báo The Star (Malaysia) rằng: "Là người đã phát minh ra loại vaccine này, tôi có thể kiếm được một khoản lợi nhuận khổng lồ. Nhưng tôi từ chối nhận bằng sáng chế vaccine. Tôi không muốn độc quyền sáng chế vì tôi muốn chia sẻ công nghệ này để mọi người có thể sản xuất vaccine".Và bạn biết không, điều đó đã cứu mạng rất nhiều người trong đại dịch. và giá cho mỗi liều vaccine AstraZeneca có giá chưa đến 3 USD/liều trong khi giá của vaccine Sinopharm là khoảng 13,6 USD/liều hay Moderna khoảng 33 USD/liều vì không phải trả bất kì cho chi phí bằng sáng chế.

Các loại Open Source

Đóng: Nếu bạn đã từng nghĩ mã nguồn mở sẽ là mở thì không phải. Mã nguồn mở rất phức tạp và phải tìm hiểu kỹ để sử dụng.Mã nguồn mở đóng chính là một trong số đó, điều này đồng nghĩa với việc mã nguồn này mở để làm việc cho người dùng báo cáo các vấn đề sửa đổi hoặc các chức năng cần cải tiến.Nhìn chung việc này rất ít được các công ty hay cá nhân sử dụng.Các dự án loại này thường như một khảo sát người dùng để tăng tính chất linh hoạt của dự án.Mã nguồn mở đóng không có bất kì dòng mã nào được nhìn thấy cũng như sửa đổi.Điều này cũng có thể xem là một mã nguồn đóng.

Mở hé hé: Loại mã nguồn mở kiểu này thường viết theo kiểu module. Tức là không phải tất cả các module của mã nguồn bạn có thể nhìn thấy mà chỉ một trong số đó.Ví dụ mã nguồn mở của cái ấm nước. Họ chỉ mở cho bạn xem cái vòi nước của cái ấm để bạn cải tiến nó thay vì cho bạn xem toàn bộ kiến trúc của ấm nước. Các loại dự án như này bạn có thể xem mã nguồn cũng như sửa đổi và đóng góp bình thường theo điều khoản giấy phép quy định.Tuy nhiên bạn cũng không thể hiểu hết được toàn bộ mã nguồn.

Mở toàn bộ: Đây là loại bạn có thể xem từ đầu đến cuổi và những thứ cốt lõi nhất quan trọng từ dự án. Những dự án loại này thường được xếp vào hàng tầm cỡ và có rất nhiều đóng góp trên thế giới. Nếu bạn tham gia các dự án này bạn sẽ hiểu được toàn bộ quy trình cũng như quá trình tạo dựng và bảo trì cho dự án.

Lưu ý : Để dễ dàng biết được các loại này bạn cần xem các giấy phép mã nguồn mở trước khi bắt đầu thực hiện hoặc cộng tác dự án hoặc tích hợp chúng vào dự án riêng của bạn.

Lợi ích từ Open Source

Việc làm Open Source đã giúp mình đáng kể trong một số vấn đề như:

  • Học hỏi được rất nhiều điều từ những người có kinh nghiệm, những người mà mình chưa bao giờ quen biết.Những kinh nghiệm này sẽ không bao giờ có được khi bạn đọc qua bất cứ bài báo, blog, sách hay xem bất cứ video nào.Qua việc đó đã giúp mình tiến bộ mỗi ngày nhanh hơn bao giờ hết.
  • Mã nguồn của mình được cải thiện tối đa các lỗi và thêm các ý tưởng mới. Đó là điều mà mình chưa bao giờ nghĩ ra, có rất nhiều hàng triệu con mắt ngoài kia đang nhìn vào mã nguồn của mình. Điều đó giúp mình cải thiện chúng mỗi ngày.Một số người trong đó đã tạo ra các yêu cầu kéo và mình chỉ cần xem xét và hợp nhất để sửa chúng.Một phần mềm tốt cần quan tâm đến sự ổn định và độ tin cậy của nó.
  • Từ khi làm Open Source, mình có nhiều bạn bè mới hơn, tất cả đều là những chuyên gia trong ngành, người đam mê học thuật trên khắp thế giới, đã từng có thời gian mình say đắm vào việc trao đổi để tìm ra giải pháp cho các ý tưởng điên rồ mà trên thế giới chưa ai làm được.

  • Cơ hội nghề nghiệp luôn được chào đón. Vì ai đó ở một công ty A đã nhìn ra điểm mạnh và bạn chính là người sẽ giúp bạn đi đúng hướng hơn bất cứ ai khác. Bạn không cần phải chém gió cho bất kì ai về thành tích của bạn. Họ chỉ cần xem qua một số thông tin mà bạn đã làm được cho thế giới này. Bạn biết không, rất nhiều người đã nhận ra sai lầm rằng mình đã làm một công việc không đúng với khả năng khi có một công việc mới chỉ sau khi họ làm việc cho họ.Nhưng ở đây việc này đang đi ngược lại, nếu người tuyển dụng bạn thấy bạn phù hợp với công việc, họ sẽ tìm bạn thay vì bạn phải tìm họ.

  • Chi phí từ mã nguồn mở gần như bằng 0.Đây là một quan niệm sai lầm phổ biến về phần mềm nguồn mở. Mặc dù phần mềm nguồn mở hầu hết đều miễn phí, nhưng mọi người cũng có thể khiến mã của họ tốn tiền.Tất cả phụ thuộc vào giấy phép được chọn cho một phần mềm. Nếu giấy phép cho biết rằng bất kỳ ai cũng có thể sửa đổi và sử dụng chương trình một cách riêng tư, thì họ có thể làm điều đó.Tuy nhiên bạn có thể đóng góp các khoản tài trợ để giúp các nhà phát triển bảo trì mã nguồn mở, so với việc bạn phải cung cấp một khoảng chi phí khổng lồ cho các phần mềm đóng thì việc đóng góp một khoảng tài trợ còn có ý nghĩa lớn hơn rất nhiều.
  • Nhiều người dùng : Nếu mã nguồn của bạn được nhiều người sử dụng và mang tính phổ biến. Điều đó không những mang lại cho bạn một động lực to lớn để phát triển mà còn giúp bạn tiến xa hơn cho những dự án nghiên cứu lớn.Sẽ ra sao nếu bạn thử so sánh một phần mềm giữa một trăm người dùng so với một triệu người dùng. Điều đó sẽ tạo ra rất nhiều sự khác biệt.
  • Giảm thiểu các vấn đề vi phạm bản quyền, quyền sở hữu trí tuệ.
  • Tránh sự nghiên cứu lặp lại không đáng có: Điều này xảy ra rất thường xuyên đối với các nhà phát triển, việc phát triển lặp lại gây tốn thời gian, công sức và tiên bạn trong khi bạn có thể tái sử dụng các phần của mã nguồn mở có sẵn và mở rộng nó.
  • Mình đã bắt đầu nghiện tham gia mã nguồn mở trong vòng 4 năm trở lại đây, đến nay nó đã biến thành nơi trao đổi chính của mình thay vì twitter hay linkedin.Có rất nhiều cuộc thảo luận sôi nổi bên trong đó và mình có cảm giác như sống lại những ngày tháng hạnh phúc của tuổi mới lớn.Độ tuổi nhiệt huyết và đầy đam mê sáng tạo, sự nỗ lực không mệt mỏi sau mỗi giờ làm việc.

  • Mình giờ đây không phải là người duy nhất quyết định sự phát của sản phẩm, chính cộng đồng sẽ giúp đỡ để đạt được điều họ muốn.

Open Source ở đâu ?

  • Bạn sẽ dễ dàng tìm thấy các dự án open source trên các trang web mã nguồn mở phổ biến như:

GitHub : Tính đến thời điểm hiện tại, nơi này là noi tốt để đặt mã nguồn.

gitlab : Một nơi lưu trữ ổn định mã nguồn cho doanh nghiệp

bitbucket : Một nơi lưu trữ mã nguồn mở giành cho ai đang sử dụng nó.

SourceForge : Nơi lưu trữ những phần mềm mã nguồn mở miễn phí tốt.

Danh sách phần mềm mã nguồn mở bạn có thể tham khảo qua https://en.wikipedia.org/wiki/List_of_free_and_open-source_software_packages

Cộng tác mã nguồn mở

Mã nguồn mở rất dễ cộng tác nếu như bạn nắm rõ và am hiểu về dự án đó, một trong số đó cần quan tâm nhất chính là:

  • Hướng dẫn cộng tác mã nguồn mở thường được tìm thấy trên tệp hướng dẫn Contribute.md của mỗi dự án hoặc các bản viết tay khác.

  • Giấy phép và các quy định về mã nguồn mở.

  • Phong cách viết mã của mỗi dự án, ngôn ngữ mà dự án sử dụng.

  • Các chức năng nên tách biệt và tạo một yêu cầu kéo rõ ràng.

Những dự án nào nên Open Source

Các dự án nghiên cứu cá nhân chính không ảnh hưởng đến giấy phép và bản quyền đều có thể Open Source.Đối với các dự án mang tính doanh nghiệp bạn nên cân nhắc và hỏi ý kiến trước khi làm điều này.Việc giữ bí mật về các phương pháp nghiên cứu sẽ làm khoa học chậm phát triển đi rất nhiều.Vì vậy mã nguồn mở như một đòn bẩy lớn, hãy nhìn linux ngày nay, chúng đang được chạy ở rất nhiều nơi trên thế giới.

Những dự án nào không nên Open Source

Đối với những dự án nghiên cứu mang tính cạnh tranh cao cho doanh nghiệp, rất nhiều người trong số đó đã lựa chọn đóng chúng vì lợi ích cạnh tranh so với các đối thủ chung ngành vì chúng không dễ dàng nghiên cứu được.Việc open source các dự án này đòi hỏi bạn phải am hiểu thật kỹ về văn hoá doanh nghiệp, loại dự án và các quy định bảo mật do công ty bạn quyết định. Hãy đảm bảo rằng bạn không hề vướng vào bất cứ pháp lý nào với doanh nghiệp trước khi đưa chúng open source.

Các dự án bảo mật ảnh hưởng đến hệ thống doanh nghiệp của bạn, sẽ có rất nhiều lỗ hổng bên trong mà bạn và các cộng tác viên với bạn không dễ dàng gì biết được. Nếu bạn open chúng, sẽ luôn có những kẻ xấu ngoài kia khai thác và sử dụng chúng như một thứ bất hợp pháp để thu lợi riêng hoặc làm bất cứ thứ gì gây bất lợi cho bạn và doanh nghiệp.Nhưng bạn cũng nên biết rằng, cũng có những lỗi được phát hiện nhanh chóng và sẽ có ai đó sẵn sàng giúp bạn như một người bảo vệ âm thầm cho mã nguồn của bạn.

Điều gì khi bạn rời đi

Khi bạn rời dự án, các cộng tác viên khác vẫn có thể giúp đỡ bạn nâng cấp chúng. Để quá trình dự án được tiếp diễn và bảo trì thường xuyên bạn nên cân nhắc mời thêm người cộng tác cho dự án, người có thể thay thế cho vị trí của bạn và làm giúp bạn những công việc bạn đã làm.

Một dự án chết sẽ đến khi trở thành không có gì hoặc không ai có thể bảo trì cho dự án.Dự án có thể chết vào ngày mai. Không có người bảo trì có nghĩa là bạn phải làm lại dự án mới hoặc bạn sẽ bị buộc phải áp dụng công nghệ khác.

Điều gì khi bạn đến lại

Bạn vẫn dễ dàng quay lại dự án bởi vì chúng là open source, do tính chất này bạn có thể dễ dàng theo dõi chúng khi bạn rời đi, khi quay trở lại bạn sẽ không bị bỡ ngỡ khi có quá nhiều mã mới lạ hoắc xuất hiện hoặc thậm chí kiến trúc dự án đã thay đổi 360 độ và điều đó làm cho bạn bối rối.Việc làm quen lại với dự án cũng không dễ dàng gì nếu không có các tài liệu hướng dẫn hoặc bất cứ trợ giúp nào từ đồng nghiệp.

Mặc tối của Open Source

Có rất nhiều bài viết nói về mã nguồn mở nhưng rất ít ai kể về mặc tối của nó.Tại sao vậy? Không có bất cứ thứ gì là hoàn hảo cả , ngay kể cả đến những dự án được cho là tốt nhất cũng đang có rất nhiều sai lầm, một số mặc tối mà bạn sẽ nhìn ra như :

  • Sẽ luôn có những gã ích kỉ không mấy tốt đẹp ngoài kia đang đợi bạn sơ hở để được đánh cắp một thứ gì đó từ bạn.Đôi lúc họ không mấy thiện cảm lắm.
  • Đôi lúc bạn sẽ cảm thấy hụt hẫn và thiếu động lực vì không có bất cứ ai chi trả cho bạn bất cứ thứ gì, bởi vì bạn đang làm điều đó miễn phí.
  • Rất nhiều mã nguồn mở thành công là những dự án làm ngoài giờ của một lập trình viên. Điều đó cho thấy tính sáng tạo không phải do công ty doanh nghiệp quyết định mà do những người tạo ra nó quyết định.Đó cũng là một điều đáng khen với những cá nhân và cũng là một điều đáng buồn trong một phần công việc của thế giới này.Hầu hết thời gian đó là mong muốn được sáng tạo và giải quyết các vấn đề mà chưa ai khác giải quyết được. Nó cũng được thực hiện bởi những người thực sự yêu thích công nghệ, nhận thức sâu sắc về giới hạn và khả năng của nó.
  • Rất nhiều lỗi được báo cáo không ai sửa trong vài năm hoặc thậm chí cả chục năm, vì ai cũng có công việc được trả tiền của riêng họ và không phải ai cũng biết cách để cộng tác hay giúp đỡ bạn.
  • Áp lực từ cộng đồng làm thay đổi cuộc sống của bạn khi có quá nhiều câu hỏi được đặt ra, bạn phải bỏ ra các giờ vui vẻ để trả lời chúng như một phần tốt đẹp của thế giới mà không ai cho bạn lại bất cứ thứ gì.Bạn phải bỏ ra thêm hàng giờ thậm chí vài ngày trước máy tính để làm những việc không được trả lương hay bất cứ lời cám ơn nào.Có thể đó chỉ là một niềm vui từ chính bản thân.
  • Các phần mềm open source tuỳ thuộc rất nhiều vào người đứng đầu dự án và việc chải chuốt liên quan rất nhiều. Không phải phần mềm mã nguồn mở nào cũng mạnh mẽ và tốt hơn mã nguồn đóng với đội ngũ lập trình viên xuất sắc của công ty được trả lương, giống như việc bạn so sánh GIMP với Adobe Photoshop.Xét về độ thân thiện để sử dụng thì chúng đang ở rất xa nhau.

Cần làm gì với Open Source

  • Trước khi công khai một dự án Open Source, bạn nên viết rõ mục đính của dự án và các điều kiện cũng như giấy phép để công khai.

  • Cần có các tài liệu rõ ràng để giải thích cho các mã bên trong dự án hoặc các hướng dẫn cụ thể.

  • Bình đẳng tiếng nói và tôn trọng các cộng tác viên và các nhà phát triển khác.

Mã nguồn mở đối với ngành AEC

Trong ngành AEC, mã nguồn mở vẫn đang trong giai đoạn chớm nở, chúng vẫn còn khá thô sơ và thiếu tính nhất quán. Hầu hết các công ty AEC và các nhà cung cấp phần mềm trong ngành đều đang hoài nghi về phần mềm mã nguồn mở, các công ty AEC “truyền thống” xem bất kỳ phần mềm hoặc công cụ tự động hóa nào mà họ tự sản xuất là những yếu tố khác biệt chính mang lại cho họ lợi thế cạnh tranh. ​Việc hiểu biết về kỹ thuật số là điểm khác biệt chính và là kỹ năng cần thiết giúp các công ty tồn tại và phát triển mạnh trong thị trường ngày nay. Chính điều này dẫn đến nhiều công việc tự động hoá trùng lặp trong toàn ngành: các công ty khác nhau giải quyết cùng một vấn đề lặp đi lặp lại vì họ không thể xây dựng dựa trên sự hợp tác và trao đổi của nhau. Hơn nữa, bởi vì họ không sẵn sàng về mặt văn hóa và các hoạt động để duy trì phần mềm do chính họ tạo nên, nhiều khi công việc bị trùng lặp ngay cả trong cùng một doanh nghiệp. Rất nhiều nhà phát triển trong ngành đã dần nhận ra điều đó nhưng vẫn còn rất nhiều trong số đó hoài nghi và chưa dám công khai mã nguồn mở.​

Một điều chúng ta nên chú ý rằng, tại sao chúng ta lại cạnh tranh nhau trong lĩnh vực phát triển phần mềm trong khi đó là lĩnh vực nằm ngoài chuyên môn cốt lõi của ngành AEC, những thứ mà chúng ta chưa được trang bị nhiều về quy trình, văn hoá, cách làm việc và công nghệ. Điều này dẫn đến một hệ luỵ rất khó phát triển sau này. Một số công ty lớn về công nghệ họ cũng đã sớm nhận thức được tầm quan trọng của mã nguồn mở như Google, Facebook, Microsoft cho các mục đích thương mại của họ điển hình như Reactjs, Wpf, Tensorflow, Chromium,...

Bạn cũng có thể dễ dàng tham khảo qua danh sách mã nguồn mở đang có trong ngành AEC như OpenSourceAECList, điều này giúp bạn dễ dàng hình dung cụ thể tổng quan bối cảnh mã nguồn mở đang tổn tại trên thế giới đối với ngành AEC.

Và chính những điều vừa nêu bên trên đã làm cho chuyển đối số ngành AEC đang đổi mới với một tốc độ chậm chạp hơn bao giờ hết. Chúng đang rơi vào tay những nhà cung cấp phầm mềm phục vụ trong ngành với khả năng và kĩ thuật cốt lõi của họ.Chính vì vậy, mã nguồn mở đang tạo ra thách thức lớn giúp thay đổi góc nhìn, sự phát triển tiến bộ và cạnh tranh lành mạnh trong ngành.

Kết luận

Rõ ràng với các điểm mạnh của mã nguồn mở, sẽ là tương lai cho các nhà phát triển và nghiên cứu sau này. Khi một thứ gì đó được cộng đồng chung tay phát triển, giành thời gian cho nó thì bao giờ cũng mạnh mã hơn bất cứ những thứ do một nhóm nhỏ phát triển tạo ra.Dù tốt hay xấu thì chúng vẫn đang nắm giữ một phần rất quan trọng vào những dự án đang Close Souce ngoài kia. Bạn có đang thừa nhận rằng bạn có đang sử dụng một số nghiên cứu dự án open source cho dự án của mình ?

Đối với một doanh nghiệp có nguồn tài chính hạn hẹp, việc bắt đầu với mã nguồn mở là một sự lựa chọn khôn ngoan nếu bạn biết cách áp dụng và sử dụng chúng đúng mục đích.Việc này sẽ giúp bạn tiết kiệm rất nhiều chất xám và tiền bạn cho doanh nghiệp.

Bạn còn điều gì quan tâm đến Open Source và điều gì khiến bạn chưa mạnh dạng biến mã nguồn thành open sources? Hãy đặt câu hỏi bên dưới bài viết nhé.

Tham khảo