Les principales différences entre JScript et JScript .NET peuvent être résumées comme suit :
Tout d'abord, JScript est un langage de script et, à ce titre, les programmes (ou plus précisément, les scripts) peuvent être exécutés sans compilation préalable. Ce n'est pas le cas du compilateur d'interface en ligne de commande JScript .NET , car cette version de nouvelle génération s'appuie sur le Common Language Runtime (CLR) .NET pour son exécution. Le CLR exige donc que le code soit compilé en CIL ( Common Intermediate Language ), anciennement MSIL (Microsoft Intermediate Language), avant de pouvoir être exécuté. Néanmoins, JScript .NET prend toujours pleinement en charge l'interprétation du code source à l'exécution (par exemple, via le Functionconstructeur ou la evalfonction) et, de fait, l'interpréteur peut être exposé par des applications personnalisées hébergeant le moteur JScript .NET via les interfaces VSA .ActiveX et COM ( Component Object Model ) de Microsoft et utilise principalement les composants ActiveX pour assurer la plupart de ses fonctionnalités (notamment l'accès aux bases de données via ADO , la gestion des fichiers, etc.), tandis que JScript .NET utilise le framework .NET pour fournir des fonctionnalités équivalentes. Pour assurer la rétrocompatibilité (ou lorsqu'aucune bibliothèque .NET équivalente n'existe), JScript .NET offre un accès complet aux objets ActiveX via .NET et l'interopérabilité COM, en utilisant à la fois le constructeur ActiveXObject et les méthodes standard de la Typeclasse .NET.
Bien que le framework .NET et des langages tels que C# et Visual Basic (.NET) soient largement répandus, JScript .NET a suscité peu d'intérêt, tant auprès des médias que des développeurs. Il n'est pas pris en charge par Visual Studio .NET , l'outil de développement phare de Microsoft . En revanche, ASP.NET le prend en charge.
point d'entrée (fonction ) qu'un système d'exploitation doit appeler directement lors de l'exécution d'une application JScript .NET ; de ce fait, le flux de contrôle du programme JScript .NET peut être basé sur du code global.JScript .NET, grâce à son système de vérification des types de données très permissif , peut être plus facile à apprendre, car la convention courante consistant à déclarer explicitement les types n'est pas nécessaire. JScript .NET ne nécessite pas de références explicites à la bibliothèque de classes de base du framework .NET, car certaines fonctions présentes dans les versions précédentes de JScript sont présentes dans JScript .NET (par exemple, les fonctions permettant de trouver la tangente d'un angle d'un triangle rectangle ). JScript .NET est étroitement lié à la syntaxe C et est donc facile à apprendre pour les développeurs C# , Java ou C++ . Bien que JScript .NET permette de créer des applications Windows Forms, son utilisation peut s'avérer complexe, car les délégués ne peuvent être que consommés et non créés. De ce fait, il est difficile d'émuler des événements personnalisés avec JScript .NET. Différences avec C++
- JScript .NET n'a pas besoin de fonction main() .
- JScript .NET ne nécessite pas de déclaration explicite du type des variables. (En C++ , l'utilisation des modèles et des génériques peut être comparée à cela, vaguement émulée par la spécialisation des modèles, etc.)
- JScript .NET ne nécessite pas de conversion de type explicite lors de l'utilisation de variables dans le programme. Le code utilisé pour récupérer une chaîne de caractères, mais qui ne traite que des nombres entiers, peut être converti implicitement ; l'inverse est possible sans erreur à la compilation , mais il existe un risque de perte de précision ou de données.
par exemple :
Différences avec Java
- La syntaxe et les conventions lexicales de JScript .NET sont similaires à celles de Java , car les deux langages dérivent du C. JScript était à l'origine l'implémentation par Microsoft d' ECMAScript , plus communément appelé JavaScript , bien qu'il soit sans lien avec Java. De ce fait, les utilisateurs de Java et d'autres langages dérivés du C trouveront JScript plus facile à apprendre.
- JScript .NET permet aux développeurs d'utiliser des variables non typées et peut parfois déduire leur type de leur utilisation afin d'optimiser le code compilé. En revanche, Java exige que toutes les variables soient typées, même s'il prend également en charge l'inférence de type.
- JScript .NET peut ajouter des propriétés et des méthodes aux objets lors de l'exécution , tandis que les objets Java se conforment toujours à leur interface déclarée.
- JScript .NET prend en charge les variables globales , contrairement à Java.
Différences avec les anciennes versions de JScript
- JScript .NET permet de déclarer des variables et des fonctions avec des informations de type (par exemple,
var x: String;), alors que les informations de type pour les variables et les fonctions de JScript ne peuvent pas être déclarées (par exemple,var x;). - Les scripts JScript .NET ne sont pas interprétés, mais exécutés indépendamment. Lors de son exécution, une application JScript .NET invoque le CLR , qui exécute les instructions CIL sans recourir à un interpréteur.
- JScript .NET peut être exécuté sans navigateur ni autre moteur de script , car le compilateur génère des exécutables et des assemblys autonomes. Cependant, l'installation du framework .NET reste nécessaire à leur exécution.
- JScript .NET donne accès à la bibliothèque de classes de base (BCL) du framework .NET, offrant ainsi beaucoup plus de fonctionnalités.
- JScript .NET est disponible comme langage de script uniquement pour ASP.NET , la technologie utilisée pour générer des pages web. De ce fait, JScript .NET joue un rôle similaire à celui de PHP et d'autres langages de script côté serveur . Internet Explorer, en revanche, utilise toujours l'ancien moteur JScript ; par conséquent, JScript .NET ne peut pas être utilisé pour créer des scripts pour les pages web (ni pour les applications HTML (HTA) ou HTC). À cet égard, JScript est beaucoup plus polyvalent que JScript .NET.