Bạn có nhận thấy rằng mã nguồn
cho tất cả các thư viện mà
chúng tôi đã thảo luận là công khai có sẵn cho công chúng?
Phần mềm có sẵn công khai thường được biết đến
như là phần mềm mã nguồn mở, hay OSS.
Cụ thể, phần mềm mã nguồn mở là phần mềm
mà người tạo ra phát hành mã nguồn
theo giấy phép mã nguồn mở,
qua đó cấp cho bất cứ ai quyền truy cập
, sửa đổi và phân phối phần mềm.
Sáng kiến mã nguồn mở,
OSI định nghĩa phần mềm mã nguồn mở
là phần mềm có thể được truy cập,
sử dụng, thay đổi, và chia sẻ một cách tự do
dưới dạng sửa đổi hoặc chưa sửa đổi bởi bất cứ ai.
Bạn có thể tìm thấy các tiêu chí đầy đủ cho
phần mềm mã nguồn mở trên trang web của OSI.
Ba quy định đầu tiên là cốt lõi của OSS.
Đó là, rằng phần mềm có sẵn mà không tính phí,
mã nguồn là công khai và có thể truy cập,
và rằng giấy phép này bất kể nó là gì,
sẽ được tuân thủ bởi tất cả các tác phẩm phái sinh.
Phát triển mã nguồn mở được
nhà khoa học máy tính Eric Raymond tiên phong trong
bài luận mang tính bước ngoặt năm 1997 của ông,
“The Cathedral and the Bazaar”.
Nó cũng được coi là một kỹ thuật phát triển phần mềm,
vì nó làm giảm chi phí tiêu dùng
và tăng tính linh hoạt của mã
, bảo mật và trách nhiệm giải trình
do bản chất nguồn cộng đồng của nó,
và có ý nghĩa kinh doanh tốt để
sử dụng công cụ phần mềm mã nguồn mở.
Theo một nghiên cứu năm 2008,
OSS tiết kiệm được 60 tỷ đô la hàng năm,
và phần mềm mã nguồn mở cho phép các công ty xây dựng
trên đầu trang của nó giảm chi phí cơ sở hạ tầng.
Có nhiều loại giấy phép mã nguồn mở khác nhau.
Lĩnh vực này có thể hơi khó
hiểu để hiểu đặc biệt đối với các doanh nghiệp.
Ví dụ: Giấy phép Apache cho phép liên kết
mã giấy phép Apache với mã giấy phép khác nhau.
Là một nhà phát triển, bạn có thể thấy
một tính năng giấy phép hữu ích như vậy nếu bạn muốn bao gồm
một thư viện mã nguồn đóng hoặc thư
viện độc quyền trong dự án mã nguồn mở của bạn.
Mặt khác, theo Giấy phép Công cộng GNU,
hay GPL, người ta chỉ có thể liên kết các thư viện tương thích GPL khác.
Bạn có thể tìm thấy tính năng giấy phép này mong muốn nếu
dự án mã nguồn mở
của bạn bao gồm mã nguồn mở hoàn toàn,
và bạn muốn đảm bảo rằng điều này luôn luôn xảy ra,
bất kể ai trong tương lai sử dụng mã của bạn.
GPL có lẽ là
giấy phép phần mềm mã nguồn mở nổi tiếng nhất và có lẽ phổ biến nhất,
và một phần do bản chất virus của nó,
đòi hỏi tất cả các liên kết
đến phần mềm cũng được GPL cấp phép.
Một trong những giấy phép yêu thích của tôi để
sử dụng và một giấy phép tôi thích xem
sử dụng và thư viện mà tôi sử dụng được gọi là giấy phép BSD.
Ban đầu nó được đặt lại với nhau bởi
Đại học California,
Berkeley để phát hành hệ điều hành BSD.
Dưới đây là một ví dụ về giấy phép BSD.
Như chúng ta có thể thấy, nó rất ngắn và đến mức,
duy trì chỉ là một số lượng tối thiểu của legalese.
Các vấn đề xung quanh các tính năng của
giấy phép tự do và mã nguồn mở nhanh chóng
trở nên chính trị và triết học.
Việc lựa chọn giấy phép thường
phụ thuộc vào dự án mà bạn có trong tâm trí.
Nếu bạn quan tâm đến việc hiểu các
giấy phép mã nguồn mở chi tiết hơn,
tôi sẽ khuyến khích bạn kiểm tra
bài viết Wikipedia về chủ đề này,
và chúng tôi sẽ liên kết điều đó trong khóa học.
Đối với phần còn lại của bài giảng trong mô-đun này,
chúng tôi sẽ sử dụng hai dự án dự án tesseract,
mà bây giờ được điều hành bởi Google và các ràng buộc Pytesseract,
cho phép chúng tôi sử dụng
hệ thống tesseract từ bên trong Python.
Nếu chúng ta nhìn vào kho lưu trữ mã nguồn cho tesseract,
chúng ta thấy rằng giấy phép của nó được
phát hành theo Giấy phép Apache.
Điều này có nghĩa là chúng tôi có thể sử dụng tesseract trong bất kỳ mã nào
chúng tôi sản xuất và giữ cho nó được cấp phép, tuy nhiên,
chúng tôi muốn, thậm chí được cấp phép thương mại
ví dụ trừ khi chúng tôi thay đổi tesseract chính nó.
Tuy nhiên, khi chúng ta nhìn vào giấy phép Pytesseract,
chúng ta thấy nó được phát hành theo GPL.
Điều đó có nghĩa là bằng cách nhập thư viện này vào mã của riêng bạn.
Nếu chúng tôi chia sẻ nó với những người khác,
chúng tôi cũng phải cấp phép mã của chúng tôi theo GPL.
Đây là mệnh đề virus,
và tùy thuộc vào dự án tôi đang làm việc,
tôi sẽ phải xem xét điều này rất cẩn thận.
Tuy nhiên, đối với khóa học này đó là không có vấn đề vì
tôi thực sự muốn chia sẻ nó với bạn và những người khác rộng rãi.
Vì vậy, chúng ta hãy đào sâu vào,
và chúng ta hãy bắt đầu sử dụng tesseract.