5 ms·
It has an absolutely myopic and absurd license. http://www.shenlanguage.org/license.html The strange part is "no derivatives that don't comply with the spec
by fdr 14y ago
It has an absolutely myopic and absurd license.
http://www.shenlanguage.org/license.html
The strange part is "no derivatives that don't comply with the spec, even if you rename it." It is not free software.
Unfortunately this is something I have to mention every time Shen is mentioned, because I'm irate that, in spite of my interest in it, that both it (and its predecessor Qi) insist on doing something so strange with no apparent legitimate purpose (some kind of bogeyman of fragmentation killing the project).
- JoelMcCracken 14y agoShen seems pretty cool, but there are lots of other things out there that are also cool. When licensing is such a big deal, I think its bizarre license is reason to steer away from Shen. It not being "free software" is pretty debatable imo. Maybe not free with a capitol f, but free enough as an academic language.
- kd0amg 14y agofree enough as an academic language Constructing derivatives of other languages is a pretty common thing for PL academics to do.
- mjn 14y agoFor better or worse, it's not that uncommon for licenses to complicate it. To take one prominent example, Microsoft Research's Z3 is completely proprietary: source-code is available but you cannot make any derivative works of it (except in-house without distribution). The famous Q array-processing language is also completely proprietary. Less restrictively, it's common for things to be released under an "academic use only" or "noncommercial use only" license.
- kd0amg 14y agoAnd the papers I've read about array languages don't base their languages on Q. I haven't done much reading on theorem provers, but I suspect I'll see a lot more papers about things derived from ACL2 or Coq than from Z3.
- binarycrusader 14y agoWhile I'm sure they had good intentions, that's an absolutely toxic language that's wide open to interpretation. I would advise anyone to stay far, far away from that sort of licensing. It seems impossible to combine most software components with it if you were trying to build something on top of Shen (as an example).
- krichman 14y agoI came here to point this out as well. It just does not make any sense whatsoever to have this license if you are trying to make an open-source project. I get that the idea is to prevent fragmentation, but it is enough to require they don't use the name. The actual license basically excludes anyone who wants to experiment with it. It's not free.
- grannyg00se 14y agoThey have developed it and don't want it fragmented. Not out of fear of loosing the project, but because they consider rampant forking to be one of the main weaknesses of open source and Linux in particular[1]. Why is it strange to want to avoid dilution and confusion of your product? People can use it, modify it for improved performance, add libraries to it, include graphics and other files as necessary, and even charge money for what they've done with it. Pretty much the only thing you can't do with it is modify it significantly and re-release it as your own personal brand of Shen (whether renamed, or not). It looks like a lot of work went into it, and they're basically gifting it to the community to use and profit from. A more open license would be great, sure. But they have a legitimate position here, and they make a reasonable point. It may be myopic in some people's opinion, that's a matter of debate, but I don't see how it can be considered to be absurd. [1] "Hence the production of derivative non-conforming programs from our source, whether called Shen, Shin, Shine or Shoo, is barred by the license. To give up on this is to give up on the motivation for Shen. We are therefore not open source. Generally, the diversity and freedom to fork which was lauded as a strength of open source, has turned into the major weakness of Linux. This OS has been burdened by multiple forks, multiple distros, multiple apps for doing the same thing to the point where essentially the same work has been redone over and over again by different groups. The resultant wastage of effort has been huge and the result has been lack of cross platform usability, a lack of uniformity in the user interface, a reliance on complex dependencies and too often, software that reflects the scattering of human resources by displaying broken functionality. Even Linux fans are seeing this. This in turn has given Linux a bad name. We want to avoid all that."
- ninjin 14y agoTo start with a quote: > "Why are you guys so fork paranoid? Do you want everyone to vote for the same political party, too?" -- Theo de Raadt A witty saying proves nothing, but it might be a good starting point for a discussion. To me, it isn't strange that an author wants to avoid dilution and confusion of their work, we all feel this way at one point or another when producing software. But, when I pick a community and a language to express myself, I consider several potential future issues. Such as, will this language be around in five years? Will I be able to port it to a platform that few people find to be important/interesting enough? Will I be allowed to experiment with the fundamentals? Will I be allowed to disagree with the original author on how things are done? With a license like this, worries starts to pop up into my head. Since to me software isn't handed down from above, it is an ecosystem of which I am an active a part of. If the authors don't trust someone else to do what they do better, or different for another purpose. Why should I trust them?
- hermanhermitage 14y agoWhat is free software? LGPL? BSD? To me free software either has no price or has no licensing restrictions at all. What is free software?
- mapleoin 14y agohttp://www.gnu.org/philosophy/free-sw.html http://www.gnu.org/philosophy/free-sw.html
- hermanhermitage 14y agoOne persons belief. Life isnt a dictatorship. Do not be fooled by cargo cults and monocultures. When the word "free" is hijacked for political agenda we slip a little closer to the Orwellian dystopia.
- taotree 14y agoI think the license is worded rather poorly and that's unfortunate. I think it would be better worded as this: if you create a port/version/mod of Shen, it must be able to execute spec-compliant Shen code. That's it. You can do all the changes, experimentation, etc. so long as it is somehow capable of executing stock Shen code, it's allowed. I think that means that you can even have a flag that toggles between "standard-compliant" and "everything-works-different" because anyone with Shen code can set the flag to "standard-compliant" and run their code. So that situation would be fully compliant with that license.
- kd0amg 14y agoI think it would be better worded as this: if you create a port/version/mod of Shen, it must be able to execute spec-compliant Shen code. Who decides whether a language I come up with is a port/version/mod of Shen? How much of Shen's features can I include without crossing that threshold? Does that threshold move if I can point to other non-Shen languages as the source of those ideas?
- hackerjim 14y agoAFAIK the guy who built it has written a book to appear this month and that's supposed to fix the standard. There's some stuff here http://www.shenlanguage.org/Documentation/shendoc.htm http://www.shenlanguage.org/Documentation/shendoc.htm
- taotree 14y agoThe license is for the software--the Shen implementation. If you don't use the Shen implementation provided, then you're not subject to the license. If you create a port/version/mod of Shen then you are using the software. The way ports of Shen are created is by implementing Klambda. The provided Shen implementation compiles Shen to Klambda, which your port then compiles to a host language. So, unless you really want to clean-room reimplement the entire Shen language (which is NOT how porting is intended to be done) then you're using the software that is subject to the license.
- prodigal_erik 14y ago
- markokocic 14y agoI'm glad that license is the only complaint software enthusiasts have against Shen. Not all languages have to have the same license. It's open source, since the source is available, and it's free, since you don't have to pay to use it. If you mean that it's not "free" by FSF definition, then just say "it's not Free (tm) FSF(c)".
- fdr 14y agoVery few people have invested enough in Shen to bother finding such pointed complaints. If the implementation is not supported and pushed by something the size and vertically integrated nature of Microsoft or Apple, a cathedral enforced by the license is a huge deterrent for a lot of people. Not all language implementations have to be open source, and conversely, I don't have to invest my infrastructure in all language implementations, especially ones that choose to hobble their fitness in the form of a dubious and paranoid license, which I think is chosen based on reasoning that may have only been defensible (not even 'good') in 1985 or 1990. The comparison to "Linux" (by which they mean, distributions, I presume, instead of the kernel, which is definitely a monolithic development effort) is as laughable as worrying about "what if thirty people write TLS libraries in Shen!?" The problem ostensibly addressed by the license is not solved, and so it is nothing more than an albatross. It's a pity, because the ideas in Shen deserve a better chance than that.
- hackerjim 14y agoI was trying to find an argument in your post and gave up trying. Is there one? The sum of your argument seems to be that the license is a huge deterrent for people who think like you. I believe you - and? The license makes the work $free and the only requirement is that if anybody changes it, that it continue to work. Otherwise I can do as I want. Perfectly fair. Also they seem pretty successful in building a whole series of portable cross-platform versions which compared to the crud I've seen under Linux is a very good start. "It's a pity, because the ideas in Shen deserve a better chance than that." I think Shen deserves a better analysis than yours.
- 14y ago
- snogglethorpe 14y agoSupposedly the bizarro license is due to fear of forking and divergence, but ironically, it's just as likely to have the opposite effect: If it's a great language, but the current implementation is toxic (as it seems to be), you'll get people writing their own implementations of it, which will inevitably differ, and the lack of a common base will make divergence even more likely. With forks, at least you usually have the option of porting changes between the forks with a smallish amount of effort; with separate implementations, this sort of thing becomes much harder.