[email protected] wrote:
Teaching coding doesn't involve explaining licences: that is something that
should be instilled by practice and leading the kids to use solutions that
have the appropriate licence.
I disagree; licensing power and responsible use of that power is very much
something that must be explicitly taught, not assumed to be picked up by
practice or dismissed as an insignificant detail. Licensing power is as
much a part of the real world as is code. Therefore to give a practical
education, teachers must explain how a user's software freedoms are
retained with copyleft licenses and lost with non-copyleft licenses, else
one is teaching the "open source" way which (purposefully[1]) does not
identify copyleft licenses (except perhaps pejoratively) because that
movement has no interest in software freedom and that movement is merely a
means for proprietors to leverage programmers' talents toward
proprietarization (what I believe Brad Kuhn rightly compared to
greenwashing[2] -- organizations that try to dress up anti-environmental
behavior with environmentally-sensitive propaganda -- and called
"openwashing").
Once they grasp the basics through Scratch, many kids prefer to move to web
development. This requires a text editor that preferably supports
colour-coding: Notepad++ (GPL) is a very popular product for this.
Notepad++ is not as good choice of program to teach software freedom
because Notepad++ depends on nonfree software[3], namely Microsoft Windows.
GNU Emacs is considerably more capable and can be run on an entirely free
system.
Beyond this, the kids try all kinds of stuff, including Mobile using
Cordova (ASL) and native, Java, Python, C/C++, etc. running on every
imaginable platform.
One should not treat every "platform" the same way as if there's no reason
to favor one over another, or to let perceived popularity determine a
choice of operating system. No phone is free and most phones have their
users pick software from walled gardens known as "app stores" in which
censorship and anti-software freedom abound. Good teaching requires careful
selection, and one should choose a free software system on which nothing
but free software is installed.
This is not a matter of learning "every imaginable platform" which no
programmer will ever do anyhow. Programmers pick up what they need to know
as they go. Good teachers know that students need to know how to learn what
they need as they go and students require good incentives to make sound
choices. Ignoring or dismissing ethical, social, and political differences
teaches students that these concerns are not important, that all they need
concern themselves with are the technical issues in programming. That
approach is a recipe for making a naive person who is wholly unprepared to
deal with the real world and ready to be exploited by some proprietor.
Of course there are many who want to write iPhone apps and there's no
way to avoid proprietary stuff there - while it's great to promote OSS,
we have to be realistic and focus on the goal at hand which is to get
kids to code.
The effort should aim not to "get kids to code" but to teach the human
rights users of the software ought to have. This includes freedom and
cooperation, values nonfree software simply do not proffer and the open
source movement doesn't value outside of benefiting would-be proprietors.
As https://www.gnu.org/education/edu-why.html rightly points out, "Schools
should teach their students to be citizens of a strong, capable,
independent and free society.". Proprietors and their sycophants know how
much influence schools can have on society. That's why they give such steep
discounts to schools; give them the trap early and they'll learn to think
that the trap is the right and proper way to do computing. Proprietors want
to set the bounds of allowable debate while the students are unlikely to
question what trap is being set before them. They're teaching dependence
and either ignoring or denigrating human rights. We must not do the same
nor should we think the goals are the same.
The goal should not be to "promote OSS" by which I take it you mean "open
source software". That movement stands against software freedom and while
its advocates do work with software freedom activists to make great
software we have the right to run, share, and modify, the open source
movement's values were designed to never discuss software freedom
(ostensibly, in an attempt to better speak to businesses, but I think that
was merely a ploy to convince naive developers a myth that businesses
somehow can't be spoken to straightforwardly about the terms of accepting
free software).
[1] Older essay: https://www.gnu.org/philosophy/free-software-for-freedom.html
Newer essay:
http://www.gnu.org/philosophy/open-source-misses-the-point.html
[2]
http://mirror.linux.org.au/pub/linux.conf.au/2015/Case_Room_2/Thursday/Considering_the_Future_of_Copyleft_How_Will_The_Next_Generation_Perceive_GPL.webm
[3] https://www.gnu.org/philosophy/java-trap.html -- Notepad++ has the same
problem as that described in this essay: free software with nonfree
dependencies.