Page 1 of 1

Publish and maintain your open source code

Posted: Wed Nov 20, 2013 1:30 am
by Joakim Christiansen
What makes a programming language great is when it easy to do whatever you want in it.

And what makes it easy to do that is when someone else has already made a library or an example doing that thing for you.

Hence why most people use C++ (and also because the language itself is open source).

But we have a nice community of very intelligent people here and by sharing our code and creating more open source projects we will grow the community and attract newcomers more easily. Hence why using sites like GitHub could be a good idea instead of just using the Tricks 'n' Tips section to share code. Code published on such a site can be maintained by everyone; anyone can submit changes/fixes/updates and thus the code is "kept alive"! This could solve the problem we now currently have with the archived Tricks 'n' Tips which is is a lot of work to update.

From now on most code I post in the Tricks 'n' Tips section will also get it's own folder and be maintained at my GitHub page. It is very easy for me to maintain since I can just synchronize the changes I make locally and others can also submit their own updates. I will urge everyone to do this, especially PBOSL.

On my GitHub page I will link to anyone else who creates PureBasic repositories, effectively creating a webring:
http://en.wikipedia.org/wiki/Webring

And someone please help getting the lexer working :D :
https://github.com/github/linguist/pull/641

Re: Publish and maintain your open source code

Posted: Wed Nov 20, 2013 7:07 am
by Danilo
Joakim Christiansen wrote:But we have a nice community of very intelligent people here and by sharing our code and creating more open source projects we will grow the community and attract newcomers more easily.
PureBasic is a commercial product, so not everybody can just install it for free
and run the OpenSource projects. If you want to contribute to a PB OpenSource project,
you first have to buy a commercial, closed source PureBasic license.
That's much different. Many OpenSource projects are written in languages like C, C++, C#,
Go, PHP, Java, ... and there are free compilers available for this languages on many platforms.
That's part of the freedom with OpenSource, even the compilers and other tools (IDEs) are free and often OpenSource.

Attracting more users is the job of the company 'Fantaisie Software'... if they even want to have more users.

OpenSource stuff for such a small, commercial, closed source product will never be like OpenSource projects availability
for free languages where even OpenSource compilers are available. It is comparing a commercial language/product that has some thousand active users
with free, open source languages that have many million users.

There are also many people here that run small companies or are one-man-shows. This people use the
commercial PureBasic to make money. Sometimes they share some stuff here, because they are nice people,
but generally they code products as a job and to make money, so they just can't share everything for free,
because the kids need food and the wive wants new shoes. ;)

That said, you just shouldn't expect many millions of free OpenSource PureBasic projects, at least
as long PureBasic itself is a commercial, closed source product.


Anyway, one suggestion if you want to make PB OpenSource projects for the reason the code
is open source, free, and can live on: Choose the right license.
PBOSL is OpenSource under the LGPL license. It means (now), that you can't include the source
into your closed-source, commercial projects (derived work). You can use it freely as a DLL only.
It is not what i wanted to do, when I had the idea of starting the project and choosed the name 'PBOSL',
and the license for the project. At this time, like 8 or 9 years ago, I just wanted my OpenSource projects
to live on, even if I leave PureBasic for a while. And I wanted that it can be used even for commercial,
closed source products, hence I choose LGPL over GPL. The general interpretation of the LGPL license has changed
with version 3 of the license and was discussed controversially at the time of LGPL v2.
It was a mistake to choose LGPL v2 or later for PBOSL, and I had to repeat many times that I don't care
if the code I wrote is used in commercial or closed-source projects for free. All I wanted was to make it
available for free, and force contributors to also release their changes as free open source.
So, the right license is very important if you want to do OpenSource PureBasic projects. Choose the wrong
license, and people will not use it. For people writing commercial and/or closed source software, the license
is very important. Just saying, it is my personal experience with PBOSL. We put some weeks of extra work
into the project (like converting codes from ASM to C, and making the documentation available without extra tools),
before releasing it into the public, but it didn't help much. At the end, it was lost life-time.
The PBOSL project is dead in my opinion. First, and most important, because I choose the wrong license for it many years ago, at the time we started it,
and second there weren't many contributors anyway (but the very few contributors and maintainers did a great job).

Re: Publish and maintain your open source code

Posted: Wed Nov 20, 2013 12:24 pm
by luis
About the license for open source software.
Reality is, when the source code is made available, any license you choose is just a "pretty please" readme.
There will always be people ignoring it and doing with the source just what they want and forget about you and your license the instant their compiled binary is working. For them the type of license it's not really a problem. The instant you release source code, you lose control on it, on derivative work coming from it, on any fork started from it, etc.
This is especially true when the code is relatively short/simple like the code posted in the forum or on PBOSL.
For a bigger and complex project sometimes other things comes into play and there are many possible outcomes, no one really excluding theft or license abuse.

Re: Publish and maintain your open source code

Posted: Wed Nov 20, 2013 8:23 pm
by Joakim Christiansen
Danilo wrote:That said, you just shouldn't expect many millions of free OpenSource PureBasic projects, at least as long PureBasic itself is a commercial, closed source product.
I actually agree with everything you said!

I was about to make that point my self, but I didn't want to turn this into another discussion about whether to make PB open source or not since we've had that before.

Re: Publish and maintain your open source code

Posted: Thu Nov 21, 2013 12:26 pm
by applePi
thanks Joakim, there is a need for a free universal files repository in which the files lasts long time, at least 30 years (at least for the museum) . apart from the open table in which the programmers can edit and share the code if this site GitHub resembles the virtual universal files repository then thats great. i think to register to look more . i have downloaded your files as a one zip file .

Re: Publish and maintain your open source code

Posted: Thu Nov 21, 2013 1:02 pm
by Shield
One issue with that concept is that such a repository needs to be maintained by possibly a rather small group.
The nature of GitHub allows anyone to fork public projects, modify them and make pull-requests, which is good.
However, those changes still need to be approved by the maintainers to ensure a certain levels of quality, stability
and security for the official package (imho).

Take a look at the Code Archive for instance. It is a great thing and it helped me out more often than I can count
in my early days with PureBasic so many years ago. However, looking at it from a more professional perspective,
it is rather messy and the code is often of very poor quality.

Do we really need another code archive with loosely coupled snippets or wouldn't it be much nicer to have something
stable that can be reused? PBOSL was a good start, however it died very quickly due to numerous different reasons,
as mentioned above.

Assuming we (as a community) want to create some kind of "universal standard library" (pb.std?), we need
a small group of people (maybe 2-5) who take care of managing the community's contributions. Their main task
will be to keep track of the project's state and progress, determine the architecture and define required functions.
They will need to review pull-requests from other members and incorporate them into the library after doing quality checks.
Also, constant refactoring needs to be done to keep it up to date, unit test need to be written and manual tests need to be done
in order to ensure quality. They will need to integrate new code, remove obsolete functionality, etc. etc.

This is not an easy task and very time consuming and it can't be done by "everyone".
Exactly this is the main problem. I've seen tons of open source community projects die because
of the eventual lack of interest of the (initial) contributors.

Re: Publish and maintain your open source code

Posted: Thu Nov 21, 2013 2:08 pm
by Tenaja
Danilo wrote: ...It was a mistake to choose LGPL v2 or later for PBOSL, and I had to repeat many times that I don't care
if the code I wrote is used in commercial or closed-source projects for free. All I wanted was to make it
available for free, and force contributors to also release their changes as free open source.
So, the right license is very important if you want to do OpenSource PureBasic projects.....
As the original author of a library, you are permitted to release it with as many licenses as you wish. Just because you release it with LGPL does not mean you cannot also release it with BSD, or any other license.

Just something to consider.

BTW, I am one of those users who will not use any precompiled libraries, nor will I use code that requires me to disclose anything, except perhaps "obvious" libraries like Scintilla. With the code posted here that requires it, I have made agreements with authors to avoid the disclosure, or I do not use it.

Re: Publish and maintain your open source code

Posted: Thu Nov 21, 2013 2:46 pm
by tj1010
Like others said, PB is proprietary licensed. It's a good license, but most people see paying for anything as bad, because the concept of earning and economics are so evil..

I find myself still using C++, and when employers request it, MS environments and languages. When I have a choice I go with portable GIT..