On Sun, Dec 04, 2011 at 02:49:30PM +0800, Denis Kochedykov wrote:
> Hi Olivier,
> 
> Thanks for comments!
> 
> So, summarizing, sklearn versus Orange is:
> - use plain arrays instead of classes for storing data-sets, features, etc
> - use BSD rather than GPL license
> - no framework, plain library of methods
> 
> If I got it right, seems like creating sklearn was not a question of 
> Orange quality/usability, but more a question of another development 
> style/community.
> That is, for users who're not going to sell their software (which is not 
> permitted by GPL), there is not much difference?

The GPL does not prohibit you from selling your software. The only
stipulation is that anyone who receives the software in binary form must also
receive the source code, and a copy of the license. 

*That* person is then free to redistribute the software under the terms of
the GPL, including giving it away for free. So while you are free to sell
software, those you sell it to are free to give it away, and so forth.

That, and the GPL is viral, so the moment you import a GPLed library or copy
and paste a snippet of GPLed code, your entire project becomes a "derivative
work" as far as the FSF is concerned (and possibly the copyright law of some
country, AFAIK it's never been litigated).

> Of course, convenience for developers and simplicity means more viable 
> library in a long term.

When I last tried out Orange, it was very much a C++ library trying and
failing to masquerade as a Python library. The API was complicated and
prosaic, it didn't build very easily, and it was prone to hard crashes that
brought the interpreter down in flames. I don't know if things have improved
since then (this was probably 2008ish).

I've since moved into mostly dabbling in the kinds of algorithms that neither
scikit-learn nor Orange implement, but when I do require the use of an
off-the-shelf algorithm, I greatly prefer scikit-learn's approach to APIs
because, as a seasoned NumPy user, there's very little else I need to grasp
in order to use it. I don't need to spend half a day piecing together
somebody's notions of how best to decompose a learning task into a 30-piece
C++ class hierarchy: I look up the class I'm interested in, look at the
docstring for __init__() and fit(), and I'm done.

David

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Scikit-learn-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to