Je viens d'avoir mon esprit aujourd'hui. J'ai passé du temps dans le mode de débogage IE, parcourant le Web comme d'habitude, et oh garçon, je vois de nombreuses erreurs :) La plupart de ces erreurs sont dû au fait que certaines valeurs sont d'un type différent de celui attendu (au moins aussi loin que j'étère l'erreur. messages). p>
Quelles sont les raisons javascript et les langues de script similaires ne sont-elles pas fortement typées? Est-il juste de faire les langues "plus faciles" à comprendre et plus accessibles, ou est l'absence d'un "temps de compilation" du vrai problème? P>
7 Réponses :
Ma propre oppinion: vous pouvez analyser les scripts avant de les exécuter. Cela attraperait la plupart des erreurs de type et signifie que l'utilisateur n'a pas à voir un scriptressulttressulte partiellement exécuté. Encore mieux, il serait beaucoup plus facile de déboguer la chose, s'il y avait un analyseur :) p>
Il gagne de la flexibilité de ne pas être saisi. Personnellement profiter des langues faiblement typées. P>
La réponse est donc il y aurait des avantages et des inconvénients. P>
Pour les personnes qui veulent une langue fortement typée dans le navigateur, le GWT et le numéro de script sont disponibles. P>
Je ne dirais pas qu'ils sont tellement flexibles qu'ils introduisent toute une classe d'erreurs qui pourraient être empêchées automatiquement, et ils le font tout en offrant aucune fonctionnalité supplémentaire supplémentaire. Vous pouvez avoir une garantie que cet objet que vous avez passé cette fonction prendra en charge la méthode dont vous avez besoin, mais vous ne saurez jamais à moins que cette ligne de code soit exécutée ...
Je construit un cadre de prototype rapide pour l'eLearning dans ActionScript 2. Mon plus grand gripe était l'AS2 n'était pas fortement typé et cela me fait beaucoup mal à la tête lors du débogage. Je pense que cela frappe fortement les choses facilitent le code à lire. Je pense qu'une langue faiblement tapée offre plus de flexibilité. P>
Je me penche plus en faveur de la lisibilité lorsque je dois revenir en arrière et comprendre ce que le diable se passe dans le code que j'ai écrit il y a 6 mois. P>
AS2 est fortement typé. Spécifiez simplement le type après la variable. Par exemple: var vector1: vecteur
Il convient certainement d'avoir de fortes dactylographie disponibles em>. ActionScript 3 est fortement dactylographié, mais possède toujours un héritage prototype et un type de caractères génériques si vous avez besoin d'objets dynamiques. p>
Il n'y a pas de réciproque pour avoir cette fonctionnalité disponible, et je dois dire, pour un projet de taille modérée à grande taille, le typing fort empêche une tonne de problèmes. Pour tirer le meilleur parti de celui-ci, vous avez besoin d'un support IDE afin qu'il puisse signaler des erreurs et fournir des options autocompresses, mais JavaScript serait dans un tout nouveau monde s'il avait de véritables classes et de dactylographie forte. p>
+1 pour "Quel est le mal à l'ajouter"; Les gens qui ne veulent pas qu'il ne soit pas à l'utiliser.
Après 6 ans, c'est très proche de se produire - JavaScript ayant des véritables classes. Cependant, je ne suis pas trop sûr de la frappe forte.
J'aime les faibles aspects typés de la plupart des langues de script pour la plupart. La seule raison pour laquelle je voudrais fortement dactylographié, en plus de la performance, c'est qu'il est plus facile pour les outils de refacteur fortement typés que les langues faibles. P>
En outre, la typing forte semble éliminer les classes d'erreurs entières et facilite la mémorisation des méthodes de votre objet. Avec JavaScript, deux objets du même type peuvent avoir des méthodes complètement différentes. Hourra!
JavaScript et les langages de script similaires bénéficieraient d'être fortement typés? P> blockQuote>
Oui, ils le feraient, JavaScript 2.0 introduit un Système de type : P>
Système de type JavaScript 2.0 prend en charge la notion d'un type, qui peut être considéré comme un sous-ensemble de tous valeurs possibles. Il y a des éléments intégrés types tels que objet, numéro et Chaîne de caractères; chaque classe définie par l'utilisateur (section 6) est aussi un type. P> blockQuote>
Voir aussi: http : //timkadlec.com/2008/04/an-Objective-look-javascript-0-0-Strong-typing/ P>
En général, le soutien à la dactylographie forte offre de nombreuses opportunités intéressantes pour les passes de compilation et d'optimisation. P>
Microsoft a parcouru un long chemin à résoudre fortement taper le problème dans l'intervalle avec dossier. Jeter un oeil: p>
Vous devriez probablement poster votre opinion comme une réponse - pour évaluer la force des gens (dis) d'accord
Clarification: Il n'y a rien de vous empêcher d'analyser JavaScript ou de toute autre langue dynamique. De quoi vous parlez est sémantiquement évaluant le texte analysé.
Ajouté ma propre adpinion comme réponse. Et vous, jared, mais en supposant un environnement de navigateur, aucun que je sache, cela (du moins pas à ma connaissance?). Si vous aviez un langage de script fortement typé, vous seriez un peu obligé de cela, je pense? :)