Showing posts with label business. Show all posts
Showing posts with label business. Show all posts

Friday, May 9, 2014

Copyright on APIs is a bad idea.

If you have not heard yet, there has been a change in the Google Vs Oracle case. The original ruling that an API could not be copyrighted has been reversed. In essence it means that a company can release a description of a set of functions that they provide for developers, and no one is allowed to create an alternative implementation of those functions without permission.

To understand what this means to the future of software engineering you need to understand two things.

1) APIs are not complex pieces of code (which are and should be subject to copyright). They are very simple descriptions of what a piece of code will do and how to make it do it. 

In essence a single API is just one word (the name of the function) and a list of pieces data that should be given to it. it then specifies what will happen and the data that will be returned. An API is not its implementation, it is a high level description of what an implementation should do.

It is equivalent to me copyrighting the sentence 
"I am going to the shop, do you want anything?" 
When it is combined with the reply 
"Yes, some milk." 

It is really that simple. Imagine if novelists needed to pay a fee when they used that combination of sentences. Of course they could use "I will go to the shop, do you need me to get something?" Or whatever other variant they need to produce in order to avoid infringing. But suggesting those sidesteps misses the point of copyright. Such small atomic combinations of the basic elements of a language are not significant pieces of work. They are not what copyright laws are designed to protect.

2) Secondly you need to understand the purpose of APIs. They exist so that software programs are easier to write and easier to make communicate with each other. Their purpose is to let one programmer know how to interface with software written by someone else, someone they may have never met, and yet have it function perfectly. The API is a simple contract that says if you want my code to do this, this is how you make it happen.

Another advantage of APIs (well used by software developers everywhere) is that if there are multiple competing programs that do the same thing, then if they all use the same API a software developer can switch between them (almost) effortlessly.

If you are ever frustrated by software not working, Internet sites being unable to perform some task, apps not working on your phone, then I have some bad news for you. If copyrightable APIs become the legal norm, then everything will get much, much worse. Start-up companies and device manufacturers alike will need to protect themselves by ensuring that their APIs are unique and not infringing any one else's copyright. In order to make software that is compatible with something else there will need to be long term financial agreements in place. This will mean that the number of things (devices and programs) that just work together will begin to decrease.

The economic impact is the creation of significant barriers to entry for new technology companies. For the simple reason you cannot create some great new product that will work with products people already have without infringing copyright. Consequently many technical product possibilities will not be explored because of their legal risk. In general copyright on APIs will result in an overall reduction in the pace of innovation.

To you as a consumer it will mean less things will just work out of the box together. It will mean that if you want devices and software to work with each other, then you will need to buy them all from the same vendor. This will be good for the large incumbents in the market place, but for consumers it is very bad. 

The sad truth is that if this ruling is upheld you can look forward to less choice and less functionality in your digital world.


Wednesday, May 16, 2012

Search on Facebook, if you enjoy frustration

If you had a large successful internet company whose only asset was the attention spans of its users, you would think that you might put some effort into making sure that people could find what they were looking for. Not so with our benevolent masters at facebook.

At facebook search is an after-thought, just a text box to help people find other people, but not much else.

I have lost count of the number of times that I have seen an interesting post and thought "I will come back to that." When I do try and come back to it, it is lost thousands of posts back in my feed, and if I don't remember who posted it then I have no chance of finding it. A fully functioning search would be really handy here: but no, the search function appears to be completely uncorrelated from my feed. "Hang on!" you should be screaming, isn't that what facebook is supposed to offer, and internet that is improved by our social network?

Nope, not so with search.

Nor with events. If you search for an event with certain key words, there was a time when facebook only returned events that had passed. This appears to have changed, but nonetheless, if you don't accept an invitation to an event immediately, good luck finding it later. Yesterday I had two facebook tabs open, in one of them I had an event I was interested in going to, in the other tab I tried the facebook event search using the EXACT name of the event: and nothing appeared in the search results.

What makes this all the more puzzling is that the company that is the absolute king of search has been developing a product to rival facebook. At the same time facebook has done nothing to improve its challenge to Google: Social Search.

The only thing that seems to make sense is that perhaps facebook is relying on Bing to fill that gap for them, to make their feed of frivolity useful through search. If they don't, then I would not want to be one of the people putting out 100 billion dollars for facebook this week.