Children should be encouraged to adopt free software. Replacements like Minetest exist, and they also have a strong modding community. I'd recommend people instead invest their time creating excellent mods for Minetest and bring it up to par with the features of Minecraft. I will be introducing my son to Minetest soon (he's four) before he gets into Kindergarten and his peers start talking about Minecraft and pressure him into a world of proprietary software. I would rather him talk to his friends about Minetest and encourage them to play with him.
There are also many other projects that aim to teach children programming.
Proprietary software is incompatible with education. rms has talked at length about these issues; I encourage others to consider his perspective:
The that sentence should end before "but". Free software is _essential_, and any software that would deny those freedoms is, we believe, unethical.
You are operating under the premise that there is not enough free software out there to serve as a foundation, and that proprietary software is necessary for children to get "out there playing with technology". That is simply untrue. By accepting that and avoiding discussion of freedom, the problem perpetuates. People simply don't think about these issues---when I begin having discussions with my kids' school district about free software and education, do I expect that more than perhaps one or two people---if any---have even heard of free software or given thought to this? I do not.
Orthodoxy is one way to live life, but for a growing organism it might be more harmful than anything. I mean, at a young age, are they going to understand that they can't play with their friends because the software they're using is not available under a freedom-ensuring license? Or that they can't talk to them on propietary websites? Or are they, instead, going to rebel - and potentially develop a lifetime grudge against the whole idea of free software?
I buy music from artists that don't release the scores for their music free and without copyright. Yet nobody seems to have a problem with them. It's unfathomable to me where this righteous sense of entitlement comes from. But that's just me.
When you say "none of their business", I assume you're talking about meddling in the business of the developer(s). But when you write proprietary software, you aren't affecting yourself---you're affecting the _users_ of the software. The point of the free software movement is to protect the freedoms of the users of software, not the developers; the developers are the ones that take advantage of users. Perhaps not intentionally.
Free cultural works are a different issue entirely; that's not a useful comparison.
I encourage you to take a look at this essay:
I do accept that there is ask issue of protecting customer's and users rights, e.g such as the role for regulation in markets. I'm not a free market fundamentalist. Fitness for purpose, basic minimum quality requirements, etc are reasonable and fair constraints for society to impose to protect the rights of customers. But I don't accept that access to source code comes anywhere close to that level of significance to make it a right.
Regulations like that primarily exist to serve the needs of society. They are practical compromises, not fundamental. So for example there are minimum quality requirements for commodities traded on the commodities markets. But if I know a shipment of e.g. Heating oil is below market standard and that's fine by me, I can still buy it. It just can't be marketed to me as heating oil. The merchantability requirements aren't fundamental to whether it's ethical to sell the oil at all, only to whether it can be sold as heating oil.
So I believe it is with software. I don't think you can make source code availability a fundamental requirement, as you would expect for an ethical issue. It's nice to have, and you can make it a quality standard, but assigning it ethical status and implying that this makes it a fundamental issue of merchantability or fitness for purpose at all is going way too far.
As for cooperating with others, you can't force people to cooperate against their will, either vendors or customers. If you want to share your source code and cooperate with others nobody is stopping you.
Now, free software is more empowering than proprietary software. And kids need exposure to software they can tinker with. But if you meet a kid who is a little intimidated by the thought of learning coding, but loves playing Minecraft, then you're really going to tell them to stop playing Minecraft and use some weird GNU programs? Versus getting them going on Minecraft Portable Edition on a Raspberry Pi and working through some Python tutorials so that they can make something awesome?
That's making the perfect the enemy of the good. I'm all for software freedom, but you need to hook a fish before you can reel it in.
I'm not going to tell them to stop playing, no; that's not going to work.
What I am going to do in that situation is explain what free software is, its social benefits, and the problems with proprietary software. I'll introduce him/her to a free operating system like GNU/Linux and introduce him/her to the world of free software. Maybe hack a few programs, and show him/her how transparent the operating system is.
Hopefully then he/she will continue to explore that. If not, that's unfortunate, but hopefully it provides some benefit.
By allowing children to grow up without recognizing proprietary software, you are setting them up to be okay with a world where sharing is a privilage, companies and developers are in control of everything they do. Companies make effort to lock in children and get them dependent on their software---e.g. Windows providing their software gratis to educational institutions. Free software in this case serves a broader social cause.
You might argue that this is teaching them reality. Yes, that's a reality that others permitted to happen. The goal is to _change_ that.
Most of us will teach our children about free software while not demonizing proprietary software or its developers.
Now, I'm not sure what the right way of introducing a child to this concept is (I'm still a teenager, so I have no parenting experience). I believe that topics like this should become relevant when the child is much older, mainly because social interaction is much more important than ethics about software at a young age.
But I personally feel worried about the fact that many children are now growing up in an age when Google has always existed and they have Google accounts from a young age (it pangs of the children in 1984 that don't know a time before Ingsoc and that planes were not invented by the Party).
Using proprietary software is not giving away one's freedom, no matter what the free software prophets teach. When one joins the military one is signing away one's freedom (rightly or wrongly), because one cannot change one's mind after signing without being subject to penalty. When I use proprietary software I'm not shackled to it.
I wonder, when you eat at a restaurant do you demand to know the recipe? I can understand having a right to know the ingredients, because of health concerns, but do you insist that the chef publish his or her secret? If you eat a bite of that culinary delight, have you lost something?
The ethics questions become important when you consider the fact that most proprietary software developers do mistreat their users and the users are powerless to do anything about it
This is a ludicrous statement, unless you take the FSF's view that any distribution of any non-free software is in itself mistreating users. I'd ask for some kind of evidence for the claim that most software developers mistreat their users, but I know there exists no such evidence.
The restaurant/recipe example is a good one because health codes are important. Most people think it's important to have some rules and regulations in place to protect the consumer. But most people also think these have to be kept at a minimum, because overly strict rules and regulations take away people's freedom, in a real way. Any problems you think exist regarding software can be fixed in a much more judicious manner than a blunt and heavy-handed "MAKE IT ALL FREE!" declaration.
This is the sad irony of the FSF's position. They want to restrict freedom. They want to restrict my freedom to sell (or even give away!) closed-source software. They want to restrict my freedom to purchase (or even receive for free!) closed-source software. And in the name of the preservation of freedom! It's absurd!
I don't have the time right now to respond to much of the above, but I do want say that you are misrepresenting the FSF's stance.
"The issue here is not whether people should be able or allowed to install nonfree software; a general-purpose system enables and allows users to do whatever they wish. The issue is whether we guide users towards nonfree software. What they do on their own is their responsibility; what we do for them, and what we direct them towards, is ours. We must not direct the users towards proprietary software as if it were a solution, because proprietary software is the problem."
Yes you are, since they often have vendor lock-in with proprietary formats. Sure, those formats are eventually reverse engineered by free software developers, but why not just cut out the middle man and use free software in the first place? .doc and .docx were proprietary formats that were reverse engineered so that you can use LibreOffice to open them (even though you still can't do stuff like fill in .docx forms using LibreOffice). How do you not see that as "being shackled"? Active Directory was a huge vendor lock-in for Microsoft until Samba came along, and Microsoft would every release make their proprietary protocol different so that Samba wouldn't work. How is that not being shackled?
> > The ethics questions become important when you consider the fact that most proprietary software developers do mistreat their users and the users are powerless to do anything about it
> This is a ludicrous statement, unless you take the FSF's view that any distribution of any non-free software is in itself mistreating users. I'd ask for some kind of evidence for the claim that most software developers mistreat their users, but I know there exists no such evidence.
Considering how many universal backdoors have been found in countless proprietary software systems, I'm surprised that you can't remember a single example. Cisco has universal backdoors. Windows has universal backdoors. NetGear had some too IIRC. There are far too many to mention.
For example: every single WiFi router that is owned by your ISP that supports WPS has a "feature" that allows the cable company to dump the entire configuration remotely (this is how the Reaver attack against WPS access points works). If that isn't a backdoor, I don't know what is. And you can't change the PIN on most of these boxes because they are proprietary and there's no option added to the web UI.
Not to mention that very many pieces of proprietary software send analytics to the software developers (which is usually hard if not impossible to disable).
Mobile phones have secondary CPUs that allow the phones to listen in on conversations and many other nefarious mis-features.
I'm not sure if you're trolling that you haven't considered ANY of the above "features" as being examples of software developers mistreating their users.
> The restaurant/recipe example is a good one because health codes are important. Most people think it's important to have some rules and regulations in place to protect the consumer. But most people also think these have to be kept at a minimum, because overly strict rules and regulations take away people's freedom, in a real way. Any problems you think exist regarding software can be fixed in a much more judicious manner than a blunt and heavy-handed "MAKE IT ALL FREE!" declaration.
I don't understand why you're talking about regulation. Without free software, you have no way of verifying that the software is actually what the developers say it is. Why is regulation necessary if companies could just release their code (under the 4 freedoms) to anybody who they give their software to?
> They want to restrict freedom. They want to restrict my freedom to sell (or even give away!) closed-source software. They want to restrict my freedom to purchase (or even receive for free!) closed-source software.
In the same (although more extreme) vein, the US constitution "restricts your freedom to become a slave". You are misusing the word freedom. It has a very strict definition. And I think the FSF wants to replace proprietary software, not make it illegal. If nobody has to use proprietary software, then the companies that produce will either have to liberate it or die on their own.
That doesn't mean I'm opposed to kids learning something when playing games.
I'm proud that my kids play and learn from free games---an walk around the house repeating things from, say, gcompris. They're young (two and four), and I'll be challenging myself to keep up with their need for learning as they age and require more sophisticated games and learning tools.
When I went to school years ago they used to have us do computer assessments using custom built software that emulated excel, word etc. The result? All my class mates knew how to use this internal software that no company actually used. So they couldn't even say they knew how to use MS Office, and they really couldn't because the layout of the program was completely different.
You are mixing your OSS ideals with the reality of life. Your kids don't care that Minecraft is proprietary or not. Instead they care that they play the same games as their social circle, and can impress others by building things in those games.
Of course it is. The whole point of the free software movement is to demand freedom for all users. If you are implying it is not possible to go through life without using exclusively free software for your personal computing, then that's simply false---many, including myself, reject proprietary software entirely.
Using proprietary software on behalf of your employer is different. You're not being robbed of your freedoms because you're not doing your own computing---your employer is being robbed of those freedoms.
The argument that it's not possible to make money developing free software is an often used one and is simply false:
(I don't endorse a number of the methods on that page.)
No it isn't. It's to demand the work of others be free for consumption by anyone without compensation. Users have a choice - free software (there are very few categories of end-user tools that I can think of that aren't well served by open source these days), or commercial software.
If the free software movement cared about freedom they would recognize that preserving user choice is a more important and lofty goal than just saying free all the things.
A militant approach to demanding that everything be free is an entitlement that doesn't value the disproportionate investment of resources (time, money, energy, etc) that software developers invest in their work in contrast to the value that users extract from that expenditure.
Software developers should be free to release software for free if they choose to, and users should have the right to use software that has been released for free (for example, unencumbered by hardware manufacturer restrictions that exist strictly to prevent the end user installing chosen software), but demanding the work of others for free is nonsense.
It's to demand the work of others be free for consumption by anyone without compensation.
This is a monumental misunderstanding of what the FSF and the GPL stand for. (And they have only themselves to thank for muddying the word "free" but that's another rant).
Compensation is not something covered by Free Software.
That's kind of my point. Free software, per the FSF and the GPL requires that the users are free to use, study, copy, modify, and redistribute software. There is no provision there to allow for the authors to extract value from their own investment through distribution of the outputs.
If you can't extract value from the distribution of that software, then you are left with building value through the delivery of services, support, monetizing the data you can collect from users, or access to your user (so far the the most prominent open source business models).
I have no objection to open source software, and quite enjoy using and contributing on open source stuff (software , documentation, gaming content, etc), but make no mistake, the free software movement demands that the work of others be free for consumption without compensation.
You say this one paragraph after you listed a number of ways to get compensation. There are entire corporations, large ones, built around this model you claim doesn't exist. And then there's the fact that the overlap between people likely to buy your software, and people with the skill, time, and desire to build your software from source, is pretty small. A number of app store apps work on this model (off the top of my head, the Textual IRC client is one)
Yes, I know how open source models work to generate revenue and earn money. I was employed by Mozilla for almost 5 years, so I clearly understand how open source companies make money, and it's not by consumption of the software. What they aren't is compensation for consumption. Have you ever wondered why there hasn't been a blockbuster, AAA open source game despite the fact that many other sectors are dominated by open source?
It probably has a great deal to do with the fact that entertainment is largely based on deriving value directly from the consumption. There are still ancillary revenue sources (merchandising, movie deals, etc) that can generate alternate revenue streams, but the bottom line, without generating compensation directly from consumption, not from alternate revenue streams, making a game would not be profitable.
entertainment is largely based on deriving value directly from the consumption
This sounds like a failure of business model rather than an intractable problem. Okay, a hypothetical:
Pretend for a moment that you write an open source game, distributing the source on Github or similar, but you also sell a complete packaged copy for real money on places like Steam and GOG. Do you think that the presence of the source-based copy will impact one iota the sales on the storefronts?
Before answering, consider that it takes less skill and less sophistication to download from a torrent site and apply a crack than it does to set up a build environment.
I don't think it does. And I think this is a normative assumption (can't sell open source!) about the industry that's been accepted without any real supporting facts.
Not really, the business model is highly successful, even in the face of rampant piracy. The free software movement might consider it a failing of the business model, but unwinding that would mean applying the free ideology to all aspects of copyright and trademark, and not just the free software movement.
Moving past that, your hypothetical has some deeply flawed considerations.
First, you cite an open source game, not a free game. It is easy to sell open source software that is not free, and this is a well established fact (look at the id Software comments below). Also consider Oracle, which sells a large number of open source products, as does Google, and to a lesser extent Microsoft. Their open source offerings are offered under free licenses, but are backed and protected by extensive IP, including trademarks and patents, which essentially makes the products non-free.
Second, setting up a build environment and building the software is more technically challenging than pirating a copy, however, much like pirating a copy, that technical cost only needs to be paid by a single user who is motivated to share the software. I submit the entire history of the software protection mechanism / cracking scene arms race as evidence that such a cost will readily be paid.
Third, shifting the discussion back to free software, the sale of open source software is usually predicated on a license that prevents other sellers of the same software from competing on the consumption of that software - whether it is a trademark, or proprietary bits that are compiled, or hardware that requires that packages be digitally signed, or any other number of constraints. This even applies to GPL software - the original owner of the GPL content can sell a copy of the code under a different license, however anyone who forks or extends the GPL licensed code is obligated to propagate that license forward, which severely hinders a competitors ability to sell the software.
For software to meet the constraints of being free according to the FSF/GPL, these restrictions cannot substantially exist as the licenses provided allow a user to remove the technical constraints, or replace the trademarked content. It is certainly possible to release the software for free and retain control of the trademarked/copyrighted elements (for example, Quake 3, Doom 3, etc).
Do note that the companies that have released their game engines as free software have typically done so as a marketing move to allow developers and engineers to learn from their code / build on their code, and still offer commercial licenses - again, ancillary to the core release of the game. These releases rarely coincide with the release of the game since, again, the primary gain is capturing revenue from the initial consumption of novel content. I am not arguing that Free Software is bad, I am simply saying that the expectation that all software must be free is an untenable position given the cost (and associated risk) of developing some classes of software.
That's a feature, not a bug :)
But I'm getting a bit confused, here. We're talking about feasibility of license selection, right? If you use some third party proprietary blob like, say, the Unity engine for your game, why is it against license to still release your code for the game under a Free license (as the author, that's the limit of what you can do anyways), and just make the enduser aware that they'll need the same tools to actually make use of it? At the end of the day, you've released your code and given a third party all they need to build on it.
I'm trying to think of the worst case scenario for the exception you described. Let's say.. a Unity game (proprietary blob) running under iOS (requires codesigning) with someone else's IP (copyrighted assets licensed by a third party)
I still don't see what would prevent this game from being released under a free license (if not the GPL) in this scenario. The first two problems don't preclude releasing your code, and the last is solved by either getting permission from the rightsholder, or by including standin assets to replace the copyrighted ones (ala many a Quake/Doom mod back in the day).
Also, as I understand it, the GPL is not the only Free license. A compatible license is one that respects the 4.5 freedoms, and this would include the BSD/MITs of the world which are used, in part, because some developers don't like the must-propagate provisions of the GPL.
the primary gain is capturing revenue from the initial consumption of novel content.
Releasing the code does not prevent this in any meaningful way for one, and for two, even if it did, piracy would be a much bigger issue.
> No it isn't. It's to demand the work of others be free for consumption by anyone without compensation. Users have a choice - free software (there are very few categories of end-user tools that I can think of that aren't well served by open source these days), or commercial software.
SUSE, RedHat and numerous other companies make plenty of money selling free software (and selling support for it). This is is "commercial free software". You don't seem to understand what "free software" refers to. It does not refer to price. It refers to freedom.
> If the free software movement cared about freedom they would recognize that preserving user choice is a more important and lofty goal than just saying free all the things.
You are redefining the word freedom. Freedom refers to control over your own life. You don't have such control when using proprietary software. The only way to have such control is the 4 fundamental freedoms. Any other definition is just muddying the waters.
> A militant approach to demanding that everything be free is an entitlement that doesn't value the disproportionate investment of resources (time, money, energy, etc) that software developers invest in their work in contrast to the value that users extract from that expenditure.
Given that Linux and GNU exist, and are being sold and have funding from large companies, I call bullshit. Just because some companies have decided to sell proprietary software doesn't mean that suddenly it isn't possible to sell free software.
> Software developers should be free to release software for free if they choose to, and users should have the right to use software that has been released for free (for example, unencumbered by hardware manufacturer restrictions that exist strictly to prevent the end user installing chosen software), but demanding the work of others for free is nonsense.
Again, you're not understanding what free software is. It is software which respects your freedom. It does not have to be gratis (without price) in order to respect your freedom.
I learned to program on "proprietary" software(quake, half-life) among other things while I was growing up and it didn't hamper my ability to be an effective software developer.
Not saying that the item in question is itself comparable to this, just there's lots of different ways to get by in the world…
I understand how the game industry operates today; an ex-co-worker of mine used to work as a manager in the field.
Seriously, there's enough barriers to being successful in gamedev as it is, I don't see any reason to add another one on top of that.
Yes, this is the long-standing problem with software freedom in general; not specific to game publishers. And I don't expect that to change any time soon; I'm hopeful for the indie developers.
But a recognized problem in our community is the inability to compete with games with multi-million dollar budgets; it's simply not possible at this point.
Like I said, you don't really have a good grasp of the industry. 9/10 indies don't make it, and none of them make it to the level of Notch. I'm talking about people who know what they're doing, burned all their savings from BigCo so they could work for ~1.5 years and still didn't make it.
Open source software is so at the bottom end of the scale, and you already have a bunch of frameworks out there if you want to know how the nuts & bolts work.
You're missing the point. Your opinion doesn't matter. They are playing it. Write a better game that's open source or whatever turns you on, and then, when millions of kids are playing it, use it to teach them.
And I struggle with this. Ultimately, I do not force my philosophy on others. I will do my best to raise my kids to value their freedoms, but I'm not going to go out of my way to prohibit them from playing those games, because that would be detrimental to their social development.
But those social pressures are a huge perpetrator of proprietary software. They need to be addressed, but forcing a single member of the social circle to invoke those beliefs is not an effective strategy.
I have long made the point that some have priorities that are higher than software freedom. The happiness and social well being (to a degree that I find reasonable, as any parent must balance) is higher on that list for me, because the well being of my sons are more important to me than my ideals. My wife uses proprietary software. I'm the sole earner right now in my household; we share money. She uses that money to buy proprietary software/devices. I'm not going to prohibit her from doing that, because that would be forcing my ideals.
But when it comes to me, I would sooner sacrifice my social well-being than use proprietary software.
Well that's just silly.
The rest of us will fork out the small price to use the software.
Its fairly bare metal. Its not like you're running "mine.tunnel" and it does all the work for you, you have to program every little detail of movement or activity. Its not like LUA or LUA inspired, it is LUA so you get functions and real control flow.
I find it mildly amusing to program for my mining turtle to dig a large transport tunnel for me and line it with torch on the wall every X blocks and double tracked rails along the bottom and collect the goodies for me. This is not exactly the pinnacle of software development, but it is fun, which is all that counts.
Its also fun to emulate quarries and deep mining operations with programmed turtles. They come in handy for weird automations also.
My son watched the now ancient direwolf20 youtube mod spotlight on computercraft but had no motivation to run it himself. He's more an arduino kid, which is OK I guess.
(just to save time, insert here "LUA is not a real programming language", and insert here "I don't care its more of a programming language than watching youtube unboxing videos")
Computercraft is not unique, its just the oldest and most widespread of its genre. Personally I'd like a LISP in minecraft. Hoist out the guts of computercraft and toss in a nice jvm lisp like clojure ... in my infinite spare time... Assuming someone else hasn't already...
Minetest might be cooler sooner than you think. Its hard to speak for the community, but most see it as only a matter of time before MS kills minecraft modding a monetization scheme or abandonment of the java platform or who knows, at which point the mod authors and players will be salivating for something like minetest. The problem with minetest is nobody mods it so you can't program a turtle in LUA on minetest, only minecraft.
> What's in a name?
> "Lua" (pronounced LOO-ah) means "Moon" in Portuguese. As such, it is neither an acronym nor an abbreviation, but a noun. More specifically, "Lua" is a name, the name of the Earth's moon and the name of the language. Like most names, it should be written in lower case with an initial capital, that is, "Lua". Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right!
Minetest has quite a lot of mods, admittedly - I even made a few. The problem with Minetest is that it has too many modders and not enough players. The problem with Minetest is that the voxel engine zone itself is fragmented: Minetest itself has three different maintained versions, and there's other clones like Terasology as well. The problem with Minetest is that the APIs are and will probably remain too limited for the most complex things, seeing as it's not the kind of modding where you turn the engine inside out for fun and it happens to work with most mods for some reason - and, even then, there's far too few developers on Minetest's core engine and far too many opened/unmaintained pull requests.
I've been spending the past couple of years writing an operating system to run in a computer inside a game I play on my computer … I need a life:-)
Here's a "graphics turtle": http://www.stuffaboutcode.com/2014/07/minecraft-fractal-tree...
Here's Rust and LLVM in Minecraft command blocks: https://www.reddit.com/r/Minecraft/comments/37dkg4/sbbm_scri...
Here's someone hacking gnuplots into Minecraft worlds: https://metaphysicaldeveloper.wordpress.com/2011/07/31/hacki...
See previous discussion here : https://news.ycombinator.com/item?id=10974036
They used to say that they were in the process of making an API, but I think they stopped with that.
That's an astonishingly sweeping statement. I learned to programme over 30 years ago using the proprietary ZX-Spectrum basic. In what way was I not educated?
Meanwhile my kids taught themselves all about the creation of logic gates using redstone dust and pressure switches in Minecraft to control their roller-coaster layouts.
I learned to program on a proprietary operating system with a proprietary language---Visual Basic---when I was ten years old. And I was taught that sharing was bad. I distributed some code to others, but when I wrote some actually useful software, it was proprietary, and nobody saw the source code.
I didn't know about free software until after I started using GNU/Linux; I noticed that a game's "binary" (Frozen Bubble) was the source code---a python script. It amazed me, and I didn't entirely understand why. But I loved that I could hack it and make changes to it.
I've lived on both ends.
Yet, it's frankly not for everyone and the tendency is to diminish the value of other fields (especially if they are completely non-STEM). Worse, this is primarily driven by an economic rationale. Not only do we encourage a monolithic culture that overvalues tech; I also think the assessment of opportunities for pogrammers in the future is overblown. The tech itself will see to this.
Programming shouldn't be just for programmers, just like writing isn't just for writers.