I'm not sure if the FSF did more harm than good with the GPL/LGPL, but I'm definitely confused. If I am developing a program or script and find a particular function, or class that is licensed under the GPL or LGPL that would work, or at least work with some modification, faster than writing it all myself; Can I use this code if I am going to sell my software commercially?
Under most of the licenses I am aware of, you can include GPLed code and sell the software. However, you must make the full source code for the software available to the buyer in order to satisfy the license. If this is a problem, then you should be buying commercial libraries which allow you to use them in commercial software. Alternatively, you will need to create your own function.
You must make the GPL'ed code available, to be sure, but the GPL "license" is written in a way that does NOT make it clear what you must do with your modifications. In court, the FSF would be hard pressed to defend the GPL. They've succeeded so far by browbeating people into settlements. The LGPL is the better option, though, since you can link your code to LPGL-licensed code without affecting the license you can attach to your code.
The GPL is like a virus, once you use even the smallest bit of GPL'd code, the sourcecode of your whole application must be available, for free. This makes it impossible to use commecial and GPL classes in the same application. There is some text that allow you to use GPL code as a plugin for the main application, provided they dont share memory, files, it is not a major part of functionality and whatnot.. not worth it trying to figure out all the rules. The LGPL is less restrictive, but I still stay away from it, the license is just too complex, you will allways get people saying you cannot do this or that. I just stick to MIT or python licenced software. GPL may be good for the opensource crowd, but it is very anti-business imho.
It really is like a virus for any commercial application. I don't think most people actually read the GPL/LGPL before they license their code with it.
I have released code using GPL for the very reason that I want it to remain free and I want ancillary products to be free and open. I have no illusions about the license. I have also released code under a modified Apache open source license. There are so many options. When I have a commercial application that I intend to sell, I code it without using any GPLed material. I do not want the hassle. When I code for internal use only, I could care less what I use. Nothing related to those projects will ever be for public consumption. No part is recycled -- though I am careful to keep my personals libraries of code separate from those of other people.