View Single Post
Old 04-09-21, 01:29 PM
Keepin it Wheel
RubeRad's Avatar
Join Date: Aug 2011
Location: San Diego
Posts: 9,849

Bikes: Surly CrossCheck, Krampus

Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Quoted: 20 Post(s)
Liked 2,032 Times in 1,480 Posts
I need to read that article, I want to understand it more thoroughly, BUT, without having read it yet, the keyword is INTERFACE (the I in API).

Here's another analogy: In a car engine, the water pump or alternator, has a certain interface to the rest of the engine; bolt holes this size in these places, a mating surface this shape, hosepipes or loopbelts of such and such length that have to be at this position relative to the bolts/mating surfaces, etc.

If a non-OEM company wants to manufacture replacement water pumps or alternators for a certain engine, they are free to do so. The interface is not protected. The inner workings of the Ford or Honda or whatever specific water pump or alternator might well have patentable technology, but not the interface. And the non-OEM implementation of the device may look different in its outer shape, color, or (separately patentable!) inner workings -- all irrelevant details to whether the device conforms to the matching Interface.

Another example; you can nowadays replace fluorescent light tubes with LED tubes. They work in existing fixtures because the conform to the T4 interface; a 4-foot tube with two prongs of a certain shape/size/position on either end, which respond to a certain volate/amperage of alternating electric current. But the inside is a completely different implementation. So if somebody had a patent on fluorescent lights, or even standard T4 tubes, would these LED replacement makers be in violation of that patent just for reusing the interface? I don't think anybody would reasonably think so.

So when Oracle complains that Google 'stole' the Java API, what does that mean, that Google wrote their own implementation of Java, which can also compile and run the same Java source code that Oracle/Sun Java can? Or is this about how other languages (C++? Python? Javascript? Go?) might access Java-implemented capabilities through an inter-language interface?

Last edited by RubeRad; 04-09-21 at 01:33 PM.
RubeRad is offline  
Likes For RubeRad: