Parece que hay dos formas principales de configurar un servidor web. Puede usar una pila LAMP, con el código del lado del servidor en algo como PHP o Python (o Ruby o JavaScript, que no comienzan con una P.) Estos lenguajes de secuencias de comandos tienden a escribirse dinámicamente, con todas las desventajas en rendimiento, corrección y capacidad de mantenimiento que aportan los idiomas escritos dinámicamente, pero es fácil actualizar el servidor porque toda la lógica de generación de páginas se almacena en scripts externos.
El otro estilo de arquitectura principal en uso amplio es ASP.NET, donde la lógica de generación de páginas se escribe en código compilado. Esto tiende a usar lenguajes tipados estáticamente, por lo que obtienes código que tiene el beneficio de un compilador, pero toda la lógica de generación de páginas se compila en el servidor, lo que significa que si necesitas cambiar algo, tienes que apagar el servidor y reemplazarlo con una nueva construcción.
Entonces eso me hace preguntarme. ¿Hay algún lenguaje de scripting del lado del servidor que use tipeo estático, para lo mejor de ambos mundos?
fuente
Respuestas:
ACTUALIZACIÓN: las soluciones más actuales incluyen AtScript
Deberías probar Google Dart .
Tiene una tipificación opcional, lo que significa que puede agregar anotaciones de tipo que se verificarán en el modo de desarrollador conocido como 'verificado' en tiempo de ejecución, pero no son necesarias y el idioma ofrece muchas de las ventajas de otros lenguajes dinámicos como python. Sin embargo, el editor hará inferencia de tipos para tratar de ayudarlo a encontrar errores con anticipación. La máquina virtual dart es rápida y puede producir instantáneas, lo que puede acelerar el tiempo de inicio hasta 10 veces. También se compila en JavaScript y es rápido .
El principal inconveniente aquí es que es una tecnología algo nueva, por lo que no hay tantas bibliotecas y, sinceramente, la interoperabilidad con JavaScript no es tan simple como debería ser. Además, el lenguaje todavía está en desarrollo, por lo que hay cambios importantes de vez en cuando.
fuente
Su pregunta se basa en varios supuestos incorrectos.
Python, Ruby están compilados en bytecode antes de la ejecución. El proceso es automático, pero los cambios en la aplicación requieren un reinicio completo. Node.JS se comporta de la misma manera pero se compila en código máquina.
El código ASP.NET puede precompilarse y copiarse al servidor o compilarse dinámicamente a pedido desde el código fuente del servidor. IIS maneja ambas formas de actualizaciones sin tiempo de inactividad cero (las primeras solicitudes después de la actualización serán lentas). Las actualizaciones de tiempo de inactividad cero son posibles con Python y Ruby, pero con tantas opciones de implementación, no es algo que se dé por sentado.
Basado en eso, creo que estarías contento con cualquier lenguaje .NET.
fuente
No hay ninguna razón por la que un lenguaje compilado deba escribirse con fuerza o sea difícil de actualizar.
Es posible que desee ver algunas de las configuraciones web de erlang como Cowboy, Webmachine y Nitrógeno. Con Dialyzer puede obtener una verificación de tipo muy agradable para la corrección y puede recargar módulos sobre la marcha en tiempo de ejecución, ya que erlang fue diseñado para poder actualizar el software en su lugar sin interrumpir a los usuarios existentes.
Además, la máquina web (la que más he usado) puede ser bastante rápida. ¡He visto que webmachine tiene respuestas promedio en puntos finales API de menos de 10 ms en un nodo pequeño EC2 de Amazon!
Si desea escribir estática, pruebe el marco Yesod que es para el lenguaje Haskell. Haskell está fuertemente tipado con un sistema de tipos muy rico.
No lo he usado personalmente, pero a las personas que conozco que lo usan les encanta.
fuente
En mi humilde opinión, el lenguaje de programación web mejor tipo estático es D .
Al igual que los lenguajes de scripts interpretados, puede compilar scripts sobre la marcha y a la velocidad de la luz.
El lenguaje en sí se siente como un JavaScript súper potente fuertemente tipado, mucho más poderoso que Go, por ejemplo.
Todo el material de concurrencia está oculto, como en PHP, y las plantillas se compilan en código nativo.
Difícil de encontrar mejor que eso ...
fuente