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 changera pas son langage de développement principal de C++/C# / Java à un langage dynamique, quelle est l'utilisation d'un langage dynamique?

Quelles tâches d'aide peuvent être effectuées par les langages dynamiques 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 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. Mis à part l'évidence que l'employé aura une vue plus large, le les employeurs recherchent généralement un avantage "réel".

Author: szabgab, 2008-09-17

30 answers

Souvent, une tâche rapide apparaît qui ne fait 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 de l'analyse 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 puis le charger dans la base de données qu'il serait de créer un programme Java / C# pour le faire ou pour le faire à la main.

En outre, en raison de la facilité avec laquelle la plupart des langages dynamiques analysent le texte, ils sont parfaits 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, de trouver des erreurs et de couper et coller 100 fois de plus, il est souvent (mais pas toujours) plus facile 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 comptable à 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 pour migrer les données encore et encore. Il s'agit de pousser les données dans notre système, puis de les maintenir à l'avenir. Donc, même si nous sommes un magasin C# et SQL Server, j'ai utilisé Python pour convertir les données dans le format qui pourrait être importé par notre application. En fin de compte, peu importe que j'ai utilisé Python, il importe que les données soient dans le système. Mon patron était très 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 des données que de créer un programme Java équivalent. Vous pouvez également utiliser Python pour frapper contre des programmes de ligne de commande, générer une tonne de données de test garbage (mais toujours valides), etc.. assez facilement.

L'autre chose sur laquelle les langages dynamiques sont importants 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 que je vois souvent est que les gens utilisent des langages dynamiques pour maintenir des constantes dans le système. Au lieu de coder manuellement un tas d'énumérations, un langage dynamique peut être utilisé pour analyser assez facilement un fichier texte et créer le code Java/C# avec les énumérations.

SQL est un tout autre jeu de balle mais souvent vous obtenez mieux performance en coupant et en collant 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 mise en cache d'une logique compliquée dans une fonction, vous obligeant à aller ligne par ligne au lieu de dans un ensemble). En fait, il est très utile d'utiliser la définition de table pour créer automatiquement certaines procédures stockées.

, 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 Perl / Python / Ruby script une fois, puis que générer le code? S'il vous faut des heures pour coder à la main 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 é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 coder une fois mais que vous savez que vous devrez mettre à jour le code plus d'une fois, cela peut toujours avoir du sens. Si cela vous prend 2 heures pour coder à la main, 4 heures pour faire le générateur mais vous savez que vous devrez coder à la main un travail équivalent 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, les 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 ne l'avez pas fait auparavant. Si vous avez alors il peut y avoir autre chose.

Je vais vous laisser un dernier exemple d'une tâche qui aurait 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 fichiers et il fallait les regarder pour voir ce qu'ils étaient. Il a fait cette tâche à la main....Un programme Java / C # aurait gagné du temps, mais pour une fois et avec toute la surcharge de développement, cela n'en vaut pas la peine. Cependant, gifler quelque chose ensemble dans Perl/Python/Ruby en aurait probablement valu la peine. Il a passé plusieurs heures de 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 du travail standard. Mais la tâche est venu comme une. Est-il préférable de le faire vous-même, de passer le plus de temps à faire en sorte que Java/C# fasse la tâche, ou de 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 de l'extra problèmes de programmation en C ou C++ (pointeurs, pas de vérification des limites de tableau,etc.).

 81
Author: Cervo, 2011-09-27 13:54:02

Permettez-moi de tourner votre question sur sa tête en demandant à quel usage il est à un anglophone américain d'apprendre une autre langue?

Les langues que nous parlons (et celles dans lesquelles nous programmons) informent notre façon de penser. Cela peut se produire à un niveau fondamental, tel que c++ par rapport à javascript par rapport à lisp, ou au niveau de l'implémentation, dans lequel une construction ruby fournit un moment eureka pour une solution dans votre "vrai travail."

En parlant de votre vrai travail, si le marché va vers le sud et votre employeur décide de vous" taille droite", comment pensez-vous que vous allez empiler contre 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 étant égales par ailleurs, je pense que la réponse est claire.

Enfin, vous programmez pour gagner votre vie parce que vous aimez programmer... droit?

 21
Author: Pete Michaud, 2008-09-17 15:18:30

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

 14
Author: epochwolf, 2008-09-18 01:46:03

Je programme principalement en Java et C# mais j'utilise des langages dynamiques (ruby/perl) pour prendre en charge un déploiement plus fluide, lancer les tâches du système d'exploitation, générer des rapports automatisés, analyser certains journaux, etc.

Après une courte période d'apprentissage et d'expérimentation avec ruby ou perl, vous devriez être capable d'écrire des scripts de manipulation regex qui peuvent modifier les formats de données ou récupérer des informations dans les 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 rapport de quelques événements d'intérêt dans un format lisible par l'homme ou un format csv.

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

 9
Author: 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 devez faire encore et encore.

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

L'utilisation d'autres langages, par exemple Ruby, qui n'ont pas beaucoup de "coût de configuration" vous permettra de prototyper rapidement des idées avant de les implémenter en C++, Java, etc.

HTH

Bravo,

Rob

 7
Author: Rob Wells, 2008-09-17 15:31:59

Comptez-vous travailler pour cette entreprise pour toujours? Si jamais vous êtes sur le marché du travail, pehaps certains employeurs potentiels seront conscients du paradoxe Python.

 5
Author: Chris Upchurch, 2008-09-17 15:18:26

Un bon joueur de hockey joue là où se trouve la rondelle. Un grand joueur de hockey joue où la rondelle va être. - Wayne Gretzky

Notre industrie est en constante évolution. Aucune langue ne peut être mainstream pour toujours. Pour moi, Java, C++,. Net est l'endroit où se trouve la rondelle en ce moment. Et python, ruby, perl est l'endroit où la rondelle va être. Décidez vous-même si vous voulez être bon ou grand!

 5
Author: 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)

Fondamentalement, peu importe si la nouvelle langue est pertinente pour la méthodologie actuelle de l'entreprise, apprendre une nouvelle langue signifie apprendre de nouvelles idées. Quelqu'un qui est prêt à apprendre une langue qui n'est pas considéré comme "classe affaires" signifie qu'il est intéressé par la programmation, au-delà du salaire.

À citation du site de Paul:

Et les gens n'apprennent pas Python parce que cela leur procurera un emploi; ils l'apprennent parce qu'ils aiment vraiment programmer et ne sont pas satisfaits de la les langues qu'ils connaissent déjà.

Ce qui les rend exactement le genre de programmeurs les entreprises devraient vouloir embaucher. Par conséquent, ce qui, par manque d'un meilleur nom, je vais appeler le paradoxe Python: si une entreprise choisit d'écrire son logiciel dans un relativement ésotérique langue, ils seront capables de embaucher de meilleurs programmeurs, parce qu'ils attirer seulement ceux qui se souciaient assez pour l'apprendre. Et pour les programmeurs le 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 pour obtenir un emploi.

Si un employeur était prêt à payer le coût de l'apprentissage d'une nouvelle langue, il est probable que les personnes qui se sont portées volontaires pour apprendre (en supposant que ce n'était pas un cours obligatoire) seraient les mêmes que celles qui sont déjà sur le "fast track".

 5
Author: crystalattice, 2008-09-22 07:33:50

Quand j'ai appris Python, je travaillais pour un magasin Java. Parfois, je devais faire des tâches de traitement de texte sérieuses qui étaient beaucoup plus faciles à faire avec des scripts Python rapides que les programmes Java. Par exemple, si je devais analyser un fichier CSV complexe et déterminer laquelle de ses lignes correspondait aux lignes de 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 a fait de moi un bien meilleur programmeur Java; ayant appris beaucoup de mêmes concepts dans une autre langue, je sens que je comprends beaucoup mieux ces concepts. Et en ce qui concerne ce qui rend Python plus facile que Java, vous pouvez vérifier cette question: Java -> Python?

 4
Author: Eli Courtwright, 2017-05-23 12:18:10

Edit: J'ai écrit ceci avant de lire la mise à jour de la question d'origine. Voir mon autre réponse pour une meilleure réponse à la question mise à jour. Je vais laisser cela tel quel comme un avertissement contre le fait d'être le pistolet le plus rapide de l'ouest =)

Il y a plus d'une décennie, quand j'apprenais les moyens de l'ordinateur, les Vieux Sages À la Barbe expliquaient comment C et C++ sont les outils de l'industrie. Personne n'a utilisé Pascal et seuls les téméraires risqueraient leurs entreprises avec assembleur.

Et de bien sûr, personne ne mentionnerait même l'horrible chose lente et laide appelée Java . Ce ne sera pas un outil pour des affaires sérieuses.

Donc. La messagerie unifiée. Remplacez les langues dans l'histoire ci-dessus et peut-être que vous pouvez prédire l'avenir. Peut-être que vous ne pouvez pas. Point est, Java ne sera pas le dernier langage de programmation jamais et aussi vous aurez très probablement changer d'employeur ainsi. L'avenir vous charge 24 heures par jour. Être préparé.

Apprendre de nouvelles langues est bon pour vous. Aussi, dans certains cas, il peut vous donner des droits de vantardise pendant longtemps. Mon premier cours universitaire était en Scheme. Donc, quand les gens me parlent de la nouvelle langue 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 faites avec un langage de haut niveau.

 3
Author: Antti Rasinen, 2008-09-17 17:33:17

L'Apprentissage d'une nouvelle langue est un processus à long terme. Dans quelques jours, vous apprendrez les bases, oui. Mais! Comme vous le savez probablement, la véritable applicabilité pratique de n'importe quelle langue est liée à la bibliothèque standard et aux autres composants disponibles. Apprendre à utiliser efficacement nécessite beaucoup d'expérience pratique.

Peut-être que le seul avantage immédiat à court terme est que les développeurs apprennent à distinguer les ongles qui ont besoin d'un Python/Perl/Ruby-hammer. Et, s'ils sont bons, ils peut alors étudier un peu 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 dans une économie du savoir de nos jours. Il est plus sage d'investir dans ces cerveaux qui travaillent déjà pour vous.

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

  3. Nouvelles possibilités de marché et capacité à réagir plus rapidement. Même si vous n'écrivez pas Python, d'autres personnes le sont. Vos clients? Un autre vendeur dans le projet? Peut-être qu'un élément critique a été écrit dans une autre langue? Cela coûtera de l'argent et du temps, si vous n'avez pas de gens qui peuvent comprendre le code et s'interfacer avec lui.

  4. De Recrutement. Si votre entreprise a une réputation d'enseigner des choses nouvelles et intéressantes aux gens, il sera plus facile de recruter les meilleures personnes. Tout le monde fait Java/C#/C++. Ce n'est pas un moyen très efficace de se différencier sur le marché du travail.

 2
Author: Antti Rasinen, 2008-09-17 17:59:36

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

Montrez à votre patron une démo du genre "hé, j'ai fait cette chose, et ça me fait gagner autant de temps [ou mieux encore, autant$ $], imaginez si tout le monde pouvait utiliser cela combien d'argent nous économiserions"

Et puis après ils d'accord, expliquez comment il s'agit d'une autre technologie et qu'il vaut la peine d'obtenir plus de formation et de former les autres sur la façon de le faire mieux.

 2
Author: John Gardner, 2008-09-17 20:12:23

J'ai souvent constaté que l'apprentissage d'une autre langue, en particulier d'une langue typée dynamiquement, peut vous apprendre des choses sur d'autres langues et faire de vous un meilleur programmeur global. L'apprentissage de ruby, par exemple, vous apprendra la programmation orientée objet de la manière dont Java ne le fera pas, et vice versa. Dans l'ensemble, je crois qu'il vaut mieux être un programmeur bien arrondi que coincé dans une seule langue. Il vous rend plus précieux pour les entreprises/clients vous travaillez pour.

 1
Author: Mike Farmer, 2008-09-17 15:20:17

Découvrez les réponses à ce théad:

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

Apprendre de nouvelles langues, c'est garder l'esprit ouvert et apprendre de nouvelles façons de faire.

 1
Author: Jean, 2017-05-23 11:54:51

Je ne sais pas si c'est ce que vous recherchez, mais nous écrivons notre application principale avec Java dans la petite entreprise pour laquelle je travaille, mais nous avons utilisé Python pour écrire rapidement des scripts plus petits. Logiciel de sauvegarde, scripts temporaires pour manipuler les données et pousser les résultats. Il semble parfois plus facile de s'asseoir avec Python et d'écrire un script rapide que de jouer avec des classes et des trucs en java.

Les scripts temporaires qui ne vont pas rester n'ont pas besoin de beaucoup de temps de conception perdu ils.

Et je suis paresseux, mais il est bon d'apprendre autant que possible bien sûr et de voir quelles fonctionnalités existent dans d'autres langues. En savoir plus ne vous fait jamais de mal dans les futurs changements de carrière:)

 1
Author: 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 des langues typées fortes, vous risquez de ne pas être le meilleur programmeur possible.

En ce qui concerne les 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 framework (par exemple Rails, Django, Lua pour Windows) pour développer rapidement des applications simples. Hell, 37Signals est basé sur la création d'applications simples mais très utiles dans Ruby on Rails.

 1
Author: Ed Schwehm, 2008-09-17 15:24:32

Ils sont utiles pour le "Hack rapide" qui consiste à colmater une lacune dans votre langue principale pour une correction rapide (et potentiellement sale) plus rapide qu'il ne faudrait pour développer la même chose dans votre langue principale. Un exemple: un simple script en perl pour parcourir un gros fichier texte et remplacer toutes les instances d'une adresse e-mail par une autre est trivial avec un temps de 10 minutes. Pirater une application console ensemble pour faire la même chose dans votre langue principale prendrait des multiples de que.

Vous avez également l'avantage que vous exposer à des langues supplémentaires élargit vos capacités et apprendre à attaquer des problèmes d'un point de vue linguistique différent 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 boulonner 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 peuvent être exposées à la fin utilisateurs ou modifié et distribué rapidement sans nécessiter une reconstruction de l'ensemble de l'application. Ceci est utilisé à grand effet dans de nombreux jeux, notamment World of Warcraft.

 1
Author: Wolfwyrd, 2008-09-17 15:25:05

Personnellement, je travaille sur une application Java, mais je ne pouvais pas me passer de perl pour certains scripts de support.

J'ai des scripts pour retourner rapidement quelle base de données je pointe, des scripts pour exécuter des scripts de construction, des scripts pour gratter des données et comparer des choses.

Bien sûr, jepourrais faire tout cela avec java, ou peut-être des scripts shell (j'en ai aussi certains), mais qui veut compiler une classe (en s'assurant que le chemin de classe est correctement défini, etc.) quand vous avez juste besoin de quelque chose de rapide et sale. Le fait de connaître un script la langue peut supprimer 90% de ces tâches manuelles ennuyeuses/répétitives.

 1
Author: shelfoo, 2008-09-17 15:25:59

Apprendre quelque chose avec un système de POO 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 (que ce soit CLOS ou une autre technique) qui améliore, étend et développe vos capacités en tant que programmeur.

 1
Author: 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ù avoir un tournevis ou une paire de pinces rend un problème compliqué trivial.

Personne ne demande aux entrepreneurs, charpentiers, etc., " Pourquoi apprendre à utiliser un tournevis si j'ai déjà un marteau?". De 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 outils et de bien les utiliser.

Mais avant d'utiliser des outils électriques, laisse prenez un moment pour parler de la sécurité des magasins. Assurez-vous pour lire, comprendre et suivre tous les règles de sécurité qui viennent avec votre pouvoir outils. Cela réduira considérablement le risque de blessure. Et n'oubliez pas ceci: il n'y a pas de règle plus importante que de porter: lunettes de sécurité -- Norme

 1
Author: John Gardner, 2008-09-17 17:41:51

Je pense que les principaux avantages des langages dynamiques peuvent se résumer à

  1. développement Rapide
  2. Colle

Le temps de cycle de conception-code-test court rend les langages dynamiques idéaux pour le prototypage, les outils et les scripts ponctuels rapides et sales. À mon humble avis, ces deux derniers peuvent avoir un impact énorme sur la productivité d'un programmeur. Cela m'étonne de voir combien de personnes parcourent les choses manuellement au lieu de fouetter un 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 possibilité d'interfacer avec à peu près n'importe quoi (autres programmes ou langages, 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
Author: Michael Carman, 2008-09-17 19:25:42

Ne dites pas à votre employeur que vous voulez apprendre Ruby. Dites - lui que vous voulez en apprendre davantage sur l'état de l'art dans les technologies de framework Web. il se trouve que les plus chaudes sont Django et Ruby on Rails.

 1
Author: ykaganovich, 2008-09-19 00:20:40

J'ai trouvé que plus je joue avec Ruby, mieux je comprends C#.

1) Lorsque vous basculez entre ces langages, chacun d'eux a ses 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 de l'interpréteur pour certaines langues) devient plus important. Pourquoi le système de type Ruby diffère-t-il du système .Net/C# système? Quels sont les problèmes que chacun de ces résoudre? Vous vous retrouverez à comprendre à un niveau inférieur les constructions du compilateur et son influence sur le langage

3) Basculer entre Ruby et C# m'a vraiment aidé à mieux comprendre Les modèles de conception. Je suggère vraiment d'implémenter des modèles de conception communs dans un langage comme C#, puis dans un langage comme Ruby. Cela m'a souvent aidé à voir à travers une partie de la cérémonie du compilateur à la philosophie d'un particulier modèle.

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

5) Dernier point, mais non des moindres, car les nouvelles langues sont amusantes:)

 1
Author: Jimmy Lyke, 2010-05-20 04:07:23

Étant donné l'accent croissant mis sur l'exécution de langages dynamiques (da-vinci vm, etc.) sur la JVM et le nombre croissant de langages dynamiques qui s'exécutent dessus (JRuby, Grrovy, Jython), je pense que les cas d'utilisation ne font qu'augmenter. Certains des scénarios que j'ai trouvés vraiment bénéfiques sont

  1. Prototypage - utilisez RoR ou Grails pour créer des prototypes rapides avec l'avantage de pouvoir l'exécuter sur le serveur d'applications standard et (peut-être) réutiliser les services existants etc.

  2. Testing - tests unitaires droits beaucoup plus rapides dans les langages 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 de langages de script propriétaires. L'avantage secondaire pourrait être de pouvoir réutiliser du code de test unitaire que vous avez déjà écrit.

 1
Author: mataal, 2011-08-02 05:39:47

Problèmes philosophiques mis à part, je sais que j'ai obtenu de la valeur en écrivant des scripts Ruby rapides et sales pour résoudre des problèmes de force brute pour lesquels Java était trop gros. L'année dernière, j'avais trois structures de répertoires distinctes 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 de contrôle de version et je laisserai le reste à votre imagination).

Il aurait fallu beaucoup de frais généraux pour écrire un analyseur en Java, mais en Ruby I il y en avait un qui travaillait dans environ 40 minutes.

 0
Author: Jim Kiley, 2008-09-17 15:20:20

Souvent, les langages dynamc (en particulier python et lua) sont intégrés dans les programmes pour ajouter une fonctionnalité plus semblable à un plugin et parce que ce sont des 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 système de bas niveau car il a été conçu pour faciliter l'utilisation pour ajouter des fonctionnalités dans le programme, pas comme un langage de programmation général.

 0
Author: Christian P., 2008-09-17 15:22:15

Vous devriez également envisager d'apprendre un langage de programmation fonctionnel comme Scala. Il présente de nombreux avantages de Ruby, notamment une syntaxe concise et des fonctionnalités puissantes telles que les fermetures. Mais il compile des fichiers de classe Java et s'intègre de manière transparente dans une pile Java, ce qui peut le rendre beaucoup plus facile à avaler pour votre employeur.

Scala n'est pas typé dynamiquement, mais sa fonction de "conversion implicite" donne beaucoup, peut-être même tous les avantages de la typage dynamique, tout en conservant de nombreux avantages du typage statique.

 0
Author: sanity, 2008-09-17 15:36:52

Les langages dynamiques sont fantastiques pour les idées de prototypage. 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 C/C++/Java standard à l'intérieur ou vice versa, vous pouvez accélérer les bits vraiment critiques mais les laisser collés ensemble avec la flexibilité d'un langage dynamique.

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

 0
Author: 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 d'un problème impliquant des tonnes d'exceptions java sur certains serveurs de production. Parce que j'ai jeté la solution ensemble dans ruby, cela a été fait (conçu, implémenté, testé, exécuté, corrigé des bogues, réexécuté, 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 tout java ou une solution C#, mais cela m'aurait probablement pris longue.

Avoir une expertise en langage dynamique vous amène parfois à des solutions plus simples dans des langages moins dynamiques. En ruby, perl ou python, vous recherchez intuitivement des tableaux associatifs (hachages, dictionnaires, quel que soit le mot que vous souhaitez utiliser) pour les plus petites choses, où vous pourriez être tenté de créer une hiérarchie de classes complexe dans un langage typé statiquement lorsque le problème ne l'exige pas nécessairement.

De plus, vous pouvez brancher la plupart des langages de script dans la plupart des runtimes. Donc, il ne doit pas être soit / ou.

 0
Author: JasonTrue, 2008-09-17 17:58:26

Le "vrai 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 chiffres durs pour justifier la dépense et un employeur vous fera très probablement travailler sur ce qui fait de l'argent maintenant plutôt que de vous faire travailler sur des

La seule fois où vous pouvez obtenir une formation sur le sou de l'employeur, c'est quand ils perçoivent un besoin et c'est moins cher que d'embaucher une nouvelle personne qui a déjà cette compétence.

 0
Author: Dan, 2008-09-17 18:01:03