Khi chúng ta nói về mã lập trình chúng tôi đề cập đến ngôn ngữ mà máy vi tính, bao gồm một tập hợp các hướng dẫn và dữ liệu được xử lý tự động.
Các Mã máy tính nó có thể là mã nhị phân (chỉ máy tính có thể hiểu được), mã nguồn (con người có thể hiểu được), và về khía cạnh pháp lý hoặc chính trị, nó có thể là phần mềm miễn phí, mã nguồn mở, phần mềm miễn phí, phần mềm chia sẻ hoặc phần mềm độc quyền / truyền thống.
Các phần mềm miễn phí hoặc Phần mềm miễn phí có một định nghĩa rõ ràng về vấn đề này, theo Tổ chức Phần mềm Tự do, nó là một định nghĩa có thể được sử dụng cho bất kỳ mục đích nào, được nghiên cứu (biết nó làm gì), được sao chép và cải tiến. Có rất nhiều giấy phép phần mềm miễn phí, GNU GPL là tài liệu tham khảo cho tất cả, nhưng chúng ta cũng có thể đề cập đến giấy phép MIT, BSD, Mozilla, Apache hoặc Creative Commons.
Các phần mềm mã nguồn mở (mã nguồn mở) về cơ bản giống như phần mềm miễn phí, ngoại trừ việc bạn không được phép trộn phần mềm độc quyền với phần mềm miễn phí. Ngoài ra còn có phần mềm mã nguồn mở không thể được sử dụng cho bất kỳ mục đích nào, vì vậy nó sẽ không miễn phí.
Các phần mềm miễn phí ít liên quan đến phần mềm miễn phí, vì thứ miễn phí duy nhất là bản phân phối của nó: nói chung nó không thể được sửa đổi, nghiên cứu hoặc thương mại hóa, nên hiển nhiên là nó không có mã nguồn (không có "công thức của Chương trình").
Phần mềm chia sẻ tương tự như phần mềm miễn phí nhưng có thêm một hạn chế: thời gian sử dụng. Các chương trình này thường bị vô hiệu hóa trong vài ngày, chúng là phiên bản demo / nhẹ của các chương trình độc quyền hoàn chỉnh.
Các phần mềm độc quyền truyền thống (theo phong cách các cửa sổ) không cho phép sử dụng nó cho bất kỳ mục đích nào, không cho phép nghiên cứu nó (ngoại trừ bằng cách trả tiền may mắn cho người tạo ra nó), không cho phép sao chép miễn phí hoặc cải tiến của nó bởi bất kỳ ai: nó là tổng số nghịch đảo của phần mềm miễn phí, tại vì các cửa sổ và GNU / Linux họ phải đối đầu với nhau.