sábado, 27 de febrero de 2016

Tema 2: Lenguajes de programación y frameworks


Introducción

En esta entrada del blog voy a hablar sobre unos conceptos muy relacionados con el mundo de la informática: los lenguajes de programación y los frameworks

Lenguajes de programación

Los lenguajes de programación son herramientas que utilizan los programadores para crear software y existe un gran número de ellos.


Seleccionar los más característicos es una tarea compleja, puesto que su uso depende en gran medida del tipo de proyecto a realizar, las funcionalidades que tengan que implementarse… E incluso se puede realizar un proyecto utilizando diferentes lenguajes en diferentes módulos en función de las especificaciones.


¿Cómo tomar esta decisión?

Siguiendo la idea anterior, se debe escoger el lenguaje que mejor se adapte al tipo de aplicación a realizar y a sus funcionalidades, teniendo en cuenta una visión a futuro de la posible escalabilidad del sistema.


A continuación hablaré de lenguajes que se utilizan en diferentes ámbitos de programación.

Desarrollo de páginas Web Dinámicas: PHP



PHP es un lenguaje de programación de código abierto, es decir, de uso libre y gratuito, que fue originalmente diseñado para el desarrollo de páginas webs dinámicas y que puede ser introducido en HTML.
Además, con PHP se puede sacar gran partido a un servidor de bajo coste o modesto, siendo capaz de poder realizar millones de peticiones diarias.

Una de las características por la cual este lenguaje ha sido tan bien acogido por la comunidad de desarrolladores es su portabilidad, ya que puede ser utilizado en casi cualquier máquina sin necesidad de hacer ningún tipo de variación o modificación en el código.
Al tratarse de un lenguaje tan apreciado por su comunidad los nuevos desarrolladores pueden encontrar fácilmente material para el aprendizaje o resolución de errores.

Administración de base de datos: SQL



SQL(Structured Query Language) es un lenguaje de carácter declarativo el cual se encarga de describir el "que" se desea obtener a partir de la declaración de un conjunto de condiciones.

Este lenguaje ganó mucha popularidad debido a su sencillez y a la completitud que aportaba en un entorno de administración y gestión de los datos, permitiendo la utilización del algebra y el calculo relacional con el fin de crear consultas capaces de obtener de manera sencilla y rápida cierta información de interés procedente de una base de datos.


Además de poder realizar labores de búsqueda en una base de datos, el lenguaje SQL es capaz de realizar modificaciones de la estructura interna de la base de datos introduciendo únicamente sentencias de este lenguaje.


Debido a la importancia de este lenguaje, se han creado diversos de gestores de bases de datos entorno a este lenguaje como son SQLServer, PostgreSQL o MySQL



Elaboración de grandes proyectos: C++



C++ es un lenguaje hibrido o multiparadigma, ya que cumple labores de los paradigmas de programación estructurado (paradigma de programación utilizado para obtener una mejora en tanto en calidad, claridad como en tiempo de desarrollo de un programa, caracterizado por el uso subrutinas, sentencias, condiciones e iteraciones, y por evitar el uso de la sentencia GOTO) y del paradigma de programación orientado a objetos (paradigma basado en la utilización de objetos para el diseño de sus aplicaciones)

Sus principales características son:
Rapidez de aprendizaje: es un lenguaje bastante intuitivo por lo que la curva de aprendizaje se realiza de manera más rápida que otros
Funcionalidad: es un lenguaje amplio, que otorga al desarrollador las herramientas necesarias para elaborar la aplicación que el desee.
Gran similitud con otros lenguajes: Al poseer rasgos similares con otros lenguajes como PHP o Java, el conocimiento aprendido o la sintaxis utilizada es fácilmente reutilizable en otros lenguajes.


Frameworks


La labor del programador no solo reside en tener claro el tipo de aplicación que desee que crear y seleccionar un lenguaje acorde al proyecto que tenga que realizar, si no que va más allá, necesita elaborar una estructura mediante la cual crear el programa, para ello, se utilizan los patrones de diseño y frameworks.

Los patrones de diseño se encargan de identificar que clases y que objetos participan en la aplicación, así como sus papeles, comunicaciones, colaboraciones y distribución de responsabilidades que poseen dentro de dicha aplicación.

Los framework por otro lado, son un conjunto de clases que cooperan para formar un diseño especifico y reutilizable de un software. Ofrece una estructura partiendo del diseño de las clases abstractas y a partir de la definición de sus colaboraciones y responsabilidades.

El objetivo es que, mediante su uso, el desarrollo de las aplicaciones sea más simple mediante la automatización de patrones, estructuración de código fuente, encapsulando en instrucciones sencillas operaciones de mayor complejidad...

A continuación, algunos de los frameworks son: 

Spring


Spring es un framework de código abierto orientado a la creación de aplicaciones J2EE (Java 2 Enterprise Edition), y usa archivos con formato XML para la configuración y ficheros planos o Beans para la lógica de negocio de la aplicación.
Permite utilizar esta tecnología en los módulos de la aplicación que sean  necesarios.


Está orientado al método de programación de Inversión de Control, de tal manera que la interacción de componentes se realiza de manera imperativa y efectuando llamadas a las funciones o procedimientos necesarios, de tal manera que se establecen una serie de respuestas para determinadas solicitudes o sucesos y una arquitectura externa es la que se encarga de controlar de llevar a cabo las acciones necesarias.
De esta manera, Spring está basado en el uso de contenedores que gestionan las instancias de los objetos.


Symfony


Este framework desarrollado en PHP busca la optimización de la creación de aplicaciones web, separando la lógica de negocio, servidor y la capa de presentación de aplicación web (siguiendo el modelo vista controlador).

El modelo contiene la representación de la información, los datos de los que se va a servir la aplicación para operar con ellos.
Envía los datos a la vista mediante el controlador.

La vista es la interfaz con la que el usuario interactúa, por lo que mostrará la salida de los datos del sistema.

El controlador es el encargado de responder a los eventos, actuando de intermediario entre la vista y el modelo. 

Las herramientas de Symphony permiten generar código automático, ofrece un entorno de pruebas funcionales y unitarias, creación sencilla de plantillas, validación automática de formularios, reducción del ancho de banda mediante gestión de la caché...





Bibliografía

  • http://ocw.uoc.edu/computer-science-technology-and-multimedia/bases-de-datos/bases-de-datos/P06_M2109_02149.pdf
  • https://es.wikipedia.org/wiki/Programación_declarativa
  • http://aprenderaprogramar.es/index.php?option=com_content&view=article&id=492:ique-es-php-y-ipara-que-sirve-un-potente-lenguaje-de-programacion-para-crear-paginas-web-cu00803b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193
  • https://es.wikipedia.org/wiki/SQL
  • https://ramonmorillo.wordpress.com/2011/10/28/caracteristica-y-ventajas-de-sql/
  • http://www.tiobe.com/tiobe_index
  • http://www.juntadeandalucia.es/servicios/madeja/contenido/recurso/93
  • http://martinfowler.com/bliki/InversionOfControl.html
  • http://librosweb.es/libro/symfony_1_4/capitulo_1/symfony_en_pocas_palabras.html








No hay comentarios:

Publicar un comentario