F# ofrece una combinación de "seguridad de tipos, concisión, rendimiento, expresividad y secuencias de comandos".
Google rápido. F3, secuencia de comandos javaFX, lenguaje de secuencias de comandos Linden (secuencias de comandos para la segunda vida), a diferencia del comentario en la primera respuesta, F # se puede usar como lenguaje de secuencias de comandos http://blogs.msdn.com/chrsmith/archive/2008/09/12/ secuencias de comandos-en-f.aspx
Felix, Tuga, CFGScript, Talc, Angelscript y supongo que hay más que esa búsqueda rápida.
douglas
Por lo general, los lenguajes tipificados estáticamente son lenguajes compilados. Supongo que la razón es que el análisis estático de tipos es bastante costoso y debe analizar en profundidad todo el código que está procesando. Después de haber hecho eso, se siente como un desperdicio no escribir toda esa información en un archivo, para que no tenga que volver a hacerlo la próxima vez. Así que rápidamente terminas con un lenguaje compilado.
Por otro lado, convertir un lenguaje compilado en uno "no compilado" es bastante fácil. Simplemente no almacena los resultados de la compilación en ningún lugar, sino que los ejecuta directamente. Un compilador que conozco que proporciona dicho contenedor es GHC, el compilador estándar de Haskell. Puedes agregar #!/usr/bin/runhaskell
a sus archivos fuente y luego ejecútelos directamente. Y dado que planea estar lejos de la norma, Haskell parece encajar perfectamente;). Pero espere un tiempo de inicio bastante largo para sus secuencias de comandos, porque todo el análisis y la optimización del "tiempo de compilación" no son gratuitos.
Haskell no está hecho para secuencias de comandos de shell y es un lenguaje funcional, por lo que si nunca lo ha visto antes, puede que le lleve algún tiempo acostumbrarse. Pero tiene muy poca sobrecarga sintáctica y la fuerza de los lenguajes funcionales es la abstracción, por lo que no veo por qué no podrías crear una biblioteca que haga que las secuencias de comandos de shell sean divertidas. Incluso hay algún shell experimental de Haskell, pero parece ser más una prueba de concepto que una solución real.
En general, diría que la sobrecarga de todo el análisis de tipo es significativa, pero le sugiero que elija su lenguaje compilado de tipado estático favorito y busque un contenedor como runhaskell
para ejecutar scripts escritos en él.