Với ngôn ngữ lập trình bậc cao, chương trình được viết dưới dạng văn bản gần với ngôn ngữ tự nhiên. Văn bản này gọi là mã nguồn. Để máy tính có thể chạy được trực tiếp, chương trình được dịch thành dãy lệnh máy gọi là mã máy. Mã máy rất khó đọc hiểu nên việc dịch sang mã máy còn giúp bảo vệ chống đánh cắp ý tưởng hay sửa đổi phần mềm. Phần mềm chuyển giao dưới dạng mã máy thường được gọi là phần mềm nguồn đóng.
Vào những năm 1970, trong một số trường đại học ở Mỹ đã xuất hiện việc chia sẻ mã nguồn để cùng phát triển phần mềm, dẫn tới sự ra đời của phần mềm nguồn mở - một xu hướng có ảnh hưởng lớn tới sự phát triển của công nghệ phần mềm sau này.Theo em, lợi ích đối với cộng đồng trong việc chia sẻ mã nguồn là gì?