El lenguaje, llamado Ur/Web, proporciona una manera única de escribir páginas, al modo de un programa independiente, pero incorporando muchas de las tecnologías web más utilizadas en la actualidad, lo que liberaría al programador de tener que trabajar con diferentes lenguajes independientes.
Crear una página web más o menos compleja requiere combinar diferentes lenguajes de programación, desde HTML a JavaScript. Ahora, un investigador del Instituto de Tecnología de Massachusetts (MIT) ha envuelto todas ellas en un único idioma capaz de agilizar el desarrollo de páginas web, así como potenciar su rendimiento y seguridad.
Hypertext Markup Language (HTML) ofrece el formato básico para crear una página web, pero hay toda una gama de tecnologías adyacentes que normalmente comprenden desde Hojas de Estilo en Cascada (CSS) hasta Lenguaje de Marcación Extensible (XML) para establecer las estructuras de datos y su proceso y clasificación. Por su parte, JavaScript proporciona la base para escribir la lógica del negocio y las interacciones con el usuario. Y si los datos se almacenan en una base de datos, un desarrollador necesita saber SQL (Structured Query Language) también.
Ur/Web encapsula todas las capacidades de este tipo de herramientas de desarrollo web en un solo lenguaje, que se compila en código máquina y es ejecutable.
En Ur/Web, todo se basa en las transacciones, que gestionan una sola solicitud del cliente cada vez y tiene capacidad para soportar muchas peticiones en paralelo.
Ur es un lenguaje de programación en la tradición de ML y Haskell, pero con un sistema de tipo mucho más rico. Ur es funcional, puro, de tipos estáticos, y estricta. Ur es compatible con una poderosa clase de metaprogramming basado en los tipos de fila.
Ur/Web admite la construcción de aplicaciones web dinámicas respaldados por bases de datos SQL. Pero también no puede:
• Sufrir de cualquier tipo de ataques de inyección de código.
• Volver HTML no válido.
• Contener vínculos muertos.
• Tener desajustes entre formularios HTML y los campos esperados por sus manejadores.
• Incluya código del lado del cliente que hace suposiciones incorrectas acerca de los " AJAX " servicios al estilo que el servidor web remoto proporciona.
• Intente consultas SQL no válidas.
• Utilizar el cálculo de referencias o desempaquetar impropia en comunicación con bases de datos SQL o entre navegadores y servidores web.
Este tipo de seguridad es la base de la metodología Ur/Web. También es posible utilizar metaprogramming para construir piezas de aplicación significativas por análisis de la estructura. Por ejemplo, la demo incluye una función de estilo ML para la construcción de una interfaz de administración para una tabla de SQL arbitrario. El sistema de tipos garantiza que la sub-aplicación interfaz de administración que sale siempre será libre de los errores mencionados anteriormente.
El compilador Ur/Web también produce código muy eficiente que no utiliza la recolección de objeto basura. Estos programas compilados suelen ser aún más eficiente que lo que la mayoría de los programadores se molestarían a escribir en C.
Por ejemplo, el servidor web independiente generado para la demo utiliza menos memoria RAM que el shell bash. El compilador también genera versiones de JavaScript de código del lado del cliente, sin necesidad de escribir aquellas partes de las aplicaciones en un idioma diferente.
No hay comentarios.:
Publicar un comentario