Un grand nombre de fois une tâche rapide que ne fait pas partie de l'interface principale du logiciel vous êtes en développement. Parfois, la tâche est un des ie comparer ce fichier à la base de données et laissez-moi savoir les différences. Il est beaucoup plus facile de faire de l'analyse de texte en Perl/Ruby/Python que c'est en Java ou en C# (en partie parce qu'il est beaucoup plus facile d'utiliser des expressions régulières). Il va probablement prendre beaucoup moins de temps pour analyser le fichier texte à l'aide de Perl/Ruby/Python (ou peut-être même vbscript grincer des dents , puis le charger dans la base de données qu'il serait de créer un Java/C# programme pour le faire ou le faire à la main.
Aussi, en raison de la facilité à laquelle la plupart de la dynamique des langues analyser le texte, ils sont parfaits pour la génération de code. Assurez-vous que votre projet final doit être en C#/Java/Transact SQL, mais au lieu de couper et coller 100 fois, de trouver les erreurs, et de couper-coller d'un autre 100 fois, il est souvent (mais pas toujours) plus facile que d'utiliser un générateur de code.
Un exemple récent au travail nous avons nécessaires pour obtenir des données à partir d'un système de comptabilité dans notre système comptable. Le système a un format d'importation, mais l'ancien système avait un format complètement différent (largeur fixe bien que certaines choses devaient être appariés). La tâche n'est pas de créer un programme de migration de données de plus et plus de nouveau. C'est à se fourrer des données dans notre système, puis de l'y maintenir à l'avenir. Donc, même si nous sommes un C# et SQL Serveur de la boutique, j'ai utilisé Python pour convertir les données dans le format qui pourrait être importé par notre application. En fin de compte il n'est pas question que j'utilise python, il est important que les données sont dans le système. Mon patron a été très impressionné.
Où je vois souvent la dynamique des langues utilisées pour les tests. Il est beaucoup plus facile de créer un Python/Perl/Ruby programme de lien vers un service web et de le jeter certaines données contre elle qu'elle ne l'est pour créer l'équivalent de Java. Vous pouvez également utiliser python pour frapper contre les programmes en ligne de commande, de générer une tonne de déchets (mais toujours valable) des données de test, etc.. assez facilement.
L'autre chose que des langages dynamiques sont big sur est la génération de code. La création de la C#/C++/Java code. Voici quelques exemples:
La première tâche de génération de code je vois souvent des gens en utilisant des langages dynamiques de maintenir constantes dans le système. Au lieu de codage à la main un bouquet de enums, un langage dynamique peut être utilisé pour assez facilement analyser un fichier texte et créer le Java/C# code avec les énumérations.
SQL est un tout autre jeu de balle, mais souvent, vous obtenez de meilleures performances en coupe et collage de 100 fois au lieu d'essayer de faire une fonction (en raison de la mise en cache des plans d'exécution ou de mise compliqué logique dans une fonction, vous obligeant à aller ligne par ligne plutôt que dans un ensemble). En fait, il est très utile d'utiliser la définition de la table à créer certaines procédures stockées automatiquement.
Il est toujours préférable d'obtenir l'adhésion pour un générateur de code. Mais même si vous n'en avez pas, il est plus amusant de passer du temps de découpage/collage ou est-il plus amusant de créer un Perl/Python/Ruby script une fois et puis de générer le code? Si vous avez mis des heures à main de code quelque chose, mais moins de temps pour créer un générateur de code, alors, même si vous l'utilisez une fois que vous avez un gain de temps et donc d'argent. Si il vous faut plus de temps pour créer un générateur de code qu'il n'en faut à main de code à la fois, mais vous savez que vous aurez à mettre à jour le code plus d'une fois, il peut encore faire sens. Si il vous prend 2 heures pour le code, 4 heures pour faire le générateur, mais vous savez que vous aurez à main équivalent au code du travail un autre 5 ou 6 fois qu'il est évidemment préférable de créer le générateur.
Certaines choses sont plus faciles avec dynamique de langages que Java/C#/C/C++. En particulier, les expressions régulières viennent à l'esprit. Si vous commencez à utiliser les expressions régulières en Perl et de réaliser leur valeur, vous pouvez soudainement commencer à faire usage de la Java expression régulière de la bibliothèque si vous n'avez pas avant. Si vous avez alors il y a peut être quelque chose d'autre.
Je vous laisse avec un dernier exemple d'une tâche qui aurait été idéal pour un langage dynamique. Mon travail s'accoupler dû prendre un répertoire plein de fichiers et les graver sur divers cd pour divers clients. Il y avait quelques clients, mais un grand nombre de fichiers et vous avez eu à regarder pour voir ce qu'ils étaient. Il fait de cette tâche par la main....Java/C# programme aurait permis d'économiser du temps, mais pour un temps et avec tout le développement frais généraux ne vaut pas le coup. Cependant gifles quelque chose ensemble en Perl/Python/Ruby aurait probablement valu la peine. Il a passé plusieurs heures à le faire. Il aurait fallu moins d'un pour créer le script Python pour inspecter chaque fichier, match qui client il va, et puis déplacez le fichier à l'endroit approprié.....Encore une fois, ne fait pas partie de la norme d'emploi. Mais la tâche est venu comme une. Est-il préférable de le faire vous-même, passez la plus grande quantité de temps à faire de Java/C# faire la tâche, ou de dépenser beaucoup plus petite quantité de temps à le faire en Python/Perl/Ruby. Si vous utilisez C ou C++ le point est encore plus dramatique en raison de l'extra préoccupations de la programmation en C ou C++ (pointeurs, pas de tableau de vérification des limites, etc.).