BBVA API Market
Since the 1980s and the boom of information technology, when technology companies began to make the use of their software more restrictive, the number of licenses has multiplied exponentially. These licenses are basically a contract between the author of the program and the user which establishes the terms and clauses that have to be met in order to use the software.
In order to fully understand the different existing licenses, first we must distinguish their types. It is very important to differentiate between proprietary software and open source software. The first concept applies to any software whose use, redistribution or modification is prohibited or requires express permission of its owner.
Meanwhile, open source software refers to software which the user is free to use, copy, modify and distribute as he wants. Its potential is very large, as it allows millions of developers around the world to apply and expand the growth of these programmes, as the availability and global access to this type of free software allows the expansion of the knowledge invested in each of the pieces developed.
One of its major advantages is that it’s cheaper than proprietary software. Besides, the fact of being able to access the source code provides certain degree of technological independence to allow the development of your own version of the software.
Nevertheless, do not confuse open source software with free software, because the first one may be free or not but the user will always be able to use is as he wishes. However, free software or freeware, even though it is free of charge it has restricted licenses, which don’t allow the user to modify it as it happens with open source software.
Different types of licenses
Among the different types of open source licenses we can highlight the following:
GPL licenses: one of the most widely used, it is often referred to as GNU GPL. With this license the developer retains the copyright, but allows free distribution, modification and use of his creation as long as, in the event that the software is modified, the new software keeps the same license. Even if the GPL software is just part of another program, this program also has to maintain the license. It is considered the first copyleft license, and under this philosophy any source code under GPL license must be available and accessible for unlimited copies and to any person who requests it. For the end user, the software licensed under GPL is totally free, eventually only having to pay for copying and distribution costs.
AGPL license: it is included within the licenses to amend the copyright resulting from GNU. The novelty of AGPL is that besides the specific terms of GNU GPL, it requires that the software has to be intended to provide services through a network of computers. In other words: if you want to use it as part of the development of new software, this would be bound to its free distribution.
BSD license: this is a good example of a permissive license that imposes almost no conditions on what a user can do with the software. The software published under this license is the least restrictive for developers since, for example, it can be sold and there are no obligations to include the source code. In addition, a BSD-licensed application allows other versions to have other types of licenses, open source or proprietary. A good example of it is the popular Mac OS X operating system, developed under this license. BSD also allows to charge for the distribution of binary objects.
Apache license: the software under this license allows the user to distribute and modify it, but retaining the copyright and the disclaimer. The Apache license does not require derivative works (modified versions) to be distributed using the same license, not even as open source software; it only requires that recipients are informed that code under Apache license has been used. In this sense, when creating new software developers have to include two files in the root directory of the redistributed software packages: a copy of the license and a text document that includes the required notices of the software included in the distribution.
Creative Commons licenses: they are based on four conditions:
· ‘attribution‘, with which you can distribute, exhibit, perform… provided you recognize and cite the author.
· ‘no trade‘, which does not allow to use the software for commercial purposes.
· ‘no derivation‘, with which you cannot modify that work.
· ‘share alike‘, which includes the creation of derivative works provided that they keep the original license.
Under the Creative Commons umbrella there are other licenses, which differ from each other according to the combination of the four above mentioned conditions.
With these licenses the developer has the possibility to choose the option that is more convenient for his work. This decision entails waiving some rights inherent in copyright, such as the right of reproduction and the right of transformation, which on the other hand can contribute to the dissemination of the developer’s work and allow the right of access by the public to his works.
In a connected world, APIs are the glue that keeps all the parts that form our day-to-day lives in place. The same way the power of glue depends on the material it is used on and the knowledge of its properties, APIs are only as useful as their documentation allows for.
App users must be aware that a button... is in fact a clickable button. Therefore, app buttons must be designed in such a way that users should feel invited to interact with the interface and actually click on it.
Groovy is a pretty interesting programming language for Java developers, as it has become a perfect complement for this general purpose syntax. As a matter of fact, Groovy introduces interesting features to get where Java cannot.