domingo, 8 de diciembre de 2019

Librerías

Qué son las librerías o bibliotecas

Una librería es un conjunto de recursos (algoritmos) prefabricados, que pueden ser utilizados por el programador para realizar determinadas operaciones. Las declaraciones de las funciones utilizadas en estas librerías, junto con algunas macros y constantes predefinidas que facilitan su utilización, se agrupan en ficheros de nombres conocidos que suelen encontrarse en sitios predefinidos.
Son un conjunto de instrucciones que realiza funciones básicas como leer, escribir en pantalla, trabajar números y funciones matemáticas, manejo de memoria, entre otros. Reducen la cantidad de instrucciones de un programa. Cada librería está delimitada por el trabajo que desempeñará y cada lenguaje de programación tiene sus propias librerías que deben ser escritas al inicio de la redacción de un programa. Algunas están ligadas, por lo que es necesario conocer las más relevantes para el lenguaje elegido.

Por ejemplo, en los sistemas UNIX, en  /usr/include. Estos ficheros se suelen llamar "de cabecera", porque es tradición utilizar las primeras líneas del programa para poner las directivas #include que los incluirá en el fuente durante la fase de preprocesado.

Tipos de liberías

Dentro de los tipos de librerías encontramos las librerías estáticas y dinámicas.  Las estáticas se caracterizan por unirse al programa una vez que se escriben y se compilan en un lenguaje de programación, por lo que se puede usar en cualquier máquina, sin embargo, vuelve al programa ejecutable mucho más pesado.  Las dinámicas se deben compilar cada vez que sean llamadas y, si se pretenden usar en otra máquina, se debe cargar y compilar nuevamente; pero su programa ejecutable será mucho más pequeño.
Además de las librerías internas de cada lenguaje se pueden crear otras externas con el mismo propósito. Estas son las librerías externas y se pueden definir como:
Un archivo (o a veces varios) que está fabricado por expertos programadores, y que no sólo vale para un caso concreto, sino que podemos utilizar de forma general. La utilización de nuevos objetos, métodos, y propiedades puede variar la forma de programar el resto del código, ya que éstos afectan a la mayoría de las acciones que pueden realizarse. Además podemos realizar acciones que de otro modo los resultarían muy complicadas utilizando sólo el código de programación.

Librerías más utilizadas en Python
Pygame
Pygame es una librería de código abierto la cual nos permite crear aplicaciones multimedia. Aunque su principal enfoque es crear videojuegos, nosotros podemos dejar aun lado esto y realizar otro tipo de aplicaciones, aplicaciones donde necesitemos trabajar con imágenes, animaciones, música, texto, eventos, tanto del teclado como del mouse, entre otros.

Request
Request es una librería que nos permite realizar peticiones HTTP sin muchas complicaciones. Extremadamente útil cuando de consumir servicios web se refiere.
En este ejemplo sencillo:


Pillow
Pillow o PIL (Python Image Library) me atrevería a decir que es la librería más popular de este listado. Con esta librería podemos trabajar con imágenes de una forma muy sencilla.
A continuación un pequeño ejemplo:


SqlAlchemy
SqlAlchemy es una librería la cual nos permite trabajar con las bases de datos mediante objetos, es decir, es un ORM.
Peewee
Al igual que sqlAlchemy, Peewee es un ORM que nos permite trabajar con diferentes de gestores de base de datos. Destacando Postgres, MySQL y SQLite.
RE
A Diferencia de las librerías mencionadas anteriormente, re no necesita instalación alguna, ya que esta, se encuentra lista para ser usada con un simple import, claro, siempre y cuando hayas instalado Python.
Collections
Al igual que re, collections es una librería la cual ya se encuentra lista para usar. Esta librería nos permite trabajar con listas, tuplas, diccionarios entre otras estructuras de datos.

Incluir las librerías al momento de codificar nos facilita el hecho de programar, mediante funciones o métodos que simplifiquen tareas complejas sin necesidad de alterar la estructura del código. Esta herramienta se ha vuelto muy importante en la actualidad, por la facilidad que presenta al momento de usarla y la utilidad que muestran algunas de ellas, por esto, los programadores en general las emplean en el desarrollo de proyectos y por ende es importante destacar su aplicación.


27 comentarios:

  1. Bueno, ustedes mencionan que las librerías son importantes para la creación de los programas lo cuál es verdadero puesto a que éstas generan una base de información que permitirán la realización y ejecución de ciertos métodos u operaciones que necesitemos llevar a cabo en cada proyecto de software que tengamos como ingenieros.

    ResponderBorrar
  2. Hola chicos tengo una duda, si los programadores pueden crear sus propias librerías (liberias externas) para determinados lenguajes, estas pueden trasladarse para ser usadas en otros lenguajes ? o se tiene que crear desde cero nuevamente? Lo digo en el caso de que una empresa decida cambiar el lenguaje con el que trabaja en backend

    ResponderBorrar
    Respuestas
    1. Puedes escribir librerías en un lenguaje, para ser utilizadas en otros lenguajes, pero si escribes una librería específicamente para un solo lenguaje, dependiendo de cual sea, puede ser suficiente hacer algunas modificaciones o será necesario crearlas nuevamente.

      Borrar
  3. Observando otras publicaciones referentes a esta unidad de estudio, note algo muy curioso, donde decían que una librería también era llamada framework, ¿desde su punto de vista, cuál es su diferencia o por qué creen que hacen este tipo de analogías?

    ResponderBorrar
    Respuestas
    1. Los framewrok y librerías tienen diferencias bien marcadas, el Framework, como su nombre indica, es un marco de trabajo, una metodología, define la estructura para realizar una aplicación o programa específico, para esto se ayuda de herramientas, como lo son las librerías. Su objetivo es desarrollar un tipo especifico de aplicaciones con mayor facilidad. Ahora bien, las librerías constituyen un conjunto de código que ayuda a resolver situaciones más específicas y no define una estructura o modelo para programar un tipo de aplicación determinada. Estos términos suelen ser confundidos por personas que están iniciando en el mundo de la programación, pues son herramientas que nos ayudan a programar de forma más eficiente.

      Borrar
  4. Muy buena información, lo que acotaría seria que una biblioteca o libreria puede requerir de otra para funcionar, ya que el comportamiento de la principal puede ser complementado por otra para su mayor eficacia. Desde mi punto de vista es más recomendable hacer uso de un enlace dinámico a la hora de programar y usar las librerías, ya que no solo permite reutilizar el código si no también espacio físico.

    ResponderBorrar
  5. Las librerías son esos archivos que permiten al programador tener muchas funcionalidades en el momento del desarrollo del código, lo cuales ayudan a tener código mas limpio y reutilizable, mi duda es ¿ un exceso de utilización de librerías en el desarrollo del software puede convertir en un problema?

    ResponderBorrar
    Respuestas
    1. El uso de demasiadas librerías puede llegar a causar problemas, como conflictos de dependencia, que son difíciles de identificar y solucionar. Así como un número excesivo de bibliotecas aumentará el tamaño y consumo de memoria. A su vez, esto afectará negativamente el rendimiento de la aplicación.

      Borrar
  6. Las librerías juegan un papel importante en lo que seria el desarrollo de cualquier proyecto, es indispensable su uso, puesto que contienen todas estas características referentes a operaciones, el uso de funciones o comandos necesarios para llegar a realizar algún proceso en especifico. Lo interesante de las librerías hoy en día es la capacidad que están adaptando los programadores para que cada una de estas puedan ser reconocidas y ejecutadas en cualquier lenguaje en el que se desee implementar.

    ResponderBorrar
  7. Una ventaja de estas librería es que muchas veces, además de ayudarnos agilizando el proceso de desarrollo, tienen la particularidad de poder estudiarlas y revisar la forma como han resuelto ciertos obstáculos otros desarrollos lo que a su vez ayuda a expandir tu propia lógica.

    ResponderBorrar
  8. Hola, ustedes hacen mención de los tipos de librerías estáticas y dinámicas y me gustaría saber ¿cual es mas recomendable de utilizar entre esas dos?, así como también si solo son dos tipos o existen mas.

    ResponderBorrar
    Respuestas
    1. Para programas no tan grandes y por simplicidad, podemos recomendar el uso de librerías estáticas, esto porque se encuentran dentro del ejecutable y son mas rápidos en la ejecución, ademas podemos llevarla a otro ordenador. En cuanto a las librerías dinámicas son mas recomendables para programas grandes, ya que el uso de estas vuelven el ejecutable mas ligero. Dentro de esta clasificación no existen mas tipos de librerías

      Borrar
  9. La programación es de ingenio, y si algo no existe o no te funciona, pues lo creas; y las librerías son un ejemplo de ello. Los lenguajes de programación no te restringen en el uso exclusivo de sus librerías, mas bien si esas librerías no cubren todas las necesidades del software, brinda la oportunidad de que el programador pueda crearlas en el lenguaje que esté usando, e incluir el archivo en este y futuros softwares.

    ResponderBorrar
  10. Las librerías sin duda es una de las base que forma la programación. ¿Quienes son los creadores de estas librerias? ¿Existen modelos de programas que aun no se puedan realizar con las librerias existente?

    ResponderBorrar
    Respuestas
    1. Los creadores de librerías suelen ser programadores que se consiguen con una carencia y buscan cubrir estas necesidades de código. Al principio pueden comenzar solos, pero pueden llegar a convertirse en una comunidad. El avance constante de la tecnología nos obliga innovar y las creaciones de nuevos programas se hace mas común, esto implica la creación de nuevas librerías que se adapten a estas nuevas aplicaciones.

      Borrar
  11. Hola chicos! ¿Cómo podríamos saber o diferenciar en qué proyectos es más recomendable utilizar librerías? En lugar de otro tipo de herramientas que también estén a nuestro alcance.

    ResponderBorrar
    Respuestas
    1. Es cuestión de investigar todas las herramientas que están a nuestra disposición y evaluar cuál se adapta mejor a nuestras necesidades. Pero en general, las librerías estándar están presentes en el desarrollo de aplicaciones.

      Borrar
  12. Para muchos el tema de librerías puede sonar aburrido,pero las librerías son elementos esenciales de la programación que nos facilitan enormemente el trabajo a la hora de realizar un proyecto de desarrollo de software ya que estos archivos permiten hacer nuestros propios programas más modulares y reutilizables. También es importante resaltar que antes de hablar de librerías es necesario dominar conceptos como:ciclos y condicionales.

    ResponderBorrar
  13. muchas veces al realizar proyectos elijemos librerías por necesidad y no por eficiencia, siempre es recomendable evaluar bien las liberias vamos a usar en nuestro proyecto,porque pueden existir 100 librerias que realicen el trabajo que necesito pero cual es la mas optima.siempre se deberia tomar en cuenta este factor.

    ResponderBorrar
  14. El uso de las librerías puede ser de gran ayuda, debido a que una librería es mucho más sencillo de implementar en nuestro proyecto (solo hace falta referenciarla y usarla) ya que todo está hecho, es muy raro tener una librería incompleta y la variedad de librerías existentes es bastante extensa.

    ResponderBorrar
  15. ¿Qué librerías consideran que pueden llegar a utilizar para la realización de su proyecto en áreas?

    ResponderBorrar
    Respuestas
    1. Como proyecto estamos desarrollando una aplicación web con el lenguaje de programación Python, en donde utilizamos el framework Django como entorno de desarrollo, para esto, estamos utilizando tanto las librerías estandar de python como las de Django. A medida que sigamos avanzando con el proyecto se estudiara si se requieren otras librerías.

      Borrar
  16. Buenas mi duda es la siguiente; ¿Que desventajas podría traer el uso de librerías durante el desarrollo de una aplicación?

    ResponderBorrar
    Respuestas
    1. En la etapa de desarrollo de una aplicación, las librerías nos pueden facilitar mucho la codificación. El uso de las librerías estándar no nos debe representar ningún problema. En cuanto a las librerías de terceros, si en algún momento nos vemos obligados a cambiar de biblioteca, es posible que el código tenga que sufrir cambios significativos para adaptarlo a la nueva librería.

      Borrar
  17. Puede existir la posibilidad de que al usar una libreria en vez de tener algún beneficio me genere una problemática?

    ResponderBorrar
    Respuestas
    1. Sí es posible, aparte del problema de exceso de librería mencionado anteriormente, otro posible riesgo es que una biblioteca pueda ser abandonada por su autor, esto es especialmente problemático en plataformas que se actualizan con frecuencia, ya que las librerías también precisan actualizaciones. Aparte el uso de bibliotecas externas puede plantear algunas preocupaciones de seguridad ya que las vulnerabilidades en las bibliotecas de código abierto son cada vez más objetivos para los piratas informáticos.

      Borrar
  18. Excelente información. Ahora bien, las librerías como sabemos proveen funcionalidades comunes, que ya han sido resueltas por otros programadores, lo cual impide la duplicidad de código. Esto permite guiarnos más en el funcionamiento de la aplicación y no en cómo llevarla a cabo, ahorrándonos tiempo. Las librerías tienen muchas ventajas, como la agilidad y rapidez en el desarrollo y organización del código predeterminada. Sin embargo, se encuentra limitada por desventajas como tiempo de aprendizaje lo cual implica invertir tiempo para familiarizar y conocer cómo se estructuran sus archivos y en la forma en la que se comunican los componentes, además de las versiones inestables provocando que estén en constante actualización para cumplir con las nuevas tecnologías y las nuevas políticas de seguridad.

    ResponderBorrar