www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Mass-enabling D => License question

reply Andre <andre s-e-a-p.de> writes:
Hi,

I like D due to its clear syntax and power. For a business application 
developer what is really missing is a full blown IDE which enables
Rapid Application Development.
=> GUI
=> Database
=> Internet components
=> Refactoring
=> ... and a lot things more

If I compare the time I need to develop a D application and a delphi
application there are several weeks between unfortunatelly
(my experience).

I wonder whether it is possible from a license point of view to
develop an IDE for D and sell it? Of course there are license issues
due to fact that D must be integrated in the package but someone would
only pay for the IDE.
On the other side, a good IDE will mass enabled D for business 
application developer.

If someone will create an IDE for D like Borland has done for Delphi
this would lead to an huge success for D in my opinion.

What do you think? Would you appreciate such an IDE?

Kind regards
André
May 20 2014
next sibling parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Tuesday, 20 May 2014 at 20:44:57 UTC, Andre wrote:
 Hi,

 I like D due to its clear syntax and power. For a business 
 application developer what is really missing is a full blown 
 IDE which enables
 Rapid Application Development.
 => GUI
 => Database
 => Internet components
 => Refactoring
 => ... and a lot things more

 If I compare the time I need to develop a D application and a 
 delphi
 application there are several weeks between unfortunatelly
 (my experience).

 I wonder whether it is possible from a license point of view to
 develop an IDE for D and sell it? Of course there are license 
 issues
 due to fact that D must be integrated in the package but 
 someone would
 only pay for the IDE.
 On the other side, a good IDE will mass enabled D for business 
 application developer.

 If someone will create an IDE for D like Borland has done for 
 Delphi
 this would lead to an huge success for D in my opinion.

 What do you think? Would you appreciate such an IDE?

 Kind regards
 André

What licensing problems do you foresee? Bear in the mind that although the dmd backend has a restrictive licence that prohibits redistribution without permission, permission to redistribute is normally easy to get from Walter. Alternatively, if the clients computer does the download of dmd from dlang.org as part of the IDE installer then you circumvent the problem entirely. To the best of my (limited) knowledge, the open source licenses used in all 3 main compilers do not prohibit redistribution and/or selling for profit.
May 20 2014
next sibling parent Jacob Carlborg <doob me.com> writes:
On 21/05/14 02:16, Max Barraclough wrote:
 The DMD frontend is licensed under the GPL, which is 'viral': if
 your code links against it, you'll have to release your code as
 GPL.

There's no need to link with DMD.
 Strictly, John is right in that the GPL doesn't prevent you from
 charging for your code, but seeing as that code will be GPL'ed,
 anyone who buys it will then be free to share it publicly free of
 charge. (You're also required to provide source.)

 John's idea of having the user provide DMD, rather than bundling
 it, may or may not be against the letter of the GPL (I'm unsure,
 but I don't think it's exactly safe ground - your code is still
 written to the DMD ABI, after all), but it's certainly against
 the spirit.

It's not against the GPL license [1]. Many companies do this, Apple for example. They've created Xcode which comes (did come) bundled with GCC. Xcode is absolutely not open source. It doesn't need to because it doesn't link with GCC. It uses invokes GCC as an external process to build projects. The code produce by GPL compiler does not fall under the GPL license [2], if that were the case GCC would be useless for many users and companies. [1] https://www.gnu.org/licenses/gpl-faq.html#GPLCompatInstaller [2] https://www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForNF -- /Jacob Carlborg
May 20 2014
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
On 21/05/14 09:50, Joakim wrote:

 Yes, but they moved to the UIUC-licensed (basically the BSD
 license) llvm eventually, partially because they wanted Xcode to
 directly link against it.  I think it's that kind of integration
 that Andre and Max have in mind, though as John noted, they're
 not particularly precise about what they want.

That's a completely different thing. I would like to see someone try doing that with DMD ;). I assume they didn't want to do that since that feels quite unrealistic at this stage, DMD is not really meant for this type of integration. -- /Jacob Carlborg
May 21 2014
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
On 21/05/14 11:59, Max Barraclough wrote:

 I assumed we were talking about using the frontend as a means to enable
 syntax-highlighting and such, rather than simple invocation of the DMD
 compiler, which of course wouldn't be a problem.

I assumed we weren't, since it's not really made for that. It would take a lot of work to make DMD useable as a library.
 XCode uses its own C/C++/Objective-C/Objective-C++ parser then, I take it?

Yes, now days it uses libclang. It still compiles the code by invoking the compiler in an external process. Which could be GCC or Clang. -- /Jacob Carlborg
May 21 2014
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 21/05/14 12:02, John Colvin wrote:

 Also, note that linking to GPL licenced shared libraries/dlls/dylibs or
 whatever you use doesn't necessarily mean the GPL has got you wrapped in
 it's rather fuzzy web.  AKAIK it's a matter of debate and has never been
 tested in court

As far as I know, if you link dynamically with a GPL library you're library/application need to be GPL as well. That's why LGPL exists, where it's allowed.
 , but it's enough for many current creators/distributors
 of closed source software for linux who call various GPL system libs via
 the shared library interfaces.

GPL (and LGPL) has a exception for linking with system libraries. -- /Jacob Carlborg
May 21 2014
prev sibling next sibling parent "Max Barraclough" <. .> writes:
The DMD frontend is licensed under the GPL, which is 'viral': if
your code links against it, you'll have to release your code as
GPL.

Strictly, John is right in that the GPL doesn't prevent you from
charging for your code, but seeing as that code will be GPL'ed,
anyone who buys it will then be free to share it publicly free of
charge. (You're also required to provide source.)

John's idea of having the user provide DMD, rather than bundling
it, may or may not be against the letter of the GPL (I'm unsure,
but I don't think it's exactly safe ground - your code is still
written to the DMD ABI, after all), but it's certainly against
the spirit.

Here is the official GPL FAQ:
https://www.gnu.org/licenses/gpl-faq.html

If I were you, I'd be asking: are there working D frontends
available other than DMD (from other IDE/compiler/tooling
projects)? If so, what's their licence? (I'm afraid I don't know
the answer to either.)

Usual disclaimer: I'm not a lawyer, certainly not a copyright
lawyer, certainly not your lawyer, etc.
May 20 2014
prev sibling next sibling parent "ed" <gmail gmail.com> writes:
On Wednesday, 21 May 2014 at 00:16:07 UTC, Max Barraclough wrote:
 The DMD frontend is licensed under the GPL, which is 'viral': if
 your code links against it, you'll have to release your code as
 GPL.

 Strictly, John is right in that the GPL doesn't prevent you from
 charging for your code, but seeing as that code will be GPL'ed,
 anyone who buys it will then be free to share it publicly free 
 of
 charge. (You're also required to provide source.)

 John's idea of having the user provide DMD, rather than bundling
 it, may or may not be against the letter of the GPL (I'm unsure,
 but I don't think it's exactly safe ground - your code is still
 written to the DMD ABI, after all), but it's certainly against
 the spirit.

 Here is the official GPL FAQ:
 https://www.gnu.org/licenses/gpl-faq.html

 If I were you, I'd be asking: are there working D frontends
 available other than DMD (from other IDE/compiler/tooling
 projects)? If so, what's their licence? (I'm afraid I don't know
 the answer to either.)

 Usual disclaimer: I'm not a lawyer, certainly not a copyright
 lawyer, certainly not your lawyer, etc.

Yet more GPL bashing? This is getting very boring these days. A GPL'd toolchain should not be a blocker for a commercial IDE. I have such an IDE compiling my C++ code as I am typing this out. GPL is not perfect but it's currently a good middle ground license that allows developers to release code open source but protect their rights to earn a living from it. Or put it another way, if you want to make money from source code that cost the original author a lot of time and effort, then the original author deserves the right to *choose* GPL and receive something in return. Either way the original author chose Open Source and that is what's important. GPL does not hinder open source development, nor the use of open source software in a commercial setting. Cheers, ed
May 20 2014
prev sibling next sibling parent "Joakim" <dlang joakim.airpost.net> writes:
On Wednesday, 21 May 2014 at 00:16:07 UTC, Max Barraclough wrote:
 The DMD frontend is licensed under the GPL, which is 'viral': if
 your code links against it, you'll have to release your code as
 GPL.

Artistic license: https://github.com/D-Programming-Language/dmd/blob/master/src/readme.txt While both are badly-written licenses that have generated a lot of debate about what they really mean because of vague terminology, the bane of legal documents, the Artistic license appears to allow redistribution in binary form without providing source: https://github.com/D-Programming-Language/dmd/blob/master/src/artistic.txt
 John's idea of having the user provide DMD, rather than bundling
 it, may or may not be against the letter of the GPL (I'm unsure,
 but I don't think it's exactly safe ground - your code is still
 written to the DMD ABI, after all), but it's certainly against
 the spirit.

having the user download and run it standalone, which the GPL doesn't prohibit. And if you use the frontend under the Artistic license, there's no problem with modifying or linking it either.
 If I were you, I'd be asking: are there working D frontends
 available other than DMD (from other IDE/compiler/tooling
 projects)? If so, what's their licence? (I'm afraid I don't know
 the answer to either.)

frontend, though probably under different licenses, chosen from the two that dmd offers. There is also sdc, under the MIT license, though I don't know how ready it is: https://github.com/deadalnix/SDC
 Usual disclaimer: I'm not a lawyer, certainly not a copyright
 lawyer, certainly not your lawyer, etc.

On Wednesday, 21 May 2014 at 06:40:44 UTC, Jacob Carlborg wrote:
 It's not against the GPL license [1]. Many companies do this, 
 Apple for example. They've created Xcode which comes (did come) 
 bundled with GCC. Xcode is absolutely not open source. It 
 doesn't need to because it doesn't link with GCC. It uses 
 invokes GCC as an external process to build projects.

license) llvm eventually, partially because they wanted Xcode to directly link against it. I think it's that kind of integration that Andre and Max have in mind, though as John noted, they're not particularly precise about what they want.
May 21 2014
prev sibling next sibling parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Wednesday, 21 May 2014 at 07:50:33 UTC, Joakim wrote:
 I don't think John was talking about linking against dmd, merely
 having the user download and run it standalone, which the GPL
 doesn't prohibit.

You can modify a GPL'ed compiler to work as a stand alone server with shared memory interface. You are allowed to distribute it as a binary with other kinds of software. You don't have to make source available unless the receiver of the binary explicitly requests it, and only for the GPL'ed server. GPL is based on copyright law (WIPO) in order to work under different jurisdictions, so it is fairly permissive.
May 21 2014
prev sibling next sibling parent "andre " <andre s-e-a-p.de > writes:
On Wednesday, 21 May 2014 at 09:25:56 UTC, Jacob Carlborg wrote:
 On 21/05/14 09:50, Joakim wrote:

 Yes, but they moved to the UIUC-licensed (basically the BSD
 license) llvm eventually, partially because they wanted Xcode 
 to
 directly link against it.  I think it's that kind of 
 integration
 that Andre and Max have in mind, though as John noted, they're
 not particularly precise about what they want.

That's a completely different thing. I would like to see someone try doing that with DMD ;). I assume they didn't want to do that since that feels quite unrealistic at this stage, DMD is not really meant for this type of integration.

The delphi ide is able to create components which coding runs during design time in the ide. My idea for s.th. Like that is to compile d code to dll and during runtime load it into the ide. But as far as I understand this could also be made as external toolchain call to DMD which is also allowed with the license. Kind regards andre
May 21 2014
prev sibling next sibling parent "Max Barraclough" <. .> writes:
On Wednesday, 21 May 2014 at 01:53:57 UTC, ed wrote:
 Yet more GPL bashing? This is getting very boring these days.

No, I'm not *bashing*. Were I the owner of DMD, the restrictions facilitated by the GPL are exactly what I'd want. I think we're agreed here really, ed. On Wednesday, 21 May 2014 at 06:40:44 UTC, Jacob Carlborg wrote:
 There's no need to link with DMD.

I assumed we were talking about using the frontend as a means to enable syntax-highlighting and such, rather than simple invocation of the DMD compiler, which of course wouldn't be a problem.
 It doesn't need to because it doesn't link with GCC. It uses 
 invokes GCC as an external process to

XCode uses its own C/C++/Objective-C/Objective-C++ parser then, I take it? On Wednesday, 21 May 2014 at 07:50:33 UTC, Joakim wrote:
 Not true, the DMD frontend is dual-licensed, both GPL and the

You're right. Looking at Point 7, the Artistic Licence might allow integration of the front-end into a commercial IDE, for, say, syntax highlighting. https://github.com/D-Programming-Language/dmd/blob/master/src/artistic.txt
 I'd hope not. ;)

Other than the Artistic Licence dual-licensing, what did I get wrong?
May 21 2014
prev sibling next sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Tuesday, 20 May 2014 at 22:50:45 UTC, John Colvin wrote:
 On Tuesday, 20 May 2014 at 20:44:57 UTC, Andre wrote:
 Hi,

 I like D due to its clear syntax and power. For a business 
 application developer what is really missing is a full blown 
 IDE which enables
 Rapid Application Development.
 => GUI
 => Database
 => Internet components
 => Refactoring
 => ... and a lot things more

 If I compare the time I need to develop a D application and a 
 delphi
 application there are several weeks between unfortunatelly
 (my experience).

 I wonder whether it is possible from a license point of view to
 develop an IDE for D and sell it? Of course there are license 
 issues
 due to fact that D must be integrated in the package but 
 someone would
 only pay for the IDE.
 On the other side, a good IDE will mass enabled D for business 
 application developer.

 If someone will create an IDE for D like Borland has done for 
 Delphi
 this would lead to an huge success for D in my opinion.

 What do you think? Would you appreciate such an IDE?

 Kind regards
 André

What licensing problems do you foresee? Bear in the mind that although the dmd backend has a restrictive licence that prohibits redistribution without permission, permission to redistribute is normally easy to get from Walter. Alternatively, if the clients computer does the download of dmd from dlang.org as part of the IDE installer then you circumvent the problem entirely. To the best of my (limited) knowledge, the open source licenses used in all 3 main compilers do not prohibit redistribution and/or selling for profit.

Also, note that linking to GPL licenced shared libraries/dlls/dylibs or whatever you use doesn't necessarily mean the GPL has got you wrapped in it's rather fuzzy web. AKAIK it's a matter of debate and has never been tested in court, but it's enough for many current creators/distributors of closed source software for linux who call various GPL system libs via the shared library interfaces. Also - and this is the biggest thing that people fail to realise in all software license debates - it is a practical impossibility to create a software license that is well defined and valid in all jurisdictions. For a global enterprise, almost *everything* is legally fuzzy.
May 21 2014
prev sibling next sibling parent "Joakim" <dlang joakim.airpost.net> writes:
On Wednesday, 21 May 2014 at 09:17:34 UTC, Ola Fosheim Grøstad 
wrote:
 You can modify a GPL'ed compiler to work as a stand alone 
 server with shared memory interface. You are allowed to 
 distribute it as a binary with other kinds of software. You 
 don't have to make source available unless the receiver of the 
 binary explicitly requests it, and only for the GPL'ed server.

the GPL to find out, but sure, it's all a matter of how tightly you link against GPL code. On Wednesday, 21 May 2014 at 09:25:56 UTC, Jacob Carlborg wrote:
 On 21/05/14 09:50, Joakim wrote:

 Yes, but they moved to the UIUC-licensed (basically the BSD
 license) llvm eventually, partially because they wanted Xcode 
 to
 directly link against it.  I think it's that kind of 
 integration
 that Andre and Max have in mind, though as John noted, they're
 not particularly precise about what they want.

That's a completely different thing. I would like to see someone try doing that with DMD ;). I assume they didn't want to do that since that feels quite unrealistic at this stage, DMD is not really meant for this type of integration.

On Wednesday, 21 May 2014 at 09:59:54 UTC, Max Barraclough wrote:
 On Wednesday, 21 May 2014 at 07:50:33 UTC, Joakim wrote:
 I'd hope not. ;)

Other than the Artistic Licence dual-licensing, what did I get wrong?

the wink? :) On Wednesday, 21 May 2014 at 10:02:31 UTC, John Colvin wrote:
 Also, note that linking to GPL licenced shared 
 libraries/dlls/dylibs or whatever you use doesn't necessarily 
 mean the GPL has got you wrapped in it's rather fuzzy web.  
 AKAIK it's a matter of debate and has never been tested in 
 court, but it's enough for many current creators/distributors 
 of closed source software for linux who call various GPL system 
 libs via the shared library interfaces.

claimed that Google's use of Java APIs in Android infringed on Oracle's "copyright" on them: https://www.eff.org/deeplinks/2014/05/dangerous-ruling-oracle-v-google-federal-circuit-reverses-sensible-lower-court
 Also - and this is the biggest thing that people fail to 
 realise in all software license debates - it is a practical 
 impossibility to create a software license that is well defined 
 and valid in all jurisdictions. For a global enterprise, almost 
 *everything* is legally fuzzy.

make it difficult for more ambitious licenses like the GPL to be written, as opposed to simpler licenses like BSD, but it is also true that many of those OSS licenses are badly written even for the one jurisdiction they were written in. The Artistic license has taken a lot of flak for this over the years, same with parts of the GPL.
May 21 2014
prev sibling next sibling parent "Max Barraclough" <. .> writes:
On Wednesday, 21 May 2014 at 10:52:34 UTC, Joakim wrote:
 Other than the Artistic Licence dual-licensing, what did I get 
 wrong?


I think you're right - I'm not all that familiar with the Artistic Licence, but it seems a better fit for building a proprietary IDE around DMD. From this unreliable source, it looks like the Artistic Licence (at least Version 2.0, though I presume 1.0 is in the same spirit) is intended to be proprietary-friendly, so the GPL discussion is for naught: http://osdir.com/ml/licenses.open-source.general/2007-03/msg00055.html DMD seems to reference 'Version 1.0' of the Artistic Licence, which the FSF consider to be too vague to really reason about: https://www.gnu.org/licenses/license-list.html#ArtisticLicense
May 21 2014
prev sibling next sibling parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Wednesday, 21 May 2014 at 10:52:34 UTC, Joakim wrote:
 I don't know about that last point, and I'm not about to reread 
 the GPL to find out, but sure, it's all a matter of how tightly 
 you link against GPL code.

Shared memory, pipelines etc are not linking… If you exchange data you are ok as they are independent works.
May 21 2014
prev sibling next sibling parent "Kagamin" <spam here.lot> writes:
On Wednesday, 21 May 2014 at 09:59:54 UTC, Max Barraclough wrote:
 Other than the Artistic Licence dual-licensing, what did I get 
 wrong?

Syntax highlighting requires only minimal lexer. Code completion should be done out of process in order to easily restart it if it overuses memory.
May 22 2014
prev sibling next sibling parent "marcpmichel" <marc.p.michel gmail.com> writes:
To be back on topic :

What about trying crowdfunding to pay a few developers to build 
an IDE for D ?
What about Digital Mars doing it ?
Where is the video with Walter and Andrei asking for 
contributions ?
May 22 2014
prev sibling next sibling parent "Max Barraclough" <. .> writes:
On Thursday, 22 May 2014 at 09:51:17 UTC, marcpmichel wrote:
 To be back on topic :

 What about trying crowdfunding to pay a few developers to build 
 an IDE for D ?
 What about Digital Mars doing it ?
 Where is the video with Walter and Andrei asking for 
 contributions ?

The MonoD developer is accepting donations: http://mono-d.alexanderbothe.com/ (Unrelated: The JavaScript-free captcha is utterly impossible, or else actually broken. Most annoying.)
May 22 2014
prev sibling parent "marcpmichel" <marc.p.michel gmail.com> writes:
On Thursday, 22 May 2014 at 14:06:10 UTC, Max Barraclough wrote:
 The MonoD developer is accepting donations:
 http://mono-d.alexanderbothe.com/

I my mind, such a crowdfunded IDE for D, announced by Walter and Andrei, should be written in D. It could be the necessary bootstrap for such a big open-sourced project. This, indirectly, would also serve as advertisement for D.
May 22 2014