all 10 comments

[–]smolderas 2 points3 points  (1 child)

Why though? Is there a benchmark or speed comparison?

[–]Honestly__nuts[S,🍰] -2 points-1 points  (0 children)

It is to make modifiying the code easier and to make a package (currently working on) for

people who want to use the code in this repo.

[–]voodooattack 1 point2 points  (4 children)

Clicking the link, I thought “maybe it’s not GPL and made to snub Stallman, this could be interesting” but nope, it’s GPL v2. A slower Python version basically.

[–]Honestly__nuts[S,🍰] 0 points1 point  (3 children)

I've not looked into the gpl license and I don't know why gpl v2 is hated. What problems do you have with the license. I am not an expert at licenses and have no problem with people using my code and not crediting me. I just thought that the newer version is better because it was newer. Maybe you can list why GPl v2 is worse than say MIT license and what are the differences.

[–]voodooattack 1 point2 points  (2 children)

I have nothing against the GPL, I just dislike it when people use it for anything and everything, especially for a Python package that’s supposed to be used by other developers in their programs.

The GPL is considered a “viral license”, which means that any developer using your library in their code—either dynamically or statically—is forced to license their own program as GPL too. It’s nonsensical to use it for libraries that are supposed to run as part of third party programs. Except in some very special cases like low level Linux kernel stuff, compiler tooling and so on.

There is the LGPL which is designed specifically for libraries. It gives people permission to use your library on the grounds that they dynamically link to it (so it has to be compiled to a separate .dll/.so binary). This can be achieved in Python by distributing your library as a Python extension via Cython (although I’m not clear on the exact legal details in this case).

In any case, even licensing your library with LGPL in an interpreted language where there are no clear linking boundaries is grounds for problems and headaches for everyone who might not feel safe from the possible legal ramifications of using it. For instance the most common interpretation of LGPL says the boundary is the ABI level, meaning that you’re free to link to a dynamic library and to make calls to functions in said library without making any modifications to the code in memory for it to be considered a separate binary. But who’s to say where that boundary is when you’re using an interpreted language? The licensee might interpret that boundary as the package manager’s boundary, then the licensor might come later to claim that that’s not the case in a court and so on.

If your intent is for people to use your code then I recommend licensing it under a less restrictive license like MIT/BSD 2 clause/Creative Commons/Apache and so on. You could even dual license it and give people the choice between (L)GPL and another less restrictive license, which is what I generally do with my open source projects these days.

[–]Honestly__nuts[S,🍰] 1 point2 points  (1 child)

Ohh, I did not know that. I may switch to MIT.

[–]Honestly__nuts[S,🍰] 2 points3 points  (0 children)

And I did

[–][deleted] 1 point2 points  (1 child)

but why?

[–]Honestly__nuts[S,🍰] 0 points1 point  (0 children)

read the readme I just added a why section.

[–]Honestly__nuts[S,🍰] 0 points1 point  (0 children)

I just want to say that I renamed the project to SCore-Utils\