July 01, 2013
On Sun, 30 Jun 2013 22:02:11 -0400, Jonathan M Davis <jmdavisProg@gmx.com> wrote:

> On Sunday, June 30, 2013 21:54:08 Steven Schveighoffer wrote:
>> On Sun, 30 Jun 2013 21:43:53 -0400, Jonathan M Davis <jmdavisProg@gmx.com>
>>
>> wrote:
>> > But I think that they key issue with swapping out
>> > the implementation is not whether you can swap out the implementation
>> > for your
>> > whole program but rather being able to choose different  
>> implementations
>> > for
>> > different parts of your program.
>>
>> This would never happen.  AAs are only ever going to be one
>> implementation.  If you want to use another map type, you will have to use
>> a struct/class.  I suppose AA's could simply be polymorphic, but I don't
>> see the benefit.
>
> I know. My point was that that's an inherent problem with built-in AAs that
> can't be overcome (regardless of how well they're implemented). If you want
> that level of control, you _have_ to use a library solution.

OK. I guess I was just reading your statement like it was a "problem" :)

-Steve
July 01, 2013
On Sunday, June 30, 2013 22:45:04 Steven Schveighoffer wrote:
> On Sun, 30 Jun 2013 22:02:11 -0400, Jonathan M Davis <jmdavisProg@gmx.com>
> > I know. My point was that that's an inherent problem with built-in AAs
> > that
> > can't be overcome (regardless of how well they're implemented). If you
> > want
> > that level of control, you _have_ to use a library solution.
> 
> OK. I guess I was just reading your statement like it was a "problem" :)

Well, it is in the sense that it _is_ a deficiency of built-in AAs for those who want to be able to use different implementations for different use cases, but it's not something that can actually be fixed, and having to use a library solution isn't exactly all that bad anyway, especially when most languages don't have AAs built-in in the first place. It's just a convenience feature.

- Jonathan M Davis
July 01, 2013
> Well, it is in the sense that it _is_ a deficiency of built-in AAs for those
> who want to be able to use different implementations for different use cases,
> but it's not something that can actually be fixed, and having to use a library
> solution isn't exactly all that bad anyway, especially when most languages
> don't have AAs built-in in the first place. It's just a convenience feature.
>
> - Jonathan M Davis

Thanks for the dicussion! I thankfully haven't run into problems with needed highly optimized assiociative arrays, but it's good to know what the limitations are and why.
July 01, 2013
On Sunday, 30 June 2013 at 19:45:06 UTC, Joakim wrote:
> OK, glad to hear that you wouldn't be against it.  You'd be surprised how many who use permissive licenses still go nuts when you propose to do exactly what the license allows, ie close up parts of the source.

Because people don't just care about the strict legal constraints, but also about the social compact around software.

Often people choose permissive licenses because they want to ensure other free software authors can use their software without encountering the licensing incompatibilities that can result from the various forms of copyleft.  Closing up their software is rightly seen as an abuse of their goodwill.

In other cases there may be a broad community consensus that builds up around a piece of software, that this work should be shared and contributed to as a common good (e.g. X.org).  Attempts to close it up violate those social norms and are rightly seen as an attack on that community and the valuable commons they have cultivated.

Community anger against legal but antisocial behaviour is hardly limited to software, and is a fairly important mechanism for ensuring that people behave well towards one another.

> Since you have been so gracious to use such permissive licenses for almost all of D, I'm sure someone will try the closed/paid experiment someday and see if which of us is right. :)

Good luck with that :-)

By the way, you mentioned a project of your own where you employed the short-term open core model you describe.  Want to tell us more about that?  Regardless of differences of opinion, it's always good to hear about someone's particular experience with a project.
July 01, 2013
On Monday, 1 July 2013 at 10:15:34 UTC, Joseph Rushton Wakeling wrote:
> On Sunday, 30 June 2013 at 19:45:06 UTC, Joakim wrote:
>> OK, glad to hear that you wouldn't be against it.  You'd be surprised how many who use permissive licenses still go nuts when you propose to do exactly what the license allows, ie close up parts of the source.
>
> Because people don't just care about the strict legal constraints, but also about the social compact around software.
>
> Often people choose permissive licenses because they want to ensure other free software authors can use their software without encountering the licensing incompatibilities that can result from the various forms of copyleft.  Closing up their software is rightly seen as an abuse of their goodwill.
Then they should choose a mixed license like the Mozilla Public License or CDDL, which keeps OSS files open while allowing linking with closed source files within the same application.  If they instead chose a license that allows closing all source, one can only assume they're okay with it.  In any case, I could care less if they're okay with it or not, I was just surprised that they chose the BSD license and then were mad when someone was thinking about closing it up.

> In other cases there may be a broad community consensus that builds up around a piece of software, that this work should be shared and contributed to as a common good (e.g. X.org).  Attempts to close it up violate those social norms and are rightly seen as an attack on that community and the valuable commons they have cultivated.
There's no doubt that even if they chose a permissive license like the MIT or BSD license, these communities work primarily with OSS code and tend to prefer that code be open.  I can understand if they then tend to rebuff attempts to keep source from them, purely as a social phenomenon, however irrational it may be.  That's why I asked Walter if he had a similar opinion, but he didn't care.

I still think it's ridiculous to put your code under an extremely permissive license and then get mad when people take you up on it, particularly since they never publicly broadcast that they want everything to be open.  It is only after you talk to them that you realize that the BSD gang are often as much freetards as the GPL gang, just in their own special way. ;)

> Community anger against legal but antisocial behaviour is hardly limited to software, and is a fairly important mechanism for ensuring that people behave well towards one another.
I wouldn't call closing source that they legally allowed to be closed antisocial.  I'd call their contradictory, angry response to what their license permits antisocial. :)

>> Since you have been so gracious to use such permissive licenses for almost all of D, I'm sure someone will try the closed/paid experiment someday and see if which of us is right. :)
>
> Good luck with that :-)
>
> By the way, you mentioned a project of your own where you employed the short-term open core model you describe.  Want to tell us more about that?  Regardless of differences of opinion, it's always good to hear about someone's particular experience with a project.
I wrote up an article a couple years back talking about the new hybrid model I used, it's up on Phoronix and my project is mentioned there:

http://www.phoronix.com/scan.php?page=article&item=sprewell_licensing

Note that this article was written when Android had less than 10% of the almost billion users it has today, by using a similar hybrid model, and I was thinking up these ideas years before, long before I'd heard of Android.

My project was a small one, so it couldn't be a resounding proof of my time-limited version of the hybrid model, but it worked for its purpose and I'm fairly certain it will be the dominant model someday. :)
July 01, 2013
On 7/1/2013 10:45 AM, Joakim wrote:
> Then they should choose a mixed license like the Mozilla Public License or CDDL,
> which keeps OSS files open while allowing linking with closed source files
> within the same application.  If they instead chose a license that allows
> closing all source, one can only assume they're okay with it.  In any case, I
> could care less if they're okay with it or not, I was just surprised that they
> chose the BSD license and then were mad when someone was thinking about closing
> it up.

I should point out that the Boost license was chosen for Phobos specifically because it allowed people to copy it and use it for whatever purpose, including making closed source versions, adapting them for use with Go :-), whatever.

It would be pretty silly of us to complain about that after the fact.

People who don't want closed source versions should use GPL licenses.
July 01, 2013
On 7/1/13 11:42 AM, Walter Bright wrote:
> On 7/1/2013 10:45 AM, Joakim wrote:
>> Then they should choose a mixed license like the Mozilla Public License or CDDL,
>> which keeps OSS files open while allowing linking with closed source files
>> within the same application.  If they instead chose a license that allows
>> closing all source, one can only assume they're okay with it.  In any case, I
>> could care less if they're okay with it or not, I was just surprised that they
>> chose the BSD license and then were mad when someone was thinking about closing
>> it up.
>
> I should point out that the Boost license was chosen for Phobos specifically because it allowed
> people to copy it and use it for whatever purpose, including making closed source versions, adapting
> them for use with Go :-), whatever.

Actually, Boost was specifically chosen because it didn't require attribution when redistributing. If BSD hadn't had that clause we probably would be using it instead.
July 01, 2013
On 7/1/2013 2:04 PM, Brad Roberts wrote:
> On 7/1/13 11:42 AM, Walter Bright wrote:
>> On 7/1/2013 10:45 AM, Joakim wrote:
>>> Then they should choose a mixed license like the Mozilla Public License or CDDL,
>>> which keeps OSS files open while allowing linking with closed source files
>>> within the same application.  If they instead chose a license that allows
>>> closing all source, one can only assume they're okay with it.  In any case, I
>>> could care less if they're okay with it or not, I was just surprised that they
>>> chose the BSD license and then were mad when someone was thinking about closing
>>> it up.
>>
>> I should point out that the Boost license was chosen for Phobos specifically
>> because it allowed
>> people to copy it and use it for whatever purpose, including making closed
>> source versions, adapting
>> them for use with Go :-), whatever.
>
> Actually, Boost was specifically chosen because it didn't require attribution
> when redistributing. If BSD hadn't had that clause we probably would be using it
> instead.

That was indeed another important reason for it. But we were well aware of and approved of the idea that people could take it and make closed source versions.
July 01, 2013
On Monday, 1 July 2013 at 17:45:59 UTC, Joakim wrote:
> I wouldn't call closing source that they legally allowed to be closed antisocial.  I'd call their contradictory, angry response to what their license permits antisocial. :)

Just because you're doing something legal doesn't mean you're not being antisocial.

It's a pretty psychopathic attitude to conflate legality and morality, it's effectively saying "I have the moral right to do whatever I can get away with"
July 01, 2013
On 7/1/2013 2:29 PM, John Colvin wrote:
> On Monday, 1 July 2013 at 17:45:59 UTC, Joakim wrote:
>> I wouldn't call closing source that they legally allowed to be closed
>> antisocial.  I'd call their contradictory, angry response to what their
>> license permits antisocial. :)
>
> Just because you're doing something legal doesn't mean you're not being antisocial.
>
> It's a pretty psychopathic attitude to conflate legality and morality, it's
> effectively saying "I have the moral right to do whatever I can get away with"

(A nit: it is not illegal to break a contract's terms. You're quite right, though, that morality and legality are very different things, and are too often in contradiction.)

Anyhow, the reason we have written contracts is because people often (and honestly) misremember or misinterpret verbally agreed upon terms. Having a written record is a lot better when the two parties find themselves in a dispute.

There are many licenses to choose from, and we chose Boost knowing full well what was said (and not said) in it about closed source usage.