2010-04-09 11 views
3

Plusieurs environnements de script sont disponibles pour les applications .NET (par exemple this post).Avantages/inconvénients des environnements de script intégrés?

Ma question est, quels sont les avantages et inconvénients de l'utilisation de chacun d'entre eux?

Les exemples incluent (mais sans s'y limiter)

  • PowerShell
  • IronPython
  • Lua
  • JavaScript

Je suis en train de décider quel outil de script à utiliser dans des applications scientifiques pour permettre aux utilisateurs experts d'interagir avec des modèles compliqués afin qu'ils puissent créer de nouveaux algorithmes.

+0

J'ai énuméré quelques environnements de script intégrés, mais je ne voulais pas limiter vos réponses à ceux énumérés. – pomeroy

+3

Qu'est-ce que vous essayez d'écrire? Est-ce que cette partie de l'interface utilisateur? Une partie de votre processus de construction? Composants du serveur de script déclenchés par votre interface utilisateur? – Jaxidian

Répondre

2

Je n'ai pas l'expérience de l'intégration de Powershell, mais je suppose que c'est un peu comme IronPython en ce sens qu'il est finalement profondément connecté au CLR.

Alors:

PowerShell/IronPython

Je regrouperait ces deux ensemble et dire le grand point positif est la capacité directe de communiquer via le CLR. Les négatifs pour ceux-ci peuvent être l'utilisation de la mémoire et peut-être les performances d'exécution. Bien que cela fonctionne déjà dans le CLR, cela ne devrait pas faire beaucoup de différence.

Lua/Javascript

similaires en ce qu'aussi bien serait intégré en utilisant une sorte de API P/Invoke en fin de compte. (Ou COM Interop)

Pro: Rapide, moins d'utilisation de la mémoire. Con: P/Invoke, code non managé, etc.

Entre Lua et Javascript:

Lua peut être encore plus rapide et moins d'un porc de mémoire que Javascript, mais Javascript POO plus familier et idiomes FP cuit dans la langue.

+0

Vous voulez dire qu'il n'y a pas une implémentation native de Lua ou Javascript dans .Net? Êtes-vous sûr de cela? C'est un langage de script pas un pilote de périphérique. – Earlz

+0

Bon point @Earlz. Je pensais à l'implémentation évidente ou par défaut je suppose. –

+0

IronPython est-il prêt pour les utilisateurs finaux experts, s'il a été déployé dans une application? – pomeroy

1

Je pense que vous pouvez retirer le javascript de votre liste. Il ne supporte pas les nombres complexes ni les surcharges d'opérateurs ... il semble donc qu'il n'y ait aucun moyen de mettre en oeuvre c = a + b si a, b, c sont complexes.

Questions connexes