I've made this library virtually allowing porting of features of one software language into several others. Obviously, it rides on several past inventions: the library's underlying language, the method/system for allowing different languages to communicate with each other, and possibly others.
But what this library does is allow this one particular language to effectively communicate with several others since it currently lacks that feature (even though alluded to by the designers to the contrary): a basic translator using a standard wrapping method, if you will. Obviously, the concept of an API/wrapper for any use is (or should be) obvious enough to have such an idea rejected outright. What's obvious is programming an intermediary system to communicate information between the user and the target system. I've already seen random posts here and there on the internet suggest such a solution for my particular problem, though never delving deeper into exactly how one should implement it. I discovered myself just how to implement it.
From my perspective, software cannot logically be patentable because it involves nothing more than the recombination of already existing or proven ideas (the underlying language library itself). Thus nothing new or novel can be created from any language (other than another language within limits), but still creatively constructed as is a book, and therefore should be covered under copyright systems. A box on a magic window beeping device is not alien technology worthy of a patent. Maybe 50 years ago, but not today. However, obviously the patent office and several judges do not see it that way, so my opinion doesn't matter here.
I guess my question is, how can one tell if such a seemingly obscure thing is obvious or likely already created by a thousand engineers?
Also, I intend for this "invention" to be fully open source. How can I protect it to ensure free distribution is fully enforced without it being hijacked or stolen by a patent troll?