I have a background in .NET, specifically in C# WPF and ASP.Net, but now I am going to use more golang and C. Consider the following situation as an example:
The software I should program should should basically upload data and present that upload-process using a GUI. Each language used in production has usually (extern) classes/libraries that provide (Network)Stream-I/O, but it's lots of more work to program an abstract "Network-Framework" (because often you have to use TCP/IP-Sockets and other low-level stuff, which is a huge origin of complexity [when your company doesn't provide such functionality already]), adjusted to the needs of my program, than using curl. The upload-function of my program could only wrap curl, a well tested and widely used and accepted tool for this purpose, which has lots of options. I know that this "loss of control" is a huge disadvantage, but curl also offers data-output which I can use as communcation-interface between my program and this tool. When they are no acceptable libs out there, that offer such features, is it "legit" to use curl for a professional product?
wgetis under GPL (however, that does not automatically imply that your program needs to be under GPL as well as long as you use only the command line interface to communicate with it).