Quote:
Original post by owl Quote:
Original post by will75
Notice that the LGPL might be undesirable for other reasons...
The size of your executable plus the LGPL DLL is generally larger than the size of your executable statically linked to the same library. If size matters for your project, dinamically linking the LGPL library can be problematic.
Using a LGPL library, you let everyone know which technologies you're using. Depending on your project and your businness this can be more or less acceptable.
Giving a chance to replace a component used by your software, you're giving a chance to easily modify the behaviour of your product. To what degree this is acceptable depends on the circumstances, but generally that's not a good thing.
Everything goes mooth after you realise the time it would take to you to re-write those libraries yourself. Besides, lots of commercial titles have been released for Linux using LGPL libraries and nobody is complaining.
Ok, but hopefully there are tons of open source libraries and not all of them are LGPL. For example for a project I needed a library providing basic platform abstraction services (threads, file system abstraction, etc...) and between glib (LGPL) and boost (boost license) I decided for boost because the license allows static linking.
I see your point however, writing your own code when an open source solution is available is a waste of time, it's just that in some situations you have to do it.
What I really dislike about GPL and LGPL is the ideology behind them. The FSF is constantly speaking about freedom, but those licenses have been created with the explicit pourpose of "forcing" programmers to open source their code and that doesn't look like freedom to me. Maybe "forcing" is too strong, but you get the idea... Stallman invites people to use the LGPL only for libraries implementing solutions that are already available in some form (open source or commercial). If a library is unique and innovative, he asks to release it under the GPL, because this way people who will want to use it will have to release their own code.
An example. Suppose you need a large number of tightly optimized loops. The number is so large that you executable would get too big. A solution could be to emit the code on demand and for this you need a JIT compiler. Any available solution?
As far as I know there are no commercial libraries implementing something like that.
There is GNU Lightning, it's LGPL, but you can't create a DLL of it because it is entirely implemented with preprocessor macros.
There is libjit, but the author choose the GPL instead of the LGPL with the explicit intent of preventig closed source projects from gaining value from it. In his idea this way people who want to use libjit will be compelled to give back to the free software community.
This doesn't look like freedom to me: I'm not free to use that code, because I would be forced to release my code and that would destroy my business.
Personally I would rather pay for such a library since I think programmers deserve to be paid (and hopefully the author of libjit admits this possibility).
Asking to release code instead is an attempt to force people to join them in their ideology.
NOTE: with the term ideology I mean an idea not supported by hard evidence... with open source is quite evident the opposite of what FSF advocates: many software related businesses can't be sustained if the code has to be open.
Maybe my vision is somehow extreme, but there are so many (imho better) alternatives to the LGPL, that I prefer to stay away from it.