DConf 2013 Closing Keynote: Quo Vadis by Andrei Alexandrescu

Joakim joakim at airpost.net
Wed Jun 26 10:42:21 PDT 2013


On Wednesday, 26 June 2013 at 12:02:38 UTC, Joseph Rushton 
Wakeling wrote:
> Now, in trying to drive more funding and professional effort 
> towards D development, do you _really_ think that the right 
> thing to do is to turn around to all those people and say: "Hey 
> guys, after all the work you put in to make D so great, now 
> we're going to build on that, but you'll have to wait 6 months 
> for the extra goodies unless you pay"?
Yes, I think it is the right thing to do.  I am only talking 
about closing off the optimization patches, all bugfixes and 
feature patches would likely be applied to both the free and paid 
compilers, certainly bugfixes.  So not _all_ the "extra goodies" 
have to be paid for, and even the optimization patches are 
eventually open-sourced.

> How do you think that will affect the motivation of all those 
> volunteers -- the code contributors, the bug reporters, the 
> forum participants?  What could you say to the maintainers of 
> GDC or LDC, after all they've done to enable people to use the 
> language, that could justify denying their compilers up-to-date 
> access to the latest features?  How would it affect the 
> atmosphere of discussion about language development -- compared 
> to the current friendly, collegial approach?
I don't know how it will affect their motivation, as they 
probably differ in the reasons they contribute.

If D becomes much more popular because the quality of 
implementation goes up and their D skills and contributions 
become much more prized, I suspect they will be very happy. :) If 
they are religious zealots about having only a single, completely 
open-source implementation- damn the superior results from hybrid 
models- perhaps they will be unhappy.  I suspect the former far 
outnumber the latter, since D doesn't employ the purely-GPL 
approach the zealots usually insist on.

We could poll them and find out.  You keep talking about closed 
patches as though they can only piss off the volunteers.  But if 
I'm right and a hybrid model would lead to a lot more funding and 
adoption of D, their volunteer work places them in an ideal 
position, where their D skills and contributions are much more 
valued and they can then probably do paid work in D.  I suspect 
most will end up happier.

I have not proposed denying GDC and LDC "access to the latest 
features," only optimization patches.  LDC could do the same as 
dmd and provide a closed, paid version with the optimization 
patches, which it could license from dmd.  GDC couldn't do this, 
of course, but that is the result of their purist GPL-only 
approach.

Why do you think a hybrid model would materially "affect the 
atmosphere of discussion about language development?"  Do you 
believe that the people who work on hybrid projects like Android, 
probably the most widely-used, majority-OSS project in the world, 
are not able to collaborate effectively?

> ... and -- how do you think it would affect uptake, if it was 
> announced that access to the best features would come at a 
> price?
Please stop distorting my argument.  There are many different 
types of patches added to the dmd frontend every day: bugfixes, 
features, optimizations, etc.  I have only proposed closing the 
optimization patches.

However, I do think some features can also be closed this way.  
For example, Walter has added features like SIMD modifications 
only for Remedy.  He could make this type of feature closed 
initially, available only in the paid compiler.  As the feature 
matures and is paid for, it would eventually be merged into the 
free compiler.  This is usually not a problem as those who want 
that kind of performance usually make a lot of money off of it 
and are happy to pay for that performance: that is all I'm 
proposing with my optimization patches idea also.

As for how it would "affect uptake," I think most people know 
that free products are usually less capable than paid products.  
The people who don't need the capability use Visual Studio 
Express, those who need it pay for the full version of Visual 
Studio.  There's no reason D couldn't employ a similar segmented 
model.

>  There are orders of magnitude of difference between uptake of 
> free and non-free services no matter what the domain, and 
> software is one where free (as in freedom and beer) is much 
> more strongly desired than in many other fields.
Yes, you're right, non-free services have orders of magnitude 
more uptake. :p

I think there are advantages to both closed and open source, 
which is why hybrid open/closed source models are currently very 
popular.  Open source allows more collaboration from outside, 
while closed source allows for _much_ more funding from paying 
customers.  I see no reason to dogmatically insist that these 
source models not be mixed.

> There's a big difference between introducing commercial models 
> with a greater degree of paid professional work, and 
> introducing closed components.  Red Hat is a good example of 
> that -- I can get, legally and for free, a fully functional 
> copy of Red Hat Enterprise Linux without paying a penny.  It's 
> just missing the Red Hat name and logos and the support 
> contract.
Yes, it's a consulting or support model.  These don't scale as 
well as a product model with closed components.  If all closed 
components are guaranteed to be open sourced after some time 
limit, as I've suggested above, I see no reason for OSS 
proponents to protest.

> In another email you mentioned Microsoft's revenues from Visual 
> Studio but -- leaving aside for a moment all the moral and 
> strategic concerns of closing things up -- Visual Studio enjoys 
> that success because it's a virtually essential tool for 
> professional development on Microsoft Windows, which still has 
> an effective monopoly on modern desktop computing.  Microsoft 
> has the market presence to be able to dictate terms like that 
> -- no one else does.  Certainly no upcoming programming 
> language could operate like that!
Yes, Microsoft has unusual leverage.  But Visual Studio's 
compiler is not the only paid C++ compiler in the market, hell, 
Walter still sells C and C++ compilers.

I'm not proposing D operate just like Microsoft.  I'm suggesting 
a subtle compromise, a mix of that familiar closed model and the 
open source model you prefer, a hybrid model that you are no 
doubt familiar with, since you correctly pegged the licensing 
lingo earlier, when you mentioned "open core."

These hybrid models are immensely popular these days: the two 
most popular software projects of the last decade, iOS and 
Android, are hybrid models.  Of course, that is partly because 
mobile is such a hot field, but the explosion of mobile software 
didn't mean success for the closed models of RIM, Nokia, or 
Microsoft.  Android's hybrid model is a big reason why it 
succeeded.

I see no reason why another "upcoming" project like D couldn't do 
the same. :)

> It's more likely that closing off parts of the offering would 
> limit that uptake, for reasons already given.  On the other 
> hand, with more and more organizations coming to use and rely 
> on D, there are plenty of other ways professional development 
> could be brought in.  Just to take one example: companies with 
> a mission-critical interest in D have a corresponding interest 
> in their developers giving time to the language itself.  How 
> many such companies do you think there need to be before D has 
> a stable of skilled professional developers being paid 
> explicitly to maintain and develop the language?
I disagree that having a slightly-closed paid version would limit 
uptake, I think it would greatly increase it, for the same 
reasons that closed-source Windows is still on the vast majority 
of PCs and the hybrid model of Android led it to dominating on 
mobile devices.

It is possible that your alternative of corporate backers 
providing paid development for D will materialize, even if solely 
for their own benefit, though it would benefit the wider 
community also.  I'm suggesting that the hybrid model I'm 
proposing will provide such funding much faster and better, for 
the reasons given.

> Your citation of the Linux kernel is relevant here.  Do you 
> think that Linux would have had all that diverse success if 
> parts of it had been closed up and sold at a premium?  D's 
> status as a purely community-run project is an asset compared 
> to corporate-backed languages, not a liability.
As I noted in my response to Luca, linux has always had binary 
blobs.  Do I think it would have been as successful if more parts 
of it had been closed up?  Well, much of it cannot be closed 
because of the GPL, so it is just not possible in many respects.

But to take a recent example where it is possible, a recent rumor 
is that Sony is using FreeBSD for the Playstation 4:

http://www.vgleaks.com/some-details-about-playstation-4-os-development/

Even if it isn't used on the final PS4, FreeBSD is known to be 
used in commercial, closed products like Juniper routers or 
NetApp file servers.  I don't think this has limited its uptake, 
if anything, it has helped as they have eventually contributed 
back towards the project.

I don't think a "purely community-run project" is a worthwhile 
goal, particularly if you are aiming for a million users and 
professionalism.  I think there is always opportunity for mixing 
of commercial implementations and community involvement, as very 
successful hybrid projects like Android or Chrome have shown.


More information about the Digitalmars-d-announce mailing list