Almost everything you will use as a programmer was given away by somebody. Python itself is free to download, read, and modify, and so are most of the tools built on top of it. That is not an accident of history; it is a choice thousands of people keep making, and it is worth understanding before you make your own.

Start with the surprising default: code with no licence is not free to use. If you publish a program and say nothing, copyright law says nobody else may copy or build on it. Giving work away takes an explicit act — a short file that says what other people may do.

ChoiceWhat it says to the next person
No licence stated”You may look. You may not legally reuse.”
A permissive licence”Do what you like, keep my name on it.”
A share-alike licence”Do what you like, but pass on the same freedom.”
Closed and private”This is not yours to have.”

None of those is the virtuous one. A permissive licence lets a company build on your work and sell it without giving anything back — freedom some people love and others consider the whole problem. A share-alike licence protects the commons and puts off anyone who cannot accept its terms. Both are honest positions held by serious people.1

Questions worth arguing about:

  1. You spend three weeks on something genuinely useful. Give it away, or keep it? What would change your answer — money, credit, the thought of somebody improving it without telling you?
  2. Is taking a freely licensed program, changing two lines, and giving nothing back unfair, or exactly the point?
  3. Credit is not the same as licensing. Where does copying a classmate’s approach sit? A tutorial’s? An AI assistant’s? Which of those needs a licence, which needs a comment, and which needs both?
  4. Your community app holds somebody else’s information — a coach’s roster, a librarian’s list. What may you publish, and who decides? Is “it is my code” a sufficient answer?
  5. Open source runs on unpaid maintenance. Is that generosity, or a system quietly depending on people it does not pay?

For this course, three rules that are not up for debate. Name your sources in a comment, the way Writing Code Others Can Read shows. Never publish a client’s real data — the program, not the people, is what you share. And ask your client before putting their name anywhere public, which Interviewing Your Client treats as part of the craft, not paperwork.

Footnotes

  1. The two families are usually called permissive and copyleft. You do not need to memorise licence names in this course, but you do need to know that choosing one is a decision with consequences, and that “no licence” is itself a decision. ↩