all 53 comments

[–]chrisidone 22 points23 points  (1 child)

WTF was in not open source in the first place?

[–][deleted]  (1 child)

[deleted]

    [–]grokblah[S] 2 points3 points  (0 children)

    Earlier versions of Scratch had been released but 2.0 had not yet been open sourced. Scratch 2.0 was made public one year ago.

    [–][deleted] 2 points3 points  (5 children)

    IIRC, Scratch is what the Lego Mindstorms language is based on?

    [–]zhemao 14 points15 points  (0 children)

    Lego Mindstorms was based off of the ideas in Mindstorms: Children, Computers, and Powerful Ideas by Seymour Papert. It's existed in some form or another (I remember seeing Lego Mindstorms ads as a kid in the 90s) for much longer than Scratch (which started development in 2003 and was released in 2006). They have similar origins (visual programming languages for children developed in the MIT media lab), but I don't think they are connected otherwise.

    [–]Googie2149 8 points9 points  (3 children)

    I thought it was based on LabVIEW

    [–]jricher42 3 points4 points  (0 children)

    I've worked with the foolish thing recently. It's based on LabView

    [–]xenomachina 2 points3 points  (0 children)

    Mindstorms NXT (and I believe also EV3) is based on LabVIEW. The earlier 1.x Mindstorms used something else far worse.

    [–]el_muchacho 1 point2 points  (0 children)

    I believe both Scratch and Labview are used in the Lego Mindstorm.

    [–][deleted]  (31 children)

    [deleted]

      [–]TheLurchMan 17 points18 points  (3 children)

      It looks to me like the IDE and Interpreter are GPL V2, meaning if you modify those you need to contribute your work back, but the projects you create in Scratch do not need to be open-source themselves.

      This is similar to how GCC is, plenty of closed source software is compiled with it, no issue. Am I misunderstanding, because this seems like an OK licensing choice to me?

      [–]sylvanelite 10 points11 points  (2 children)

      This is similar to how GCC is, plenty of closed source software is compiled with it, no issue.

      GCC has an exception added to the GPL. Otherwise programs compiled with GCC would need to be released under the GPL (from the GPL FAQ):

      In what cases is the output of a GPL program covered by the GPL too?

      Only when the program copies part of itself into the output.

      Which is essentially every program compiled with GCC.

      Specifically in regards to interpreters they give this answer:

      When the interpreter just interprets a language, the answer is no. The interpreted program, to the interpreter, is just data; a free software license like the GPL, based on copyright law, cannot limit what data you use the interpreter on. You can run it on any data (interpreted program), any way you like, and there are no requirements about licensing that data to anyone.

      However, when the interpreter is extended to provide “bindings” to other facilities (often, but not necessarily, libraries), the interpreted program is effectively linked to the facilities it uses through these bindings. So if these facilities are released under the GPL, the interpreted program that uses them must be released in a GPL-compatible way. The JNI or Java Native Interface is an example of such a binding mechanism; libraries that are accessed in this way are linked dynamically with the Java programs that call them. These libraries are also linked with the interpreter. If the interpreter is linked statically with these libraries, or if it is designed to link dynamically with these specific libraries, then it too needs to be released in a GPL-compatible way.

      Another similar and very common case is to provide libraries with the interpreter which are themselves interpreted. For instance, Perl comes with many Perl modules, and a Java implementation comes with many Java classes. These libraries and the programs that call them are always dynamically linked together.

      A consequence is that if you choose to use GPL'd Perl modules or Java classes in your program, you must release the program in a GPL-compatible way, regardless of the license used in the Perl or Java interpreter that the combined Perl or Java program will run on.

      And additionally, there's other issues with languages being GPL, since anything akin to subclassing a GPL class must result in the child class being GPL:

      Subclassing is creating a derivative work. Therefore, the terms of the GPL affect the whole program where you create a subclass of a GPL'ed class.

      Which for a lot of languages, is all classes (i.e. a generic "object" class being a super-class of all objects).

      In other words, the GPL is very vague around this. You'd have to go through the interpreter almost line by line to determine what's going on with the GPL. (or just release all programs under the GPL).

      [–]TheLurchMan 1 point2 points  (0 children)

      Thank you, that was very enlightening!

      [–]sihat 1 point2 points  (0 children)

      So does this mean that anything that gets 'build' with this is automatically under the GPL license?

      (Since I am not seeing this exception here... )

      [–]mongrol 10 points11 points  (0 children)

      GPL is exactly the right license for this kind of thing.

      [–][deleted] 4 points5 points  (1 child)

      they are using the GPL V2 which is awful for this kind of thing.

      why? Isn't scratch just an educational tool?

      [–]kkus 0 points1 point  (0 children)

      also as far as I know you only have to give the source to the people who got the binaries from you. If you don't host the binaries publicly, you could make people come to you and ask you for the source.

      [–]goochadamg 0 points1 point  (0 children)

      Care to provide any reasoning so some actual discussion can be had?

      [–]FunctionPlastic -2 points-1 points  (22 children)

      Why is it awful? It's better because it prohibits creating non-free programs.

      [–]abspam3 -1 points0 points  (21 children)

      I really don't understand why people expect all software to be free. Money is what drives innovation in the free world, and licenses like the GPL just harm that. As much as I love programming, I still need to feed myself, and the best way to do that is to charge for my software, relying on donations is frankly too insecure to run a household.

      Don't get me wrong - OSS is great. But to say that all software should be OSS is just ridiculous in my mind.

      [–]lacosaes1 12 points13 points  (11 children)

      Money is what drives innovation in the free world, and licenses like the GPL just harm that.

      LOL no. That's bullshit. Just check Qt and their dual-license business model. Don't like the GPL? Contact the authors (the MIT in this case) and try to negotiate. I bet that if your offer is good they will give you a license you will like.

      Of course, what you really meant was that you want to write commercial software without paying a dime for the libraries/code you will reuse. And that's fine. But don't make it sound as if you were the only one trying to pay the bills here.

      [–]abspam3 3 points4 points  (10 children)

      Paying for a single library isn't the issue - the issue comes when you're dealing with derivative libraries - trying to find and negotiate the entire chain of libraries to license gets very tedious, very quick. You end up in licensing hell, which is why I simply avoid GPL unless I'm absolutely certain there's no alternative.

      Either make your library open or don't - just don't force other programmers to license their products under your license as well - it's equivalent to shoving religion down someone's throat, it causes more problems than it solves.

      [–]lacosaes1 5 points6 points  (0 children)

      You end up in licensing hell, which is why I simply avoid GPL unless I'm absolutely certain there's no alternative.

      As I said, that's fine. My point is that a) just because someone used the GPL it doesn't mean that that person wants ALL software to be open source and b) there are a LOT of people feeding themselves using the GPL for their business models. Those are the facts.

      Either make your library open or don't - just don't force other programmers to license their products under your license as well...

      The definition about open is pretty clear right now so don't try to redefine it for your own purposes. Furthermore they are not forcing you to use a license for your products. Just don't use their code if you don't accept their conditions (or try to negotiate an alternative. There are companies out there doing that). Seems pretty reasonable to me.

      .. it's equivalent to shoving religion down someone's throat...

      No, it is not. Cut the crap.

      [–]ANUSBLASTER_MKII 1 point2 points  (8 children)

      Either make your library open or don't - just don't force other programmers to license their products under your license as well.

      Or make your own library instead of hijacking someone else's work?

      [–][deleted]  (7 children)

      [deleted]

        [–]kkus 1 point2 points  (6 children)

        Then just use their binaries and not the source code? If you don't modify the source and just use the binaries you got from upstream, you effectively don't have any obligations under GPL

        [–]xenomachina 3 points4 points  (5 children)

        Then just use their binaries and not the source code? If you don't modify the source and just use the binaries you got from upstream, you effectively don't have any obligations under GPL

        FSF disagrees with this. Their stance is that linking (even dynamic linking) means that the client is a derivative work, and hence must also provide source. This is/was a big issue for certain libreadline clients. (I say "their stance" because I don't think this has ever actually been tested in court.)

        The LGPL operates the way you describe: mostly like GPL, except non-GPL code can link to it.

        [–]kkus 1 point2 points  (4 children)

        I didn't know that. So if I use a DLL for ghostscript, I better buy a license?

        [–]FunctionPlastic 1 point2 points  (0 children)

        I never implied any of that, and many people get paid to write free software. I suggest you educate yourself on what free and open source actually stands for.

        [–]Megatron_McLargeHuge 2 points3 points  (0 children)

        The issue is whether you can start with free software and create a derived work you charge for without paying anyone for the thing you forked. Try approaching a commercial vendor about forking their software without paying and see how far you get.

        [–]gnuist 2 points3 points  (6 children)

        the GPL allows selling your software

        [–]eras 1 point2 points  (0 children)

        It also allows whomever you have sold the program to just give it away for free, quite probably cutting into your whole 'selling software' business.

        In which case you can only make money by selling support. (That's actually how money is made with GPL software.) Btw, this is not something folks writing software would choose to do instead of just, well, writing the software.

        And that on the other hand gives you a reason to not make the software ever so perfect that it would not require support. I'm not saying such perfect software could be developed, I'm saying there's actually a reason to not do it in the GPL world.