Quelqu’un connaît-il des langages de script statiquement typés?

Je suis sur le sharepoint lancer une dissortingbution Linux basée sur LFS uniquement pour un projet de loisir. Je prévois de faire des tâches très inhabituelles, et la plupart impliqueront de changer presque tous les scripts de la dissortingbution. (principalement des scripts d’initialisation, mais j’écrirai aussi un ensemble simple de scripts de gestionnaire de paquets). Puisque je vais aller loin de la norme et que je n’ai jamais été fan des langages dynamics (perl, python, bash et le rest sont bons, mais pas mon point fort), je me demandais si quelqu’un connaissait un langage interprété qui contenait des variables déclarées.

Regardez la commande “type” dans votre shell préféré. bash et ksh93 peuvent tous deux appliquer des entiers et des chaînes, utiliser des références (variables variables), etc. Avec ksh93, vous pouvez également faire des calculs à virgule flottante et utiliser des objects avec des atsortingbuts. Le typage statique ne vous aide pas vraiment dans les scripts d’initialisation et autres. Vous allez principalement lire des fichiers et exécuter des commandes système – ce que le shell est vraiment bien. Prenez le temps de lire le livre O’Reilly “Learning the Korn Shell” avant de décider que tous les autres Unix sont conçus de manière stupide …;)

Les langages typés statiquement sont généralement des langages compilés. J’imagine que la raison en est que l’parsing statique des types est assez coûteuse et que vous devez examiner en profondeur tous les codes que vous traitez. Après que vous ayez fait cela, vous avez l’impression de ne pas écrire toutes ces informations dans un fichier, de sorte que vous ne devez plus le faire la prochaine fois. Donc, vous vous retrouvez rapidement avec un langage compilé.

Par contre, transformer un langage compilé en un langage “non compilé” est plutôt facile. Vous ne stockez simplement pas les résultats de la compilation ailleurs, mais les exécutez directement. Un compilateur que je connais et qui fournit un tel wrapper est GHC, le compilateur Haskell standard. Vous pouvez append #!/usr/bin/runhaskell à vos fichiers sources, puis les exécuter directement. Et comme vous prévoyez d’être loin de la norme, Haskell semble être un ajustement parfait;). Mais attendez-vous à un temps de démarrage assez important pour vos scripts, car toute l’parsing et l’optimisation de la compilation ne sont pas gratuites.

Haskell n’est pas conçu pour les scripts shell et c’est un langage fonctionnel, donc si vous ne l’avez jamais vu auparavant, il faudra peut-être du temps pour vous y habituer. Mais il a très peu de charge syntaxique et la force des langages fonctionnels est l’abstraction, donc je ne vois pas pourquoi vous ne pourriez pas créer une bibliothèque qui rende les scripts shell amusants. Il y a même un shell expérimental de Haskell , mais il semble que ce soit plus une preuve de concept qu’une solution réelle.

En général, je dirais que la surcharge de toutes les parsings de type est significative, mais je vous suggère de choisir votre langage compilé préféré, typé statiquement, et de rechercher un wrapper comme runhaskell pour exécuter les scripts écrits dessus.

google rapide F3, script javaFX, langage de script Linden (scripting pour la seconde vie), contrairement au commentaire de la première réponse, F # peut être utilisé comme langage de script script-in-f.aspx

Felix, Tuga, CFGScript, Talc, Angelscript et deviner qu’il y a plus que cette recherche rapide.

Douglas

F # fournit une combinaison de “sécurité de type, concision, performance, expressivité et script”.

Sensationnel. Par défaut, il est dynamic, typé en canard. Mais prend également en charge le typage statique.