programacion-que-es-una-biblioteca

Qué es y cómo usar una biblioteca

Una biblioteca es un conjunto de código ya escrito, que guardas todo juntito para que puedas puedas usarlo y reusarlo en tu programa.

Imagina que cada vez que quisieras usar una función tuvieras que reescribirla desde cero. Bueno… programar sería un ejercicio muy duro de reinventar la rueda una y otra vez.

Para evitar esto existen las bibliotecas. Simplemente son colección de fragmentos de código que guardamos agrupadas para que puedas reusarlas. De esta forma te ahorras el tiempo de volverlas a crear.

programacion-que-es-una-biblioteca

Una biblioteca es donde guardas tu código

Las bibliotecas se llaman así porque son como una “sitio” donde guardas tus fragmentos de código, bien organizaditos, como haces con los libros en una biblioteca.

Frecuentemente a las bibliotecas se les llama librerías, por similitud con “library” en inglés. En realidad está mal dicho y hay gente muy radical con esto. Pero no os deis demasiado mal por eso, nos pasa a todos.

Si lo prefieres puedes pensar en ellas como una caja de herramientas en las que guardas códigos útiles, ya sean tuyos o de otras personas. Luego puedes abrir la caja, sacar las herramientas que necesitas y usarlas cuando quieras.

Las bibliotecas pueden:

  • Internas, escritas por ti mismo o por un compañero de trabajo
  • Open Source, de código abierto escritas por la comunidad
  • De terceros, generalmente de pago

Cuando quieras utilizar una biblioteca o librería, primero debes incorporarla a tu proyecto. Luego, puedes llamar a las funciones y utilizar los objetos y clases que se han definido en la biblioteca o librería para realizar tareas específicas en tu programa.

De hecho, actualmente sería imposible realizar un programa sin emplear bibliotecas. Siempre vas a usarlas, aunque sean las de el propio lenguaje, o incluso las del sistema operativo.

Ejemplos de bibliotecas en distintos lenguajes

Supongamos que tenemos una biblioteca con funciones matemáticas, que son de gran utilidad para ti. Para este ejemplo vamos a suponer que son funciones que te has hecho tú y, lógicamente, quieres poder reusarlas en tus programas.

Vamos a mantener el ejemplo sencillito, así que únicamente tendremos dos funciones en tu super librería matemática.

  • Sumar
  • Restar

Veamos como podríamos definir tu biblioteca de funciones matemáticas en distintos lenguajes de programación.

Crear una biblioteca en C# es muy sencillo gracias al uso de Ensamblados y namespaces. Por ejemplo, creamos un nuevo fichero que contenga el namespace MiLibreriaMatematica.

Dentro de este, crearíamos una clase pública que contendrá las funciones de suma y resta. Puedes llamarla, por ejemplo, OperacionesMatematicas.

using System;

namespace MiLibreriaMatematica
{
    public class OperacionesMatematicas
    {
        public static int Sumar(int a, int b)
        {
            return a + b;
        }

        public static int Restar(int a, int b)
        {
            return a - b;
        }
    }
}

Ahora, desde nuestro programa podemos importar nuestra librería usando la palabra using

using System;
using MiLibreriaMatematica;

namespace MiProyecto
{
    class Program
    {
        static void Main()
        {
            int resultadoSuma = OperacionesMatematicas.Sumar(5, 3);
            int resultadoResta = OperacionesMatematicas.Restar(10, 6);

            Console.WriteLine("Resultado de la suma: " + resultadoSuma);
            Console.WriteLine("Resultado de la resta: " + resultadoResta);
        }
    }
}

En C++ podemos organizar las funciones en bibliotecas mediante los archivo de encabezado (.h) y archivo de implementación (.cpp).

Por ejemplo, crearíamos un fichero de cabecera llamado operaciones_matematicas.h

#ifndef OPERACIONES_MATEMATICAS_H
#define OPERACIONES_MATEMATICAS_H

// Función para sumar dos números enteros
int sumar(int a, int b);

// Función para restar dos números enteros
int restar(int a, int b);
#endif

Y un fichero operaciones_matematicas.cpp que implementaría las funciones

// operaciones_matematicas.cpp

#include "operaciones_matematicas.h"

// Implementación de la función para sumar
int sumar(int a, int b) {
    return a + b;
}

// Implementación de la función para restar
int restar(int a, int b) {
    return a - b;
}

Ahora, desde nuestro fichero podríamos incluir nuestra biblioteca de funciones matemáticas añadiendo el fichero de cabecera operaciones_matematicas.h

// main.cpp

#include <iostream>
#include "operaciones_matematicas.h"

int main() {
    // Ejemplo de uso de las funciones
    int resultado_suma = sumar(5, 3);
    int resultado_resta = restar(10, 6);

    std::cout << "Resultado de la suma: " << resultado_suma << std::endl;
    std::cout << "Resultado de la resta: " << resultado_resta << std::endl;

    return 0;
}

En JavaScript podemos crear módulos, proporcionados por el estándar ECMAScript (ES6), utilizando las palabras clave export e import.

Por ejemplo, podemos crear un fichero llamado operacionesMatematicas.js

// Función para sumar dos números enteros
export function sumar(a, b) {
  return a + b;
}

// Función para restar dos números enteros
export function restar(a, b) {
  return a - b;
}

Luego, en otro archivo JavaScript, podríamos importar el módulo y usar sus funciones

// Importar las funciones del módulo operacionesMatematicas.js
import { sumar, restar } from './operacionesMatematicas.js';

// Ejemplo de uso de las funciones
const resultadoSuma = sumar(5, 3);
const resultadoResta = restar(10, 6);

console.log("Resultado de la suma: " + resultadoSuma);
console.log("Resultado de la resta: " + resultadoResta);

En Python también podemos organizar las funciones en módulos. Por ejemplo, crearíamos un archivo llamado operaciones_matematicas.py

# Función para sumar dos números enteros
def sumar(a, b):
    return a + b

# Función para restar dos números enteros
def restar(a, b):
    return a - b

Luego, en otro archivo Python, podríamos importar las funciones con import

# Importar las funciones del módulo operaciones_matematicas.py
from operaciones_matematicas import sumar, restar

# Ejemplo de uso de las funciones
resultado_suma = sumar(5, 3)
resultado_resta = restar(10, 6)

print("Resultado de la suma:", resultado_suma)
print("Resultado de la resta:", resultado_resta)

Para que funcione, únicamente es necesario que ambos ficheros estén en el mismo directorio (o en un directorio que Python pueda encontrar).

Si en alguno de los ejemplos te has perdido un poco, no te preocupes. La sintaxis de cada lenguaje, en esta entrada, nos da un poco igual. Ya veras los detalles cuando estudies cada uno de los lenguajes.

Lo que sí es importante es que veamos que prácticamente todos los lenguajes permiten crear librerías e importarlas en otros proyectos para usar las funciones.