0% encontró este documento útil (0 votos)
102 vistas9 páginas

Origen de La Meta Programación

1) La metaprogramación consiste en escribir programas que generan u manipulan otros programas. Un ejemplo es un script de Bash que genera un programa con múltiples líneas de código. 2) Los frameworks más populares actualmente incluyen React, Vue.js, Angular, Spring y Django. 3) Spring es un marco web principal de Java que superó las limitaciones de J2EE al ser más ligero y flexible.

Cargado por

Carlos Mota
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
102 vistas9 páginas

Origen de La Meta Programación

1) La metaprogramación consiste en escribir programas que generan u manipulan otros programas. Un ejemplo es un script de Bash que genera un programa con múltiples líneas de código. 2) Los frameworks más populares actualmente incluyen React, Vue.js, Angular, Spring y Django. 3) Spring es un marco web principal de Java que superó las limitaciones de J2EE al ser más ligero y flexible.

Cargado por

Carlos Mota
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

Origen de la Meta programación

La metaprogramación consiste en escribir programas que escriben o manipulan otros programas


(o a sí mismos) como datos, o que hacen en tiempo de compilación parte del trabajo que, de otra
forma, se haría en tiempo de ejecución. Esto permite al programador ahorrar tiempo en la
producción de código.
Un ejemplo sencillo de un metaprograma sería este script de Bash:

#!/bin/bash
# metaprogram
echo '#!/bin/bash' >program
for ((I=1; I<=992; I++)); do
echo "echo $I" >>program
done
chmod +x program

La Programación por metas (abreviada PM) apareció originalmente en un artículo de Charnes,


Cooper y Ferguson en 1955 (Romero, 2002). Como se explicó anteriormente, se utiliza cuando
existen varios objetivos o metas y se desea una solución satisfactoria y suficiente (satisfaciente).
En que consiste el catálogo de un sistema.

Un catálogo del sistema es un grupo de tablas y vistas que incorporan detalles vitales sobre una
base de datos. Cada base de datos compuesta por un catálogo del sistema y la información en el
catálogo del sistema especifica el marco de la base de datos.

Por ejemplo, el lenguaje de diccionario de datos (DDL) para cada tabla en la base de datos se
guarda en el catálogo del sistema.

ORM y framework más posicionados del momento


Tradicionalmente, para realizar acceso a datos desde un lenguaje orientado a objetos (POO) como
pueden ser .NET o Java, era necesario mezclar código y conceptos muy diferentes.
Por un lado, teníamos la aplicación en sí, escrita en alguno de estos lenguajes como C# o Java.
Dentro de este programa hacíamos uso de ciertos objetos especializados en conectarse con bases
de datos y lanzar consultas contra ellas. Estos objetos de tipo Connection, Query y similares, eran
en realidad conceptos de la base de datos llevados a un programa orientado a objetos que no
tenía nada que ver con ellos. Finalmente, para lanzar consultas (tanto de obtención de datos como
de modificación o de gestión) se introducían instrucciones en lenguaje SQL, en forma de cadenas
de texto, a través de estos objetos.

Los frameworks de desarrollo presentados como nunca; React, Vue.js, Angular, Spring, Django,
Ruby on Rails, ASP.NET Core, Flask, Express.js, Laravel
Hay muchos frameworks de desarrollo web en el mercado. Elegir los frameworks de desarrollo
adecuados es tarea compleja y delicada. Si es una empresa, elija frameworks de desarrollo que se
mantengan durante los próximos 5 años y que se ajusten a los recursos y objetivos de su empresa.
Si es un desarrollador en busca de trabajo, elija un marco de alta demanda en el mercado laboral y
se ajuste a su perfil.

Aquí, en este artículo, enumeraré 10 frameworks de desarrollo de este tipo para empresas y
desarrolladores. Estos serán los criterios para elegir el marco de desarrollo web:

 Mainstream y bien adaptado en la industria.


 Muy popular con una popularidad estable o en aumento.
 Tienen demanda en el mercado laboral.
 No son un marco heredado (por ejemplo, jQuery) o no están en modo de mantenimiento
(por ejemplo, ASP.NET, AngularJS).

Para encontrar la popularidad de los frameworks de desarrollo, implementamos datos de fuentes


confiables (GitHub, StackOverflow Developer Survey). Para encontrar la demanda del mercado
laboral, he utilizado los datos del motor de búsqueda de empleo de Indeed (solo para EE. UU.).

1. React

En los últimos años, los frameworks web del lado del cliente basados en JavaScript están
dominando el desarrollo web. Si bien React no es el primero, es el más popular y disruptivo entre
ellos. Facebook ha desarrollado React como una simple biblioteca de JavaScript para implementar
la capa de vista de la Web de una manera basada en componentes y se lanzó en 2013. También
difería del framework de JavaScript existente ya que defendía el enlace de datos unidireccional. En
poco tiempo, React se volvió abrumadoramente popular entre empresas y desarrolladores. Hoy en
día, es el framework web líder en el lado del cliente.
Características principales:

React core es solo una biblioteca sin comentarios que implementa la capa de vista para la interfaz
de usuario. En el desarrollo de aplicaciones, se utiliza con otras bibliotecas de React Ecosystem para
el desarrollo de aplicaciones de un extremo a otro.

Tiene el lema “Aprenda una vez, escriba en cualquier lugar”, ya que los ingenieros de software
pueden usar React para desarrollar aplicaciones para cualquier tipo de interfaz de usuario, por
ejemplo, web, móvil, escritorio o incluso para Smart TV.

Entre todos los marcos web del lado del cliente, React ofrece la mejor representación del lado del
servidor con un excelente soporte de SEO.

Facebook está desarrollando activamente React y poniendo su peso detrás de él. Como resultado,
las funciones de React se prueban con 2.700 millones de usuarios de Facebook. Está endurecido por
la batalla y permanecerá en la industria mientras Facebook esté allí.
Es uno de los frameworks de desarrollo más disruptivos e innovadores. Ha popularizado el enlace
de datos unidireccional, la programación declarativa y el estado inmutable. Ahora está trabajando
para ofrecer una mejor compatibilidad con la concurrencia, un rendimiento mejorado y un código
más limpio.

2. Vue.js

Evan You, un ex ingeniero de Google, desarrolló Vue.js como un marco web basado en
JavaScript MVVM (Model-View-View-Model) del lado del cliente en 2014. Combinó con éxito las
partes buenas de AngularJS (View Layer) y el buenas partes de React (Virtual DOM). Con el tiempo,
Vue.js se convirtió en uno de los marcos web más populares impulsados por la comunidad. En
muchos sentidos, tomó el camino intermedio entre React y Angular y ofreció una alternativa
agradable tanto a Angular como a React.
Características principales:

 Vue.js ofrece una funcionalidad de desarrollo de aplicaciones de extremo a extremo similar


a Angular y una capa de vista similar a React con flujo de datos externos y administración
de estado. La CLI de Vue.js también ayuda a crear una nueva aplicación Vue.js con un estilo
de convención sobre configuración.
 Bajó la barrera para el desarrollo de frontend basado en JavaScript. Ofrece documentación
de primera calidad. Tiene un gran número de seguidores en China y tiene documentación
china.
 Es el mejor marco de JavaScript para el desarrollo progresivo de aplicaciones web.
 Ofrece enlace de datos reactivo bidireccional como Angular. También es compatible
con Virtual DOM y Event Sourcing como React.
 Es 100% impulsado por la comunidad. Como resultado, Vue.js no está impulsado por la
necesidad de una organización en particular.
3. Angular

Después del fracaso de AngularJS (Angular 1+), Google lanzó Angular como un marco web MVW
(Model-View-Whatever) de extremo a extremo, del lado del cliente, en 2016. Angular es un marco
web más tradicional que ofrece dos vías Enlace de datos, Convención sobre configuración, Cheques
sucios. También usó TypeScript como lenguaje de programación nativo y jugó un papel clave en la
popularización de TypeScript. Angular es notablemente estable y no ha introducido cambios críticos
en los últimos 5 años.

Angular también se centra en la estabilidad y la solidez sobre la innovación y en un marco perfecto


para el desarrollo de aplicaciones empresariales.
Características principales:

 Angular es un framework de “baterías incluidas” que ofrece una experiencia de desarrollo


de aplicaciones de un extremo a otro. Angular CLI es una de las mejores CLI en desarrollo
web y ayuda a crear un nuevo proyecto Angular.
 Es el framework  del lado del cliente más pesado con una curva de aprendizaje empinada.
 Es el framework  web del lado del cliente más seguro y ofrece características altamente
seguras como el saneamiento de DOM.
 Se utiliza para desarrollar aplicaciones para varios objetivos de implementación: web, web
móvil, móvil y escritorio nativos.
 Con el respaldo de Google, Angular se usa ampliamente en la industria y tiene un excelente
soporte de herramientas.

4. Spring

A principios de este siglo, las empresas utilizaron el marco Java Enterprise para el desarrollo de
aplicaciones web. Había muchas limitaciones en J2EE: era engorroso, necesitaba una configuración
pesada y el tiempo de configuración inicial para crear una aplicación simple “Hello World” requería
un esfuerzo enorme.

Para superar estas deficiencias, Rod Johnson creó el marco Spring como una inversión de control,
marco web del lado del servidor en 2002. Desde entonces, Spring ha crecido con el tiempo y ahora
es el marco web principal en el desarrollo de aplicaciones basadas en Java. La mejor parte de Spring
es evolucionar con el panorama cambiante y desempeñar un papel muy importante en hacer que
Java sea relevante en la era de la computación en la nube.
Características principales:

 Es un marco web de nivel empresarial, del lado del servidor, principalmente MVC (Model-
View-Controller) con soporte para programación asincrónica y reactiva. También es, a
cierta distancia, el framework web líder basado en JVM.
 Es una inversión de control, inyección de dependencia y anotación altamente innovadora
y popularizada. Muchos otros frameworks posteriormente copian estos conceptos.
 Spring Web Framework es parte del ecosistema Spring más grande, que admite el
desarrollo nativo en la nube adicional, el procesamiento por lotes, el desarrollo de
aplicaciones controladas por eventos y muchos más.
 Está diseñado para el desarrollo de aplicaciones a gran escala y ofrece todo lo que necesita
para dicho desarrollo de aplicaciones (por ejemplo, seguridad sofisticada, numerosas
fuentes de datos, implementación de múltiples nubes).
 Sus características de desarrollo de aplicaciones rápidas son una de las mejores en el
panorama del desarrollo web. Con la ayuda de Spring Initializer, puede crear una aplicación
de nivel empresarial con solo unos pocos clics.
5. Django

En 2005, dos jóvenes ingenieros Adrian Holovaty y Simon Willison crearon un marco web del lado
del servidor basado en Python que sigue el patrón arquitectónico de MTV. En la última década, la
popularidad de Python aumentó a pasos agigantados, lo que afectó directamente la alta adopción
de Django. Además de eso, Django ofrece muchas características agradables y actualmente es uno
de los principales frameworks web del lado del servidor.
Características principales:

 Es un framework web MTV (Model-Template-View) de nivel empresarial, renderizado en el


lado del servidor, con soporte adicional para programación reactiva asíncrona.
Con Django Admin, ofrece desarrollo rápido de aplicaciones.
 Es un marco de “baterías incluidas” y ofrece todo (por ejemplo, ORM, middleware,
almacenamiento en caché, seguridad) que necesita para el desarrollo rápido de
aplicaciones con calidad empresarial.
 Ofrece extensibilidad a través de aplicaciones conectables donde las aplicaciones de
terceros se pueden conectar fácilmente.
 Ofrece una velocidad de desarrollo vertiginosa.
 Django funciona a la perfección con el ecosistema Python, que es uno de los ecosistemas
más grandes de la industria.
6. Ruby On Rails

A principios de la década de 2000, el panorama del desarrollo de aplicaciones web era muy
diferente al actual. J2EE basado en Java era el framework de facto para el desarrollo web en ese
entonces. Era bastante pesado y necesitaba mucha plomería. Escribir una aplicación simple de hola
mundo requirió un esfuerzo significativo. David Heinemeier Hansson creó Ruby on Rails como un
framework de desarrollo web del lado del servidor que admitía el patrón MVC y el lenguaje de
programación Ruby. Introdujo muchas ideas y conceptos novedosos: Convención sobre
configuración (CoC), No se repita (DRY), Patrón de registro activo. También introdujo el desarrollo
rápido de aplicaciones a través de la creación y migración de bases de datos, el andamiaje de vistas.

Características principales:

 Es un framework web renderizado del lado del servidor que se centra en la convención


sobre la configuración, DRY. Es compatible con la arquitectura MVC junto con la
programación reactiva asíncrona.
 Es un marco con baterías incluidas y ofrece todo (ORM, migración de base de datos,
middleware, almacenamiento en caché, seguridad) que necesita para el desarrollo rápido
de aplicaciones con calidad de nivel empresarial.
 El primer framework web se centró en la experiencia del desarrollador y la velocidad del
desarrollo al reducir la entrada al desarrollo web. Fue el framework que marcó tendencias
e influyó en muchos otros frameworks de desarrollo (por ejemplo, Django, Laravel, Play,
DropWizard, Angular, Ember.js). Ha introducido el término “Ruby on Rails way”, seguido
incluso en el desarrollo no web.
 Ofrece una velocidad de desarrollo vertiginosa.
 Ruby on Rails se utiliza ampliamente en la industria y algunas de las aplicaciones web más
importantes se desarrollan con él.
7. ASP.NET Core

En los últimos años, Microsoft está modernizando su Tech Stack con un diseño innovador, moderno
y futurista que satisfaría las necesidades de desarrollo de software moderno. Microsoft reelabora
su uno de los Flagship Software Development Tech Stack ASP.NET, que tuvo un gran éxito en el
desarrollo de aplicaciones web en el ámbito de Microsoft. En 2016, Microsoft lanzó el sucesor de
ASP.NET como ASP.NET Core, que es de código abierto y una reelaboración completa de su
predecesor. Es un framework web modular que puede ejecutarse en múltiples plataformas y
funciona a la perfección con los frameworks de desarrollo modernos del lado del cliente de
JavaScript.
Características principales:

 Es un framework web de nivel empresarial, del lado del servidor, principalmente MVC
(Model-View-Controller). También es compatible con componentes de tiempo de
ejecución, programación reactiva y asíncrona.
 Puede ejecutarse en varias plataformas: en Windows, en .NET framework y .NET Core
multiplataforma (Windows, Linux, MacOS).
 Tiene un diseño modular, y muchas otras bibliotecas .NET y la mayoría de las bibliotecas
populares del lado del cliente de JavaScript (React, Angular, Vue.js, Ember.js) funcionan a la
perfección con ASP.NET Core.
 Está diseñado para el desarrollo de aplicaciones a gran escala y supera cómodamente a
otros frameworks web.
 Tiene uno de los mejores soportes de herramientas, ya que Microsoft también desarrolla
IDE populares (VS Code, Visual Studio). Ofrece una excelente experiencia de desarrollo de
aplicaciones rápidas con compatibilidad con CLI e IDE.
Popularidad:

En cuanto a características, ASP.NET Core es el mejor marco web del lado del servidor. Como
sucede a menudo con un framework reelaborado, muchos desarrolladores de Windows todavía
están estancados con ASP.NET clásico, lo que afecta la popularidad de ASP.NET Core. Sin embargo,
se está volviendo cada vez más popular con el tiempo.

Aunque es el marco más joven de esta lista, todavía tiene altas estrellas de GitHub:

La encuesta de desarrolladores de StackOverflow 2020 clasificó a ASP.NET Core como el


sexto framework web más popular:
Como ya se mencionó, es el mejor framework en términos de características modernas y
ergonomía para desarrolladores. Según la encuesta de desarrolladores de StackOverflow, es
el framework web más querido que supera el evento React.js:

8. Flask

Armin Ronacher creó Flask como un marco Micro Web minimalista basado en Python en 2010.
Flask se llama Micro-framework ya que no está controlado y no necesita ninguna herramienta o
biblioteca en particular. Es comparable a Express.js y no ofrece soporte listo para usar para ORM,
validación de formularios o valores. Sin embargo, Flask es altamente modular y admite extensiones
conectables. Flask también goza de gran popularidad con la creciente popularidad de Python.
Características principales:

 Es un marco Micro Web renderizado del lado del servidor.


 Core Flask es extensible a través de módulos conectables.
 Es un marco contenedor que utiliza Jinja2 como motor de plantilla y Werkzeug para el
manejo de HTTP.
 Flask también proporciona una CLI, que ayuda al desarrollador a acceder a la aplicación. La
CLI también es extensible.
 No es un marco de principio a fin y muy carente de opiniones.
Popularidad:

Es uno de los frameworks web renderizados del lado del servidor minimalistas más populares. En el
panorama de Python, es el segundo marco web más popular: justo detrás de Django.

Es el sexto marco web con más estrellas en GitHub:

Flask es también uno de los frameworks de desarrollo web más queridos, según la encuesta de
desarrolladores de StackOverflow:

9. Express.js

TJ Holowaychuk creó Express.js como un marco web MVC (Model-View-Controller) del lado del
servidor basado en el tiempo de ejecución de JavaScript Node.js. Lanzó la primera versión estable
en 2010. Express.js estaba fuertemente influenciado por el minimalista Web Framework Sinatra y
ofrecía una funcionalidad minimalista similar. Los desarrolladores usan Express.js para desarrollar
backend basado en REST, o aplicaciones web completas renderizadas del lado del servidor junto
con la capa de vista conectable.
Características principales:

 Es un framework web minimalista, renderizado del lado del servidor y el marco del lado del
servidor en Node.js.
 Aunque se utiliza principalmente para Backend, también admite el desarrollo de
aplicaciones de un extremo a otro. Es compatible con el patrón MVC con la capa de vista
que admite el motor de plantillas 14+.
 Es compatible con middleware, enrutamiento, plantillas.
 Con más de 10 años de desarrollo activo, es maduro, estable y de alto rendimiento.
 No es un marco de baterías incluidas y no es compatible con el soporte listo para usar para
ORM, valores.
Popularidad:

En la última década, Node.js ha experimentado un aumento meteórico en el desarrollo del lado del
servidor. Como marco del lado del servidor predeterminado en Node.js, Express.js también gozó de
una enorme popularidad.

Según GitHub, es el séptimo framework web más popular en esta lista:

Con 14 millones de descargas semanales, es uno de los paquetes NPM más descargados. La
encuesta de desarrolladores de StackOverflow 2020 clasificó a Express.js como el quinto marco web
más popular:

Por sus características minimalistas, a los desarrolladores les encanta Express.js, como lo demuestra
la siguiente figura:

10. Laravel

PHP es un lenguaje de programación especialmente diseñado para el desarrollo web. Taylor


Otwell creó Laravel en 2011 como un framework web del lado del servidor basado en PHP que
sigue el patrón arquitectónico MVC. También sigue la filosofía “Ruby on Rails” y proporciona CoC y
muchas funcionalidades listas para usar esenciales para el desarrollo web empresarial.
Características principales:

 Es un framework web MVC (Model-View-Controller) de nivel empresarial, renderizado en el


lado del servidor, con soporte adicional para la programación asincrónica. Con CLI
artesanal, ofrece desarrollo rápido de aplicaciones.
 Es un framework de trabajo de un extremo a otro y ofrece todo (por ejemplo, ORM,
middleware, almacenamiento en caché, seguridad, administración de sesiones) que
necesita para el desarrollo rápido de aplicaciones con calidad de nivel empresarial.
 Ofrece Inversión de control (IoC) con inyección de dependencia (DI) para administrar
dependencias entre clases. Laravel proporciona el potente motor de plantillas Blade que
admite la herencia y la sección de plantillas.
 Con su diseño simple y su sintaxis elegante y expresiva, Laravel ofrece una rápida velocidad
de desarrollo.
 Es especialmente adecuado para aplicaciones web altamente escalables y de alto
rendimiento.
Popularidad:

PHP es uno de los lenguajes de programación más populares para el desarrollo web, mientras que
Laravel ofrece un marco de nivel empresarial con alta velocidad de desarrollo. Como resultado,
Laravel disfruta de una gran popularidad en la comunidad. Es el marco de GitHub con más estrellas
entre los marcos del lado del servidor:

Como se relaciona ORM con los RDBMS


La interacción con el RDBMS quedará delegada en los métodos de actualización correspondientes
proporcionados por el ORM. Los ORMs más completos ofrecen servicios para persistir todos los
cambios en los estados de las entidades, previo seguimiento o tracking automático, sin escribir
una sola línea de SQL.

El mapeo objeto-relacional (más conocido por su nombre en inglés, Object-Relational Mapping) es


una técnica de programación para convertir datos en objetos (POO) en memoria, de una forma
dinámica y estandarizada. El enfoque es, buscar metodología que aprovechen todo el potencial de
la POO, para gestionar los datos de una manera ágil, fácil y consistente. La premisa es, en la base
de datos relacional (RDBMS), están almacenadas las características (atributos) de los objetos,
entonces como lleno (mapping) dichas características de una forma dinámica, ordenada y
estandarizada.

Con su propia palabra diga el significado del system catalog en un RDBMS.


Es un grupo organizado de datos, de fácil entendimiento.

También podría gustarte