Open source licensing questions
Commercial licensing questions
Yes, you can.
GPL license does not forbid commercial usage, but you should distinguish between commercial usage and commercial distribution (see next question).
If commercial usage does not involve distribution of ALGLIB code (or code which depends on ALGLIB), you can use ALGLIB without hesitation.
Almost surely - no. GPL license does not forbid commercial distribution explicitly, but it imposes several requirements that commercial users can't comply with.
The most important requirements are: a) you must distribute your program along with source code and under GPL, b) you can't restrict your users from copying your program, reselling copies or distributing them for free.
You can, but there is at least one reason to buy commercial license. Everything is OK while it is just running on your server. But any action connected with distribution - selling, sublicensing, transferring to someone under nondisclosure agreement - will trigger copyleft clause. So it is safer and more convenient to buy commercial license.
One-year commercial support plan includes:
We provide following set of guarantees:
We offer you two payment methods. Plastic cards are the easiest and fastest way to pay. You should fill order form on ALGLIB website, then you get redirected to secure webform where you should enter your card number and other relevant information. Payments are processed by PayOnline System. Order will be processed within one business day after payment is done. Source files with your name in the "License information" section will be delivered to you by e-mail. In case you didn't get ALGLIB in time, please contact us.
Another payment method is bank transfer. It is slower (takes from 3 to 5 days) but sometimes can be more appropriate. You should fill order form on ALGLIB website, then within one business day an invoice will be issued. After paying an invoice you can either (A) wait for the money to enter our bank account - generally up to 3 days, or (B) send us confirmation of the payment (scanned copy of the bank documents, screenshot from internet banking system or accounting program). Then within one business day you will receive Commercial Edition of ALGLIB.
If you want to try a trial of commercially licensed ALGLIB, you can use GPL-licensed version. Why? Because they are 100% equivalent! And because GPL license is 100% free for "in-house" use.
So you just can take GPL-licensed ALGLIB and your non-GPL program, combine them and see how it works. If you want to distribute it, you must use GPL license, but no one can force you to distribute something you made on your private computer. And if everything is OK, then you can buy commercially licensed version.
You can see that with such licensing model you don't need money back guarantee - you can evaluate ALGLIB as long as you want to. However, we want our users to feel themselves protected from surprises. So we offer you unconditional 90-day money back guarantee. If, within 90 days from payment, you will understand that for some reason you don't want to use ALGLIB anymore, you can contact us and we will return your payment back to you.
If money was paid by bank transfer, we will send them back to your account. In case payment by plastic card was used, we will refund your money back to your card.
The only difference is license.
Yes. Commercial license allows you to modify ALGLIB as you wish and to decide what to do with these modifications.
No, it is not per-developer licensing. With per-developer licensing model you are charged every time you add one more developer. There is strict one-to-one correspondence between number of developers you have and amount of money paid. Discount, from the other side, is something fixed - it is determined at the moment when both sides reach an agreement. It can't be changed or claimed back in the future except for a special case described in clause 4.4.b of the commercial license agreement.
By applying for a developer-based discount you state that you do not intend to use ALGLIB by more than N developers. Either you a) have no more than N developers, or b) you have more than N developers, but only N of them (team or department) will work with programs which use ALGLIB. It is your intention to follow some specific usage pattern, and we agree to give you a discount whose size depends on this pattern. We also agree that if your company (or department) will grow beyond N developers, we won't charge you for these additional developers - except for a special case described in clause 4.4.b.
Clause 4.4.b states that you agree to contact us and ask to recalculate discount size if team(s) total size will increase beyond N developers within 3 months after the Agreement effective date. This clause is reserved for a situation when you suddenly understand that one more department wants to use ALGLIB.
See also question regarding clause 4.4.c.
Because it is hard to control users of the open source software product.
We don't think that per-developer licensing is "bad", but it needs license manager. We can't attach one to a program which is shipped in source-only form. And even if we could, we would have a lot of problems while counting number of developers submitting code to SVN repository. So we prefer to count your developers only once - at the moment when the agreement is concluded.
Clause 4.4.c states that you "understand purpose of the developer-based discount (lower price for smaller companies) and have no intention to use discount just as possibility to reduce license cost without actually conforming to its spirit. In particular, you do not apply for discount knowing for sure that you will increase team size beyond N developers right after the period mentioned in clause 4.4.b is over".
Your legal department is right - it is hard to prove anything regarding someone's intentions. But enforceability doesn't matter here. This clause states that you know the rules and agree to follow them. We expect that ethical company will do so even when there is no penalty for violation of the rules.
Yes. However, GPL'ed edition can be used too, and it is free.
No. Commercial license can't be transferred to another legal entity (individual), which contradicts the very definition of "Open Source"
No. About 28% of ALGLIB code comes from several well-know open source projects (LAPACK and Cephes). Several contributions/patches were submitted by ALGLIB users. However, all code was contributed under permissive licenses like BSD, so it is compatible with both open source and commercial licenses used by ALGLIB. See 'Codebase' section for more information about copyright.
Yes. You can freely distribute ALGLIB source under GPL terms (or use it under commercial license terms). But if you want to use ALGLIB name for something other than original ALGLIB distribution, you should ask our permission. You can read our trademark policy for more information.
You can cite it as "ALGLIB (www.alglib.net), Sergey Bochkanov and Vladimir Bystritsky".
AlgoPascal is a programming language developed for ALGLIB project. More than 95% of ALGLIB source is written in AlgoPascal and translated into C and C# by AlgoPascal translator. That is how we can simultaneously support C++ and C# versions of ALGLIB package - we support only one version of ALGLIB, which is written in AlgoPascal, and automatically translate it to C++ and C#.
X-generator is another tool developed exclusively for ALGLIB. It is a generator of wrappers for the C/C# computational cores. This generator is heavily used by Python and VB.NET releases of ALGLIB. It is also used to generate doctests - code snippets, which are used as both examples (doc) and test suite (tests).
Both technologies are kept private (and will continue to be private for some time; see the next question), but result we've got with these tools - ALGLIB - is freely available under GPL.
Well, there are reasons to release them - and reasons not to release them. These tools are crucial for our success and we've invested a lot of time and money into them. Obviously, we won't be happy if some competing company will use these tools to develop closed source applications.
From the other side, these tools are too important for Open Source community to be kept private forever. You can use/fork ALGLIB without AlgoPascal, but support/development costs will skyrocket. Without automatic translation each of the ALGLIB versions (C++, C# or other) must be supported separately, each algorithm must be implemented several times, each bug must be fixed several times again.
It makes Open Source community too dependent on us as the only company which can support ALGLIB. We want to secure our investments in the ALGLIB development - but we don't need such dependence (and responsibility it places on us).
So we all definitely need some solution which will satisfy all parties involved. Luckily, there exists one which will be announced in the first half of 2011.
ALGLIB® - numerical analysis library, 1999-2017.