Pourquoi apprendre Perl, Python, Ruby si L'entreprise utilise C++, C# ou Java comme langage d'application? [fermé]

je me demande pourquoi un développeur C++, C#, Java voudrait apprendre un langage dynamique?

en supposant que la société ne passe pas son langage de développement principal de C++/C#/Java à un langage dynamique, à quoi sert un langage dynamique?

quelles tâches d'aide les langues dynamiques peuvent-elles accomplir plus rapidement ou mieux après seulement quelques jours d'apprentissage qu'avec le langage statique que vous utilisez depuis plusieurs années?

Mise à jour

Après avoir vu les premières réponses, il est clair qu'il y a deux questions. Mon intérêt principal serait quelque chose qui est justifiable pour l'employeur comme une dépense. C'est-à-dire que je cherche des justifications pour que l'employeur finance l'apprentissage d'une langue dynamique. En dehors de l'évidence que l'employé aura une vue plus large, le les employeurs recherchent habituellement des avantages "réels".

67
demandé sur szabgab 2008-09-17 19:16:35

30 réponses

il arrive souvent qu'une tâche rapide ne fasse pas partie du logiciel principal que vous développez. 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 du parsing de texte en Perl/Ruby/Python qu'en Java ou C# (en partie parce qu'il est beaucoup plus facile d'utiliser des expressions régulières). Il faudra probablement beaucoup moins de temps pour analyser le fichier texte en utilisant Perl / Ruby / Python (ou peut-être même vbscript cringe et ensuite le charger dans la base de données qu'il ne serait de créer un programme Java/C# pour le faire ou de le faire à la main.

aussi, en raison de la facilité à laquelle la plupart des langues dynamiques parse texte, ils sont grands pour la génération de code. Bien sûr votre projet final doit être en C#/Java / Transact SQL mais au lieu de couper et coller 100 fois, trouver des erreurs, et couper et coller 100 fois de plus il est souvent (mais pas toujours) plus facile juste d'utiliser un générateur de code.

un exemple récent au travail est que nous avons besoin d'obtenir des données d'un système de comptabilité dans notre système de comptabilité. 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 pour migrer les données encore et encore. Il s'agit de transférer les données dans notre système et de Les y maintenir à l'avenir. Donc, même si nous sommes un C# et SQL Server shop, J'ai utilisé Python pour convertir les données dans le format qui pourrait être importé par notre application. Finalement ce n'est pas important que j'ai utilisé python, c'est important que les données soient dans le système. Mon patron était plutôt impressionné.

où je vois souvent les langages dynamiques utilisés pour les tests is. Il est beaucoup plus facile de créer un programme Python/Perl/Ruby pour créer un lien vers un service web et y jeter quelques données que de créer le programme Java équivalent. Vous pouvez également utiliser python pour frapper contre la ligne de commande programmes, générer une tonne de déchets (mais toujours valide) données d'essai, etc.. assez facilement.

l'autre chose que les langues dynamiques sont grandes Sur est la génération de code. La création de la C#/C++/Java code. En voici quelques exemples:

la première tâche de génération de code que je vois souvent est les gens qui utilisent des langages dynamiques pour maintenir des constantes dans le système. Au lieu de coder à la main un tas d'enums, un langage dynamique peut être utilisé pour analyser assez facilement un fichier texte et créer le code Java / C# avec les enums.

SQL est un tout autre jeu de balle, mais souvent vous obtenez de meilleures performances par couper et coller 100 fois au lieu d'essayer de faire une fonction (en raison de la mise en cache des plans d'exécution ou de la logique compliquée dans une fonction qui vous amène à aller ligne par ligne au lieu d'un ensemble). En fait, il est tout à fait utile d'utiliser la définition de table pour 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 ne le faites pas, est-ce plus amusant de passer du temps à couper/coller ou est-ce plus amusant de créer un script Perl/Python/Ruby une fois et puis d'avoir celui de générer le code? S'il vous faut des heures pour coder quelque chose à la main, 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 économisé du temps et donc de l'argent. S'il vous faut plus de temps pour créer un générateur de code qu'il n'en faut pour manipuler le code une seule fois, mais vous savez que vous devrez mettre à jour le code plus d'une fois, il peut encore faire sens. S'il vous faut 2 heures pour coder à la main, 4 heures pour faire le générateur, mais vous savez que vous aurez à la main code équivalent travailler encore 5 ou 6 fois qu'il est évidemment préférable de créer le générateur.

aussi certaines choses sont plus faciles avec les langages dynamiques que Java/C#/C/C++. En particulier, des expressions régulières viennent à l'esprit. Si vous commencez à utiliser des expressions régulières en Perl et réalisez leur valeur, vous pouvez soudainement commencer à utiliser la bibliothèque D'expressions régulières Java 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 beaucoup de dossiers et vous avez dû regarder dedans pour voir ce qu'ils étaient. Il a fait cette tâche à la main....Un programme Java / C# aurait fait gagner du temps, mais pour une fois et avec tout le développement frais généraux ne vaut pas le coup. Cependant, taper quelque chose ensemble en Perl/Python/Ruby en 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, ça ne fait pas partie du travail standard. Mais la tâche est venu comme une. Est-il préférable de le faire vous-même, passer le plus de temps à faire Java / C# do la tâche, ou passer beaucoup moins de temps à le faire en Python/Perl/Ruby. Si vous utilisez C ou C++ le point est encore plus dramatique en raison des préoccupations supplémentaires de programmation en C ou c++ (pointeurs, pas de vérification des limites du tableau, etc.).

81
répondu Cervo 2011-09-27 13:54:02

permettez-moi de tourner votre question sur sa tête en demandant à quoi il sert à un anglophone américain d'apprendre une autre langue?

les langues que nous parlons (et celles que nous programmons) guident notre façon de penser. Cela peut se produire à un niveau fondamental, comme c++ versus javascript versus lisp, ou à un niveau d'implémentation, dans lequel une construction ruby fournit un moment eureka pour une solution dans votre "travail réel."

en parlant de votre vrai travail, si le le marché tourne mal et votre employeur décide de "bonne taille" vous, comment pensez-vous que vous allez vous en prendre à un gars qui est flexible parce qu'il est écrit des logiciels dans des dizaines de langues, au lieu de votre exposition limitée? Toutes choses égales par ailleurs, je pense que la réponse est claire.

enfin, vous programmez pour vivre parce que vous aimez la programmation... droit?

21
répondu Pete Michaud 2008-09-17 15:18:30

je pense que personne ne l'a encore mentionné. Apprendre une nouvelle langue peut être amusant! C'est sûrement une raison suffisante pour essayer quelque chose de nouveau.

14
répondu epochwolf 2008-09-18 01:46:03

Je programme principalement en Java et C# mais j'utilise des langages dynamiques (ruby/perl) pour supporter un déploiement plus fluide, des tâches de démarrage OS, des rapports automatisés, certains parsing log, etc.

après une courte période d'apprentissage et d'expérimentation avec ruby ou perl, vous devriez être en mesure d'écrire des scripts de manipulation regex qui peuvent modifier les formats de données ou saisir des informations à partir des journaux. Un exemple d'un petit rubis/script perl qui peut être écrite rapidement serait un script pour analyser un très gros fichier journal et le rapport que quelques événements d'intérêt dans un format lisible par l'homme ou un format csv.

aussi, avoir de l'expérience avec une variété de langages de programmation différents devrait vous aider à penser à de nouvelles façons d'aborder les problèmes dans des langages plus structurés comme Java, C++, et C#.

9
répondu Alex B 2008-09-17 15:24:20

une grande raison d'apprendre Perl ou Ruby est de vous aider à automatiser toutes les tâches compliquées que vous avez à faire encore et encore.

ou si vous devez analyser le contenu des fichiers journaux et vous avez besoin de plus de mungeing que Disponible en utilisant grep, sed, etc.

aussi en utilisant D'autres langues, par exemple Ruby, qui n'ont pas beaucoup de" coût de configuration " vous permettra de prototyper rapidement des idées avant de les mettre en œuvre en C++, Java, etc.

HTH

cheers,

Rob

7
répondu Rob Wells 2008-09-17 15:31:59

attendez-vous à travailler pour cette compagnie pour toujours? Si jamais vous êtes sur le marché du travail, pehaps certains employeurs potentiels seront au courant du Python paradox .

5
répondu Chris Upchurch 2008-09-17 15:18:26

un bon joueur de hockey joue là où la rondelle est. Un grand joueur de hockey joue où le palet va être. - Wayne Gretzky

notre industrie est en constante évolution. Aucune langue ne peut être à jamais dominante. Pour moi Java, C++, .Net est là où la rondelle est en ce moment. Et python, ruby, perl est l'endroit où le palet va être. Décidez vous-même si vous voulez être bon ou grand!

5
répondu liangzan 2008-09-18 13:43:56

Paul Graham a publié un article il y a plusieurs années sur les raisons pour lesquelles les programmeurs Python ont fait de meilleurs programmeurs Java. ( http://www.paulgraham.com/pypar.html )

en gros, que la nouvelle langue soit pertinente ou non par rapport à la méthodologie actuelle de l'entreprise, apprendre une nouvelle langue signifie apprendre de nouvelles idées. Quelqu'un qui est prêt à apprendre un langage qui n'est pas considéré comme "classe affaires" signifie qu'il est intéressé par la programmation, au-delà juste de gagner un chèque de règlement.

pour citer le site de Paul:

et les gens n'apprennent pas le Python parce que elle permettra d'obtenir un emploi; ils l'apprennent parce qu'ils vraiment comme programme et ne sont pas satisfaits avec le les langues qu'ils connaissent déjà.

ce qui les rend exactement le genre de les entreprises de programmation devraient vouloir embaucher. Par conséquent, ce qui, par manque d'un meilleur nom, je vais appeler le paradoxe de Python: Si un l'entreprise choisit d'écrire son logiciels dans un environnement comparativement ésotérique la langue, ils pourront engager de meilleurs programmeurs, parce qu'ils attirer seulement ceux qui se souciait assez pour l'apprendre. Et pour les programmeurs l' le paradoxe est encore plus prononcée: les langue à apprendre, si vous voulez obtenir un bon travail, est une langue que les gens n'apprenez pas simplement à trouver un emploi.

si un employeur était disposé à payer le coût de l'apprentissage d'une nouvelle langue, les chances est-ce que les gens qui se sont portés volontaires pour apprendre (en supposant que ce n'était pas un cours obligatoire) seraient les mêmes que ceux qui sont déjà sur la "voie rapide"?

5
répondu crystalattice 2008-09-22 07:33:50

quand J'ai appris Python, j'ai travaillé pour une boutique Java. De temps en temps, je devais faire de sérieuses tâches de traitement de texte qui étaient beaucoup plus faciles à faire avec des scripts Python rapides que des programmes Java. Par exemple, si je devais analyser un fichier CSV complexe et trouver lequel de ses lignes correspondait à des lignes dans notre base de données Oracle, C'était beaucoup plus facile à faire avec Python que Java.

plus que cela, j'ai trouvé que l'apprentissage de Python fait de moi un bien meilleur programmeur Java; ayant appris plusieurs des mêmes concepts dans une autre langue, j'ai le sentiment de mieux les comprendre. Et pour ce qui est de ce qui rend Python plus facile que Java, vous pourriez vérifier cette question: Java -> Python?

4
répondu Eli Courtwright 2017-05-23 12:18:10

Edit: j'ai écrit ceci avant de lire la mise à jour de la question originale. Voir mon autre réponse pour une meilleure réponse à la question mise à jour. Je pars de ce qu'est un avertissement contre le fait d'être le plus rapide arme à feu dans l'ouest =)

il y a plus d'une décennie, quand j'apprenais les méthodes de L'ordinateur, les vieux sages barbes expliquaient comment le C et le C++ sont les outils de l'industrie. Personne n'a utilisé Pascal et seuls les téméraires risqueraient leur entreprises avec monteur.

Et bien sûr, personne ne pourrait même parler de la terrible lent laid chose appelé Java . Il ne sera pas un outil pour les entreprises sérieuses.

So. La messagerie unifiée. Remplacez les langues dans l'histoire ci-dessus et peut-être Pouvez-vous prédire l'avenir. Peut-être pas. Le point est, Java ne sera pas le dernier langage de programmation jamais et aussi vous serez très probablement changer d'employeurs ainsi. Le futur vous fait payer 24 heures par jour jour. Être préparé.

apprendre de nouvelles langues est bon pour vous. En outre, dans certains cas, il peut vous donner des droits de vantardise pour une longue période. Mon premier cours universitaire était Scheme. Alors quand les gens me parlent du nouveau language du jour , ma réponse est quelque chose comme " fonctions de première classe? C'est donc au siècle dernier."

Et bien sûr, vous obtenez plus de choses avec un langage de haut niveau.

3
répondu Antti Rasinen 2008-09-17 17:33:17

apprendre une nouvelle langue est un processus à long terme. Dans quelques jours vous allez apprendre les bases, oui. Mais! Comme vous le savez probablement, l'applicabilité pratique réelle de n'importe quelle langue est liée à la bibliothèque standard et à d'autres composants disponibles. Apprendre à utiliser l'efficacité demande beaucoup d'expérience pratique.

peut-être le seul avantage immédiat à court terme est que les développeurs apprennent à distinguer les clous qui ont besoin D'un Python/Perl/Ruby-hammer. Et, si ils sont bons, ils peuvent ensuite étudier certains plus (en ligne, peut-être!) et de devenir de véritables experts.

les avantages à long terme sont plus faciles à imaginer:

  1. L'employé devient un meilleur développeur. Meilleur développeur => meilleure qualité. Nous vivons actuellement dans une économie du savoir. Il est plus sage d'investir dans ces cerveaux qui travaillent déjà pour vous.

  2. il est plus facile de s'adapter lorsque le prochain grosse langue émerge. Il est très probable que la NBL aura de nombreuses fonctionnalités présentes dans les langages de script actuels: fonctions de première classe, fermetures, flux/générateurs, etc.

  3. les Nouvelles possibilités du marché et la capacité de répondre plus rapidement. Même si vous n'écrivez pas Python, les autres personnes sont . Vos clients? Un autre vendeur dans le projet? Peut-être un élément essentiel a été écrit dans une autre langue? Il coût argent et temps, si vous n'avez pas de gens qui peuvent comprendre le code et l'interface avec elle.

  4. recrutement. Si votre entreprise a une réputation d'enseignement nouveau et intéressant pour les gens, il sera plus facile de recruter les meilleurs. tout le monde est fait Java/C#/C++. Ce n'est pas un moyen très efficace de se différencier sur le marché du travail.

2
répondu Antti Rasinen 2008-09-17 17:59:36

à répondre à la mise à jour de question, c'est un poulet/oeuf problème. La meilleure façon de justifier une dépense est de montrer comment elle réduit un coût ailleurs, de sorte que vous pourriez avoir besoin de passer un peu de temps supplémentaire/personnel pour apprendre quelque chose d'abord pour construire une sorte de prototype fonctionnel.

Montrer à votre patron une démo comme "hey, j'ai fait cette chose, et il me sauve c'est beaucoup de temps [ou, mieux encore, ce beaucoup de $$], imaginez si tout le monde pouvait utiliser cette combien d'argent nous permettrait d'économiser"

et ensuite, après qu'ils se sont mis d'accord, expliquer comment c'est une autre technologie et qu'il vaut la peine d'obtenir plus de formation, et la formation pour les autres sur la façon de le faire mieux.

2
répondu John Gardner 2008-09-17 20:12:23

j'ai souvent constaté que l'apprentissage d'une autre langue, en particulier une langue dactylographiée dynamiquement, peut vous apprendre des choses sur d'autres langues et faire de vous un programmeur globalement meilleur. Apprendre ruby, par exemple, vous enseignera la programmation orientée objet de manières Java wont, et vice versa. Dans l'ensemble, je pense qu'il vaut mieux être un programmeur complet que coincé dans une seule langue. Il vous rend plus précieux pour les entreprises/clients vous travaillez pour.

1
répondu Mike Farmer 2008-09-17 15:20:17

découvrez les réponses à cette annonce:

https://stackoverflow.com/questions/76364/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-ski#84112

apprendre de nouvelles langues consiste à garder l'esprit ouvert et à apprendre de nouvelles façons de faire les choses.

1
répondu Jean 2017-05-23 11:54:51

Je ne suis pas sûr que ce soit ce que vous cherchez, mais nous écrivons notre application principale avec Java à la petite entreprise pour laquelle je travaille, mais nous avons utilisé python pour écrire des scripts plus petits rapidement. Logiciel de sauvegarde, des scripts temporaires pour manipuler les données et faire sortir les résultats. Il semble juste plus facile parfois de s'asseoir avec python et d'écrire un script rapide que de gâcher des cours et des trucs en java.

les scripts temporaires qui ne vont pas rester dans les parages n'ont pas besoin de beaucoup de design le temps perdu sur eux.

et je suis paresseux, mais il est bon d'apprendre tout ce que vous pouvez bien sûr et de voir quelles caractéristiques existent dans d'autres langues. En savoir plus ne fait jamais de mal à vous à l'avenir des changements de carrière :)

1
répondu Arthur Thomas 2008-09-17 15:23:30

il s'agit d'élargir vos horizons en tant que développeur. Si vous vous limitez à seulement fort typée langues, vous ne finissent pas le meilleur programmeur que vous pouviez.

quant aux tâches, Python/Lua/Ruby/Perl sont parfaits pour les petites tâches simples, comme trouver des fichiers et les renommer. Ils fonctionnent également très bien lorsqu'ils sont associés à un cadre (par exemple Rails, Django, Lua pour Windows) pour développer des applications simples rapidement. Hell, 37Signals est basé sur la création simple mais très utile applications en Ruby sur Rails.

1
répondu Ed Schwehm 2008-09-17 15:24:32

ils sont utiles pour le" Quick Hack " qui est pour combler un vide dans votre langue principale pour une correction rapide (et potentiellement Sale) plus vite qu'il ne faudrait pour développer la même dans votre langue principale. Un exemple: un script simple en perl pour passer par un gros fichier texte et remplacer toutes les instances d'une adresse e-mail par une autre est trivial avec une quantité de temps pris dans la gamme de 10 minutes. Hacker une console app pour faire de même dans votre langue principale prendrait multiples.

vous avez également l'avantage que vous vous exposez à des langues supplémentaires élargit vos capacités et apprendre à attaquer les problèmes d'une perspective de langues différentes peut être aussi précieux que la langue elle-même.

Enfin, les langages de script sont très utiles dans le domaine de l'extension. Prenez LUA comme exemple. Vous pouvez connecter un interpréteur lua dans votre application avec très peu de frais généraux et vous avez maintenant un moyen de créer des fonctionnalités de script riches qui peut être exposé aux utilisateurs finaux ou modifié et distribué rapidement sans nécessiter une reconstruction de l'application entière. Cela est utilisé à grand effet dans de nombreux jeux, notamment World of Warcraft.

1
répondu Wolfwyrd 2008-09-17 15:25:05

personnellement, je travaille sur une application Java, mais je ne pouvais pas m'en sortir sans perl pour certains scripts de support.

j'ai des scripts pour retourner rapidement ce que je pointe vers la base de données, des scripts pour exécuter des scripts de construction, des scripts pour gratter des données et comparer des trucs.

bien Sûr que je pourrait tout faire avec java, ou peut-être des scripts shell (j'ai un peu trop), mais qui veut compiler une classe (en s'assurant de la classe est situé, etc) lorsque vous juste besoin quelque chose de rapide et sale. La connaissance d'un langage de script peut supprimer 90% de ces tâches manuelles ennuyeuses/répétitives.

1
répondu shelfoo 2008-09-17 15:25:59

apprendre quelque chose avec un système OOP flexible, comme Lisp ou Perl (voir Moose), vous permettra de mieux développer et comprendre vos réflexions sur le génie logiciel. Idéalement, chaque langue a une facette unique (QU'il s'agisse de CLOS ou d'une autre technique) qui améliore, étend et développe vos capacités en tant que programmeur.

1
répondu jshirley 2008-09-17 16:42:30

si tout ce que vous avez est un marteau, chaque problème commence à ressembler à un clou.

il y a des moments où le fait d'avoir un tournevis ou une paire de pinces rend un problème compliqué banal.

personne ne demande aux entrepreneurs, charpentiers, etc, " Pourquoi apprendre à utiliser un tournevis si j'ai déjà un marteau?". Les très bons entrepreneurs / charpentiers ont des tonnes d'outils et savent bien les utiliser. Tous les programmeurs devraient faire la même chose, apprendre à utiliser de nouveaux d'outils et de bien les utiliser.

mais avant d'utiliser des outils électriques, permet prenez un moment pour parler de sécurité au travail. Assurez-vous pour lire, comprendre et suivre toutes les les règles de sécurité qui viennent avec votre appareil outils. Cela permettra de réduire considérablement le risque de blessure. Et n'oubliez pas ceci: il n'y a pas de règle plus importante que de porter ces: lunettes de sécurité -- Norme 151910920"

1
répondu John Gardner 2008-09-17 17:41:51

je pense que les principaux avantages de la dynamique des langues se résument à

  1. développement rapide
  2. Colle

le cycle court de conception-code-test rend les langages dynamiques idéaux pour le prototypage, les outils et les scripts rapides et sales. IMHO, les deux derniers peuvent avoir un impact énorme sur la productivité d'un programmeur. Je suis étonné de voir combien de personnes se faufilent à travers les choses à la main au lieu de outil pour le faire pour eux. Je pense que c'est parce qu'ils n'ont pas quelque chose comme Perl dans leur boîte à outils.

la capacité d'interfacer avec à peu près n'importe quoi (autres programmes ou langues, bases de données, etc. facilite la réutilisation des travaux existants et d'automatiser les tâches qui doivent être effectuées manuellement.

1
répondu Michael Carman 2008-09-17 19:25:42

ne dites pas à votre employeur que vous voulez apprendre le Ruby. Dites-lui que vous voulez en savoir plus sur l'état de l'art dans les technologies de cadre web. il se trouve que les plus chaudes sont Django et Ruby on Rails.

1
répondu ykaganovich 2008-09-19 00:20:40

j'ai trouvé plus que je joue avec le Rubis, la meilleure que j'ai compris C#.

1) lorsque vous basculez entre ces langues que chacun d'eux a leurs propres constructions et philosophies derrière les problèmes qu'ils essaient de résoudre. Cela vous aidera à trouver le bon outil pour le travail ou le domaine d'un problème .

2) le rôle du compilateur (ou interprète pour certaines langues) devient plus importante. Pourquoi le système de type Ruby diffère-t-il du système .Net/C#? Quels sont les problèmes que chacun d'eux résout? Vous vous trouverez à comprendre à un niveau inférieur Les Constructions du compilateur et son influence sur la langue

3) passer entre Ruby et C# m'a vraiment aidé à mieux comprendre Design Patterns . Je suggère vraiment d'implémenter des modèles de design communs dans un langage comme C# et puis dans un langage comme le Rubis. Il m'a souvent aidé à voir à travers une partie de la cérémonie de compilation à la philosophie d'un modèle particulier.

4) Un autre communauté . C#, Java, Ruby, Python, etc tous ont différentes communautés qui peuvent aider à engager vos capacités. Il est un excellent moyen de prendre votre métier au niveau suivant.

5) en Dernier, mais pas moins, parce que les nouvelles langues sont le fun :)

1
répondu Jimmy Lyke 2010-05-20 04:07:23

étant donné l'importance croissante accordée à l'exécution de langages dynamiques (da-vinci vm etc.( JRuby, Grrovy, Jython) je pense que les cas d'utilisation augmentent à peine. Certains des scénarios que j'ai trouvés vraiment bénéciés sont

  1. prototypage - utiliser RoR ou Grails pour construire des prototypes rapides avec l'avantage d'être en mesure de l'exécuter sur le serveur d'app standard et (peut-être) réutiliser les services existants, etc.

  2. "Testing - test de l'Unité de droite beaucoup plus rapide dans les langues dynamiques

  3. Performance/automation test scripting - certains de ces outils commencent à permettre l'utilisation du langage dynamique standard de choix pour écrire les scripts de test au lieu des langages de script propriétaires. L'avantage secondaire pourrait être de pouvoir réutiliser certains tests unitaires le code que vous avez déjà écrit.

1
répondu mataal 2011-08-02 05:39:47

questions philosophiques mises à part, je sais que J'ai obtenu de la valeur de l'écriture rapide-et-sale Ruby scripts pour résoudre brute-force problèmes que Java était juste trop grand pour. L'année dernière, j'ai eu trois structures de répertoires séparées qui étaient toutes plus ou moins les mêmes, mais avec beaucoup de différences entre les fichiers (le client n'avait pas entendu parler du contrôle de version et je laisse le reste à votre imagination).

il aurait fallu beaucoup de temps pour écrire un analyseur à Java, mais à Ruby, j'en ai eu un qui travaillait en 40 minutes.

0
répondu Jim Kiley 2008-09-17 15:20:20

souvent, les langages dynamc (en particulier python et lua) sont intégrés dans des programmes pour ajouter une fonctionnalité semblable à celle d'un plugin et parce qu'il s'agit de langages de haut niveau qui facilitent l'ajout de certains comportements, où un langage de bas/moyen niveau n'est pas nécessaire.

Lua manque spécifiquement de tous les appels de système de bas niveau parce qu'il a été conçu pour la facilité d'utilisation pour ajouter une fonctionnalité dans le programme, pas comme un langage de programmation générale.

0
répondu Christian P. 2008-09-17 15:22:15

vous devriez également envisager d'apprendre un langage de programmation fonctionnel comme le Scala. Il a de nombreux avantages de Ruby, y compris une syntaxe concise, et des fonctionnalités puissantes comme les fermetures. Mais il compile aux dossiers de classe de Java et et s'intègre de façon transparente dans une pile de Java, qui peut le rendre beaucoup plus facile pour votre employeur d'avaler.

Scala n'est pas dynamiquement dactylographié, mais son" conversion implicite " caractéristique donne beaucoup, peut-être même tous les avantages de la dynamique Dactylographie, tout en conservant bon nombre des avantages de la dactylographie statique.

0
répondu sanity 2008-09-17 15:36:52

les langages dynamiques sont fantastiques pour le prototypage des idées. Souvent pour des raisons de performance, ils ne fonctionneront pas pour des solutions ou des produits permanents. mais , avec des langages comme Python, qui vous permettent d'intégrer la norme C/C++/Java à l'intérieur d'eux ou vice versa, vous pouvez accélérer les bits vraiment critiques mais le laisser collé avec la flexibilité d'un langage dynamique.

...et ainsi, vous obtenez le meilleur des deux mondes. Si vous avez besoin de justifier en termes de pourquoi plus de gens devraient apprendre ces langues, il suffit de souligner beaucoup plus rapidement vous pouvez développer le même logiciel et combien plus robuste est la solution (parce que débogage/correction des problèmes dans les langues dynamiques est dans mon expérience, considérablement plus facile!).

0
répondu Jon Cage 2008-09-17 17:48:25

connaître grep et ruby a permis de réduire un problème, et de vérifier le correctif pour, un problème impliquant des tonnes d'exceptions java sur certains serveurs de production. Parce que j'ai jeté la solution ensemble dans ruby, il a été fait (conçu, mis en œuvre, testé, lancé, bug-corrigé, relancé, amélioré, résultats analysés) en un après-midi au lieu de quelques jours. J'aurais pu résoudre le même problème en utilisant une solution entièrement java ou une solution C#, mais cela m'aurait probablement pris plus de temps.

avoir une expertise linguistique dynamique vous amène parfois à des solutions plus simples dans des langues moins dynamiques. Dans ruby, perl ou python, vous atteignez intuitivement des tableaux associatifs (hashes, dictionnaires, n'importe quel mot que vous voulez utiliser) pour les plus petites choses, où vous pourriez être tenté de créer une hiérarchie de classe complexe dans un langage statiquement typé quand le problème ne l'exige pas nécessairement.

Plus vous pouvez brancher la plupart des scripts langages dans la plupart des temps d'exécution. Donc il n'a pas à être " soit/soit.

0
répondu JasonTrue 2008-09-17 17:58:26

le "véritable avantage" qu'un employeur pourrait voir est un meilleur programmeur qui peut mettre en œuvre des solutions plus rapidement; cependant, vous ne serez pas en mesure de fournir des nombres durs pour justifier la dépense et un employeur vous aura très probablement travailler sur ce qui fait de l'argent maintenant au lieu de vous avoir à travailler sur des choses qui rendent l'avenir meilleur.

la seule fois où vous pouvez obtenir une formation aux frais de l'employeur, c'est quand ils en ressentent le besoin et que c'est moins cher que d'engager un nouveau personne qui a déjà de cette compétence.

0
répondu Dan 2008-09-17 18:01:03