Thread overview
Texas LinuxFest 2011 call for papers now open
Jan 20, 2011
Lutger Blijdestijn
Jan 20, 2011
Daniel Gibson
Jan 20, 2011
Lutger Blijdestijn
Jan 20, 2011
Lutger Blijdestijn
Jan 20, 2011
Daniel Gibson
Jan 20, 2011
Akakima
January 20, 2011
http://www.texaslinuxfest.org/callforpapers/

One topic of interest is Open Source Programming Languages. If someone could explain to me the various subtle nuances of what an open source programming language is, I'll try to make a D-related submission and of course I recommend anyone else to do the same.


Andrei
January 20, 2011
Andrei Alexandrescu wrote:

> http://www.texaslinuxfest.org/callforpapers/
> 
> One topic of interest is Open Source Programming Languages. If someone could explain to me the various subtle nuances of what an open source programming language is, I'll try to make a D-related submission and of course I recommend anyone else to do the same.
> 
> 
> Andrei

This is a matter of perspective, I think these are the possibly interesting angles and issues for D:

- availability and development of Open Source compilers (OSI compatible license)

- cross-platform design, this extends beyond linux but is often a concern and goal in the Open Source world

- development process of the language (and std lib) itself: here the community participation is important. For D it's an interesting (and ongoing) story to tell.

- usefulness and place in the open source ecosystem: I believe D has a potential here as a serious alternative for both mono and java. Mono, the open source implementation of .net, has loads of potential patent issues and for this reason is not supported by some distro's. Java also has it's issues. Positioning D as a solution to those problems (rather than an alternative for C++ or dynamic languages) will please the crowd, for sure :) Interoperability with C is also important here.
January 20, 2011
"Andrei Alexandrescu" <SeeWebsiteForEmail@erdani.org>

> http://www.texaslinuxfest.org/callforpapers/
>
> One topic of interest is Open Source Programming Languages. If someone could explain to me the various subtle nuances of what an open source programming language is, I'll try to make a D-related submission and of course I recommend anyone else to do the same.
>
>
> Andrei

See:    http://en.wikipedia.org/wiki/Open-source_software

Some may considers D is Open Source. Some others may consider it's not. Many uses the following definition for Open Source.

I think it means that DMD (the reference implementation) would not be considered as Open Source.

The Open Source Definition is used by the Open Source Initiative to determine whether or not a software license can be considered open source. The definition was based on the Debian Free Software Guidelines, written and adapted primarily by Bruce Perens. They are by no means definitive even as applied to software. Clause 3 is the primary legal difference between free software and open source software as such, free software is stricter in interpreting 3. Clauses 5 and 6 are not a condition of any major open content license regimes, which commonly do restrict types of uses and users; for instance, Creative Commons has open content licenses that explicitly forbid commercial use.

Introduction

  Open source doesn't just mean access to the source code.
  The distribution terms of open-source software must comply with the
following criteria:
1. Free Redistribution

  The license shall not restrict any party from selling or giving away the
software as a component of an aggregate software distribution containing
programs from several different sources. The license shall not require a
royalty or other fee for such sale.
2. Source Code

  The program must include source code, and must allow distribution in
source code as well as compiled form. Where some form of a product is not
distributed with source code, there must be a well-publicized means of
obtaining the source code for no more than a reasonable reproduction cost
preferably, downloading via the Internet without charge. The source code
must be the preferred form in which a programmer would modify the program.
Deliberately obfuscated source code is not allowed. Intermediate forms such
as the output of a preprocessor or translator are not allowed.
3. Derived Works

  The license must allow modifications and derived works, and must allow
them to be distributed under the same terms as the license of the original
software.
4. Integrity of The Author's Source Code

  The license may restrict source-code from being distributed in modified
form only if the license allows the distribution of "patch files" with the
source code for the purpose of modifying the program at build time. The
license must explicitly permit distribution of software built from modified
source code. The license may require derived works to carry a different name
or version number from the original software.
5. No Discrimination Against Persons or Groups

  The license must not discriminate against any person or group of persons.
6. No Discrimination Against Fields of Endeavor.

  The license must not restrict anyone from making use of the program in a
specific field of endeavor. For example, it may not restrict the program
from being used in a business, or from being used for genetic research.
7. Distribution of License

  The rights attached to the program must apply to all to whom the program
is redistributed without the need for execution of an additional license by
those parties.
8. License Must Not Be Specific to a Product

  The rights attached to the program must not depend on the program's being
part of a particular software distribution. If the program is extracted from
that distribution and used or distributed within the terms of the program's
license, all parties to whom the program is redistributed should have the
same rights as those that are granted in conjunction with the original
software distribution.
9. License Must Not Restrict Other Software

  The license must not place restrictions on other software that is
distributed along with the licensed software. For example, the license must
not insist that all other programs distributed on the same medium must be
open-source software.
10. License Must Be Technology-Neutral

  No provision of the license may be predicated on any individual technology
or style of interface.



January 20, 2011
Am 20.01.2011 19:58, schrieb Lutger Blijdestijn:
> Andrei Alexandrescu wrote:
>
>> http://www.texaslinuxfest.org/callforpapers/
>>
>> One topic of interest is Open Source Programming Languages. If someone
>> could explain to me the various subtle nuances of what an open source
>> programming language is, I'll try to make a D-related submission and of
>> course I recommend anyone else to do the same.
>>
>>
>> Andrei
>
> This is a matter of perspective, I think these are the possibly interesting
> angles and issues for D:
>
> - availability and development of Open Source compilers (OSI compatible
> license)
>

(x) we have gdc and ldc (check how well current versions with D2 work before talking about them, though ;))

> - cross-platform design, this extends beyond linux but is often a concern
> and goal in the Open Source world

(x) Windows, Linux, OSX, FreeBSD are supported, with gdc/ldc probably more

>
> - development process of the language (and std lib) itself: here the
> community participation is important. For D it's an interesting (and
> ongoing) story to tell.

(x) agree.
Also: The std lib is under a very free license (unlike for example suns/oracles classpath.. OpenJDK seems to be GPLed, but that still sucks for a std lib)

>
> - usefulness and place in the open source ecosystem: I believe D has a
> potential here as a serious alternative for both mono and java. Mono, the
> open source implementation of .net, has loads of potential patent issues and
> for this reason is not supported by some distro's. Java also has it's
> issues. Positioning D as a solution to those problems (rather than an
> alternative for C++ or dynamic languages) will please the crowd, for sure :)

You can never be sure with patents, as someone else in another thread already pointed out: it's virtually impossible to write a piece of software that doesn't infringe patents.
Of course, the situation is worse with Java (as seen in Oracle suing Google for using a Java-derivate in Android) and Mono (you never know if Microsoft will tolerate this forever. Even if they promised not to sue for current .net related patents, you never know about patents applying to features in future versions of .net).
With D at least people still would have to find patents that are infringed - and even then the case isn't as clear as with Java/mono, where it's obvious that the Java/.net related patents are infringed.

So yes, the point that D may cause less trouble than Java/.net can be made, but you probably shouldn't claim that D doesn't infringe any patents, because you can't possibly know (nobody can, there are just too many software patents to check, even for big companies).

> Interoperability with C is also important here.

Yeah, it's a killer-feature. Being able to just call C functions and link objects produced by gcc objects (foo.o) is *really* helpful, especially in the Linux world.


I think D (with gdc/ldc) qualifies as an "Open Source Programming Language", but you should probably ask the texaslinuxfest guys for their personal definition.

Cheers,
- Daniel
January 20, 2011
Daniel Gibson wrote:

...
> 
> You can never be sure with patents, as someone else in another thread already pointed out: it's virtually impossible to write a piece of software that doesn't infringe patents.

Yes, it's like bugs: you can tell when you found one, but never know your software is free of it. (well, that is almost true)

> Of course, the situation is worse with Java (as seen in Oracle suing
> Google for using a Java-derivate in Android) and Mono (you never know if
> Microsoft will tolerate this forever. Even if they promised not to sue for
> current .net related patents, you never know about patents applying to
> features in future versions of .net).
> With D at least people still would have to find patents that are infringed
> - and even then the case isn't as clear as with Java/mono, where it's
> obvious that the Java/.net related patents are infringed.
> 
> So yes, the point that D may cause less trouble than Java/.net can be made, but you probably shouldn't claim that D doesn't infringe any patents, because you can't possibly know (nobody can, there are just too many software patents to check, even for big companies).
> 

Technically that is right, but I find it a bit of an understatement because every non trival software project has potential issues. With .NET and Java you *know* you have patent issues, with D any potential patent issue is a tragic mistake that still has to be proven to exist. Those are not on the same scale, so I wouldn't use the term 'less trouble' You also have ownership to take into account, I would rather trust Walter Bright not using submarine patent traps than MS or Oracle :)
January 20, 2011
Daniel Gibson wrote:
...

> So yes, the point that D may cause less trouble than Java/.net can be made, but you probably shouldn't claim that D doesn't infringe any patents, because you can't possibly know (nobody can, there are just too many software patents to check, even for big companies).
> 

Perhaps I should elaborate a bit. mono is simply out of the question in a large part of linux. Fedora for example, has D as a feature for its 14 release but doesn't support mono. Java is more complex, but if we take it out of the picture it leaves (some of) linux with C / C++ on the one hand and a lot of higher level dynamic languages on the other. In between are some more 'exotic' languages such as haskell. Perhaps I'm wrong, but I see a big void there where D can step in, mostly because of its set of features. In the non-open-source world, Java and .NET are already taking care of much of this void.
January 20, 2011
Am 20.01.2011 21:15, schrieb Lutger Blijdestijn:
> Daniel Gibson wrote:
> ...
>
>> So yes, the point that D may cause less trouble than Java/.net can be
>> made, but you probably shouldn't claim that D doesn't infringe any
>> patents, because you can't possibly know (nobody can, there are just too
>> many software patents to check, even for big companies).
>>
>

> Technically that is right, but I find it a bit of an understatement because
> every non trival software project has potential issues. With .NET and Java
> you *know* you have patent issues, with D any potential patent issue is a
> tragic mistake that still has to be proven to exist. Those are not on the
> same scale, so I wouldn't use the term 'less trouble' You also have
> ownership to take into account, I would rather trust Walter Bright not using
> submarine patent traps than MS or Oracle :)

I mostly agree with you :-)
Maybe "less trouble" is not the right word.. my point is: I guess Walter did not explicitly try to avoid patents when developing D (and, as mentioned before, you can't be sure anyway), so you probably can't advertise D as a patent-free language (like ogg vorbis is claimed to be a patent-free audio codec).
And I don't believe Walter is using any patent traps (Does he hold any patents? I wouldn't be surprised, and I don't really care because I don't believe he'd use it offensively) - but once D is popular you never know if a third party starts trolling. But of course, this may happen with any language or software in general. Furthermore, there was this thread in d.D about two Borland patents that are now owned by M$ that *may* be infringed by D...


> Perhaps I should elaborate a bit. mono is simply out of the question in a
> large part of linux. Fedora for example, has D as a feature for its 14
> release but doesn't support mono. Java is more complex, but if we take it
> out of the picture it leaves (some of) linux with C / C++ on the one hand
> and a lot of higher level dynamic languages on the other. In between are
> some more 'exotic' languages such as haskell. Perhaps I'm wrong, but I see a
> big void there where D can step in, mostly because of its set of features.
> In the non-open-source world, Java and .NET are already taking care of much
> of this void.

I agree.
A free language that works well with C and is at least as "user-friendly" as Java definitely has a lot of potential in the open source and esp. Linux/*BSD world. Many Open Source developers will prefer it to Java/Mono, because it doesn't use a VM (some may still complain about the garbage collector, though, but in the end they'd benefit from it, because it mostly prevents the quite common memory leaks).

Another thing that should be considered: For D2 to be really interesting in the Linux world, stream and socket handling needs to improve.
But it seems like this will happen, Andrei started a discussion about a new std.stream in d.D recently.

Cheers,
- Daniel