Los programadores que quieren crear una aplicación no parten de cero: utilizan ‘piezas’ ya programadas llamadas API.
Una persona con suficientes conocimientos de mecánica puede construir su propio coche. Sin embargo, no es normal que funda su propio acero para la chapa, tornee a mano las piezas para el carburador o los cilindros, y vulcanice el caucho para las ruedas en su garaje. Lo más común es que compre las piezas ya fabricadas.
En informática pasa algo parecido. Los programadores y empresas de software que quieren crear una aplicación no parten de cero. Utilizan ‘piezas’ ya programadas llamadas API. Por ejemplo, si alguien quiere desarrollar un nuevo programa para Windows, debe utilizar un API llamada Win32. Si se trata de crear un videojuego para un teléfono móvil, necesitará el API de Nokia, Motorola o el fabricante de turno.
Funciones instantáneas
Las siglas API significan ‘Appligation Programming Interface’, o interfaz de programación de aplicaciones. Es decir, un programa o código para crear otros programas.
Por ejemplo, los programas en Windows se basan en el uso de ventanas. Pero los programadores no necesitan programar el código para dibujar una ventana en pantalla: una línea gris, una banda azul, un botón en la esquina, etc. Tampoco necesitan programar el funcionamiento de la ventana para que se pueda arrastrar a otro lugar, cambiar su tamaño, minimizar o cerrar. Simplemente utilizan una función llamada ‘CreateWindowEx’ en la API de Windows y la ventana ya funciona.
En una API hay otras muchas funciones útiles para poner en un determinado programa, o sistema, iconos, ocupar y liberar la memoria RAM (muy importante para que no haya errores), detectar los movimientos del ratón o las pulsaciones del teclado, conectarse a una red o enviar datos a una impresora.
En la mayoría de los casos las API están incluidas dentro de un ‘Software Development Kit’, un conjunto de herramientas destinadas a facilitar a los programadores la creación de aplicaciones
También hay API específicas para videojuegos. Aquí las funciones pueden ser más sofisticadas: para que un personaje salte, corra o recoja un objeto. En la mayoría de los casos las API están incluidas dentro de un SDK, ‘Software Development Kit’, un conjunto de herramientas y programas destinados a facilitar a los programadores la creación de aplicaciones para el programa al que se desea enriquecer.
Una caja de herramientas
No se debe confundir una API con un controlador o ‘driver’ de un dispositivo. Por ejemplo, en una API puede haber una función para cambiar la orientación del papel a la hora de imprimir de vertical a apaisado, pero es el controlador el que se encarga de transmitir el código adecuado a la impresora para que imprima en un sentido u otro.
Tampoco debe confundirse API con código fuente. El código fuente describe cómo funciona todo el sistema operativo, algo que se puede saber de Linux (código abierto) pero no de Windows (código propietario). Una API sólo proporciona controles para que el sistema operativo haga determinadas cosas.
La llamada de la API
Pero ¿por qué facilitar la tarea al programador? Desde el punto de vista del fabricante del sistema operativo, como por ejemplo Microsoft, los beneficios son muchos. Si otras empresas fabrican programas atractivos para Windows, los usuarios comprarán más copias de Windows y más fabricantes de ordenadores venderán sus máquinas con Windows preinstalado.
Sony sólo reveló la API de PlayStation 2 a determinadas empresas de videojuegos a las que les cobraba una licencia
La API de Windows está disponible gratuitamente, lo cual permite que haya emuladores de Windows para Linux como Wine, que permite ejecutar programas de Windows en el sistema operativo libre. Por supuesto, en Linux, todo el código, no sólo la API, está abierto.
Otras empresas son más reservadas. Por ejemplo, Sony sólo reveló la API de PlayStation 2 a determinadas empresas de videojuegos a las que les cobraba una licencia. A Sony no le interesaba que cualquiera pudiera programar un juego para PS2, ya que vende las consolas por debajo del coste y sus ingresos provienen sobre todo de las licencias de la API. En cambio, la API de PlayStation 3 es abierta.
Una de las demandas contra Microsoft en sus múltiples juicios es que oculta partes de las API de sus programas a las demás empresas. Por ejemplo, en el campo de la ofimática, Microsoft se resite a liberar la API ‘Open XMl’. Esta empresa no sólo fabrica el sistema operativo Windows, sino también programas propios, especialmente ‘Office’, su ‘suite’ (paquete de programas) de ofimática que compite, y con mucha ventaja, con ‘suites’ gratuitas como ‘OpenOffice’.
Al no liberar Microsoft el código por completo, algunos de los formatos con que trabaja ‘OpenOffice’ (.ODT, .OTT…) no se pueden compatibilizar con los de ‘Microsoft Office’ (.DOC, .XLS…). La incompatibilidad entre formatos de distintas ‘suites’ obliga a muchas adminsitraciones a trabajar con ‘Office’ a pesar de que es de pago y, por lo tanto, encarece notablemente los proyectos de informatización de las instituciones públicas, por ejemplo. Pero como desde un principio se instaló en muchas oficinas, se le ha considerado hasta ahora el ‘formato estándar’ para evitar problemas de incopatibilidades.
La incompatibilidad entre formatos de distintas ‘suites’ obliga a muchas adminsitraciones a trabajar con ‘Microsoft Office’ a pesar de que es de pago
Hace pocos días, sin embargo, la Organización Internacional para la Estadarización (ISO en sus siglas en inglés) concedió a ‘OpenDocument’ (.ODF, que incluye a los formatos de texto .ODT y .OTT entre otros) la categoría de estándar ISO 26300, una certificación que no poseen los formatos de Microsoft. Esto supone su validez como formato de uso en proyectos empresariales y para administraciones. La utilización de ‘OpenDocument’ abaratará dichos proyectos, por lo lo que se supone que se generará una presión muy fuerte sobre Microsoft para que libere el API que da la compatibilidad directa con ‘OpenDocument.
Si bien es cierto que ‘OpenOffice’ tiene una función para transformar los formatos .ODF a formatos de ‘Microsoft Office’ y otros, se espera que se pueda producir desde Windows la transformación directa cuando Microsoft libere su API. Microsoft ha llegado a acuerdos con los demandantes en EEUU, pero todavía se enfrenta a cargos parecidos ante la Comisión Europea.