Pourquoi apprendre le Perl, Python, Ruby, si la société est à l'aide de C++, C# ou Java, comme la langue de l'application?
Je me demande pourquoi un C++, C#, Java développeur veux apprendre un langage dynamique?
En supposant que la société ne veut pas passer son principal langage de développement C++/C#/Java pour une dynamique de l'utilisation qui est là pour un langage dynamique?
Ce qui helper les tâches peuvent être effectuées par la dynamique des langues plus rapide ou mieux, après seulement quelques jours d'apprentissage de la statique de la langue que vous utilisez pour 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, je suis à la recherche pour les justifications de l'employeur pour financer l'apprentissage d'un langage dynamique. Outre l'évident que l'employé n'aura point de vue plus large, l'
les employeurs sont généralement à la recherche pour certains "vrais" bénéficier.
- Si une question a des dizaines de upvotes il suffit de laisser la fichue chose d'ouvert. Clairement c'est utile à quelqu'un. N'est-ce pas le point de l'ensemble de ce site web. Arrêtez-vous juste le réflexe de fermeture des choses.
Vous devez vous connecter pour publier un commentaire.
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 de la 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.
Aussi 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.).
Laissez-moi votre question dans sa tête en se demandant ce utiliser est d'une Amérique anglophone pour apprendre une autre langue?
Les langues que nous parlons (et ceux que nous avons programme) informer de la façon dont nous pensons. Cela peut se produire à un niveau fondamental, tels que c++ rapport à javascript rapport à lisp, ou sur un niveau de mise en œuvre, dans lequel un rubis construire fournit une épiphanie pour une solution dans votre "vrai travail."
De parler de votre travail réel, si le marché s'étend au sud et à votre employeur décide de la "bonne taille" et vous, comment pensez-vous vous situez par rapport à un gars qui est flexible, car 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 programme pour une vie parce que vous aimez la programmation... droit?
Je ne pense pas que quelqu'un l'a mentionné encore. L'apprentissage d'une nouvelle langue peut être amusant! Certes, c'est une assez bonne raison pour essayer quelque chose de nouveau.
Je programme principalement en Java et en C#, mais l'utilisation de langages dynamiques (ruby/perl) à l'appui de la lisse de déploiement, le coup d'envoi des OS des tâches, reporting automatisé, certains journaux d'analyse, etc.
Après une courte période d'apprentissage et d'expérimentation, avec ruby ou perl, vous devriez être en mesure d'écrire quelques regex manipuler des scripts qui peuvent modifier les formats de données ou de saisir des informations à partir de journaux. Un exemple d'un petit rubis/script perl qui peut être écrite rapidement serait un script pour analyser un très grand 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 différents langages de programmation devrait vous aider à penser à de nouvelles façons de s'attaquer à des problèmes plus structuré des langues comme Java, C++ et C#.
Une grande raison pour apprendre le Perl ou Ruby est de vous aider à automatiser les tâches compliquées que vous avez à faire plus et plus.
Ou si vous avez d'analyser le contenu des fichiers journaux et vous avez besoin de plus mungeing que ce qui est disponible à l'aide de grep, sed, etc.
Également l'utilisation d'autres langues, par exemple, Ruby, qui n'ont pas beaucoup de "coût d'installation" va vous permettre de prototyper rapidement les idées avant de les mettre en œuvre en C++, Java, etc.
HTH
acclamations,
Rob
Attendez-vous à travailler pour cette compagnie pour toujours? Si jamais vous êtes sur le marché de l'emploi, pehaps certains employeurs potentiels sont conscients de la Python paradoxe.
Un bon joueur de hockey joue là où la rondelle. Un grand joueur de hockey joue où le palet va être.
- Wayne Gretzky
Notre industrie est toujours en train de changer. Aucune langue ne peut être intégrer à jamais. Pour moi, Java, C++, .Net est là où la rondelle est maintenant. Et python, ruby, perl est l'endroit où le palet va être. Décidez vous-même si vous voulez être bon ou grand!
Paul Graham a publié un article il y a plusieurs années sur le pourquoi de Python pour les programmeurs mieux les programmeurs Java. (http://www.paulgraham.com/pypar.html)
Fondamentalement, indépendamment du fait que la nouvelle langue est applicable à la société de la méthodologie actuelle, l'apprentissage d'une nouvelle langue, c'est 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.
Pour citer Paul du site:
Si un employeur est prêt à payer pour le coût de l'apprentissage d'une nouvelle langue, les chances sont les gens qui se sont portés volontaires pour apprendre (en supposant qu'il n'était pas un cours obligatoire) serait la même, les gens sont déjà sur le "fast track".
Quand j'ai appris le Python, j'ai travaillé sur un projet Java boutique. Parfois, je serais obligé de faire de sérieuses de traitement de texte tâches qui étaient beaucoup plus facile à faire avec Python rapide scripts que des programmes Java. Par exemple, si je devais analyser un complexe de fichier CSV et de savoir qui de ses lignes correspond à des lignes dans notre base de données Oracle, c'était beaucoup plus facile à faire avec Python que Java.
Plus de cela, j'ai trouvé que l'apprentissage de Python m'a fait un bien meilleur programmeur Java; ayant appris un grand nombre des mêmes concepts dans une autre langue, je pense que je comprends ces concepts beaucoup mieux. Et quant à ce que fait Python plus facile que Java, vous pouvez vérifier sur cette question: Java -> Python?
Edit: j'ai écrit ça avant de lire la mise à jour à la question d'origine. Voir mon autre réponse pour une meilleure réponse à la mise à jour de question. Je pars de ce qu'est un avertissement contre le fait d'être le plus rapide arme à feu dans l'ouest =)
Plus d'une décennie, lorsque j'ai été d'apprendre les voies de l'Ordinateur, le Vieux Sage des Hommes Avec des Barbes a expliqué comment le C et le C++ sont les outils de l'industrie. Pas celui utilisé Pascal et seul le téméraire risque de leurs entreprises avec l'assembleur.
Et bien sûr, pas qu'on pourrait même parler de la terrible lent laid chose appelé Java. Il ne sera pas un outil pour les entreprises sérieuses.
Donc. La messagerie unifiée. Remplacer les langues dans le cas ci-dessus, et peut-être vous pouvez prédire l'avenir. Peut-être que vous ne le pouvez pas. Le Point est, Java ne sera pas le Dernier Langage de Programmation jamais et aussi vous ne serez plus susceptibles de changer d'employeur ainsi. L'avenir est à la charge à vous 24 heures par jour. Être préparé.
L'apprentissage de nouvelles langues est bon pour vous. Aussi, dans certains cas, il peut vous donner les droits de vantardise pour un long moment. Mon premier cours à l'université a été dans le Schéma. Alors, quand les gens me parlent de la nouvelle langue du jour, ma réponse est quelque chose comme "la Première des fonctions de classe? C'est donc au siècle dernier."
Et bien sûr, vous obtenez plus de choses à l' avec un langage de haut niveau.
L'apprentissage d'une nouvelle langue est un processus à long terme. Dans quelques jours vous allez apprendre les bases, oui. Mais! Comme vous le savez probablement, le réel et l'applicabilité pratique de la langue est lié à la bibliothèque standard, et d'autres composants disponibles. Apprendre à utiliser efficacement nécessite beaucoup de mains sur l'expérience.
Peut-être le seul à court terme, les développeurs apprennent à distinguer les clous qui ont besoin d'un Python/Perl/Ruby -marteau. Et, s'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:
L'employé devient un meilleur développeur. Meilleur développeur => meilleure qualité. Nous vivons dans une économie de la connaissance ces jours-ci. Il est plus sage d'investir dans ces cerveaux qui travaillent déjà pour vous.
Il est plus facile de s'adapter quand la prochaine grosse langue émerge. Il est très probable que la NBL aura de nombreuses fonctionnalités présentes aujourd'hui dans le langages de script: la première classe des fonctions, des fermetures, des ruisseaux/générateurs, etc.
Les nouvelles possibilités du marché et la capacité de répondre plus rapidement. Même si vous n'êtes pas écrit en Python, d'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 vous en coûtera de l'argent et du temps, si vous n'avez pas des gens qui peuvent comprendre le code et l'interface avec elle.
De 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++. Il n'est pas un moyen très efficace de vous démarquer dans le marché de l'emploi.
À 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 il réduit un coût quelque part d'autre, de sorte que vous aurez besoin pour passer certains extra/temps 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 puis après ils sont d'accord, d'expliquer comment il est une autre technologie, et que ça vaut la dépense pour obtenir plus de formation, et de la formation pour d'autres sur la façon de le faire mieux.
J'ai souvent constaté que l'apprentissage d'une langue, en particulier un typées dynamiquement la langue, peut vous apprendre des choses sur les autres langues et de vous faire une meilleure programmeur. L'apprentissage de ruby, par exemple, va vous apprendre la programmation Orientée Objet, dans les moyens de Java habitude, et vice versa. Dans l'ensemble, je crois que c'est mieux d'être un bien arrondi programmeur d'coincé dans une seule langue. Il vous rend plus précieux pour les entreprises/clients vous travaillez pour.
découvrez les réponses à ce thead:
https://stackoverflow.com/questions/76364/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-ski#84112
L'apprentissage de nouvelles langues s'agit de garder un esprit ouvert et l'apprentissage de nouvelles façons de faire les choses.
Je ne sais pas si c'est ce que vous cherchez, mais nous écrire notre principale de l'application avec Java à la petite entreprise pour laquelle je travaille, mais ils ont utilisé python pour écrire de petits scripts rapidement. Logiciel de sauvegarde temporaire des scripts pour manipuler les données et de faire sortir les résultats. Il semble parfois plus facile de s'asseoir avec python et écrire un petit script que mettre la pagaille avec des classes et des trucs en java.
Temp scripts qui ne vont pas rester dans les parages n'avez pas besoin de beaucoup de la conception de perte de temps sur eux.
Et je suis paresseux, mais il est bon de tout apprendre autant que vous pouvez de cours et de voir quels dispositifs existent dans d'autres langues. En savoir plus ne fait jamais de mal à vous à l'avenir des changements de carrière 🙂
Il est tout au sujet 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.
Comme pour les tâches, Python/Lua/Ruby/Perl sont excellents pour les petites tâches simples, comme de trouver certains fichiers et en les renommant. Ils ont également l'excellent travail quand il est associé avec un cadre (par exemple, Rails, Django, Lua pour Windows) pour développer des applications simples rapidement. L'enfer, 37Signals est basée sur la création simple et pourtant très utile des applications Ruby on Rails.
Ils sont utiles pour le Rapide "Hack", c'est pour brancher une lacune dans votre langue principale, pour un rapide (et potentiellement sale) fixer plus rapidement qu'il faudrait pour développer la même dans votre langue principale. Un exemple: un simple script en perl pour traverser un grand fichier texte et de remplacer toutes les occurrences d'une adresse e-mail avec un autre est trivial avec un montant de temps dans les 10 minutes de la plage. Hacker une console app pour faire de même dans votre langue principale serait de prendre des multiples de que.
Vous avez également l'avantage de vous exposer à d'autres langues élargit vos compétences et apprendre à s'attaquer aux problèmes de différentes langues perspective peut être aussi précieux que le langage lui-même.
Enfin, les langages de script sont très utiles dans le domaine de l'extension. Prendre LUA comme un exemple. Vous pouvez boulon 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 de riches fonctionnalités de création de scripts qui peuvent être exposés à des utilisateurs finaux ou modifiés et distribués rapidement sans nécessiter une reconstruction de l'ensemble de l'application. C'est utilisé à bon escient dans de nombreux jeux, notamment World of Warcraft.
Personnellement, je travail sur une application Java, mais je ne pouvais pas sortir sans perl pour certains scripts de support.
J'ai des scripts pour passer rapidement ce que db je suis pointant vers, des scripts pour exécuter des scripts, des scripts pour recueillir des données & comparez les choses.
Sûr que je pourrait faire tout ça 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 avez juste besoin quelque chose de rapide et sale. Connaître un langage de script peut supprimer 90% de ces ennuyeux/répétitif des tâches manuelles.
Apprendre quelque chose avec un flexible de la programmation orientée objet système, comme Lisp ou Perl (voir l'Orignal), vous permettra de développer et de comprendre vos pensées sur l'ingénierie du logiciel. Idéalement, chaque langue a certains aspect unique (qu'il soit CLOS ou d'une autre technique) qui améliore, s'étend et se développe vos capacités en tant que programmeur.
Si tout ce que vous avez est un marteau, tous les problèmes commence à ressembler à un clou.
Il ya des moments où avoir un tournevis ou d'une pince fait d'un problème compliqué trivial.
Personne ne demande des entrepreneurs, des menuisiers, etc, "Pourquoi apprendre à utiliser un tournevis si j'ai déjà un marteau?". Vraiment bonne entrepreneurs/charpentiers ont des tonnes d'outils et de savoir comment bien les utiliser. Tous les programmeurs devraient faire la même chose, apprendre à utiliser de nouveaux outils et de bien les utiliser.
Je pense que les principaux avantages de la dynamique des langues peut être bouilli vers le bas pour
La conception courte-code-durée du cycle de test rend dynamique des langues idéal pour le prototypage, les outils et les quick & sale one-off scripts. À mon humble avis, les deux derniers peuvent avoir un impact énorme sur un programmeur de la productivité. Il me stupéfie combien de personnes crapahuter à travers les choses manuellement au lieu de coups de fouet en place d'un outil de 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é de s'interfacer avec n'importe quoi (d'autres programmes ou les 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.
Ne pas dire à votre employeur que vous voulez apprendre le Ruby. Dites-lui que vous souhaitez en apprendre au sujet de l'état-of-the-art framework web technologies. il se trouve que les plus chauds sont ceux de Django et Ruby on Rails.
J'ai trouvé plus que je joue avec le Rubis, la meilleure que j'ai compris C#.
1) Comme vous pouvez basculer entre ces langues, que chacun d'eux a ses propres constructions et les philosophies derrière les problèmes qu'ils tentent de résoudre. Cela vous aidera lors de la constatation de la bon outil pour le travail ou la de domaine d'un problème.
2) Le rôle du compilateur (ou d'un interprète pour certaines langues) devient plus importante. Pourquoi est-Ruby type de système diffère de la .Net/C# système? Quels sont les problèmes que chacun de ces résoudre? Vous trouverez vous-même la compréhension à un niveau inférieur au des constructions du compilateur et de son influence sur la langue
3) Commutation entre Ruby et C# qui m'a vraiment aidé à comprendre Modèles de Conception mieux. J'ai vraiment suggèrent la mise en œuvre commune des modèles de conception dans un langage comme C# et puis, dans une langue comme le Rubis. Souvent, il m'a aidé à voir à travers certains de le compilateur cérémonie à la philosophie de la un modèle particulier.
4) Un autre communauté. C#, Java, Ruby, Python, etc ont tous différentes collectivités qui peuvent aider à mobiliser 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 🙂
Compte tenu de l'importance croissante accordée à l'exécution des langages dynamiques (da-vinci vm etc.) sur la JVM et l'augmentation du nombre de langages dynamiques qui fonctionnent sur elle (JRuby, Grrovy, Jython) je pense que le usecases sont juste d'augmenter. Certains des scénarios que j'ai trouvé vraiment benifited sont
Prototypage- utilisation RoR ou le Graal pour construire rapidement des prototypes avec l'avantage d'être en mesure de runn sur le standard de serveur d'application et (peut-être) la réutilisation des services existants, etc.
Tests- droit des tests unitaires beaucoup plus rapide dans la dynamique des langues
Les performances de l'automatisation des test de script- certains de ces outils commencent à permettre l'utilisation dynamique de choix de la langue pour écrire les scripts de test à la place des propriétaires des langages de script. Autre avantage pourrait être à la mesure de réutiliser une partie de l'unité de test de code que vous avez déjà écrit.
Questions philosophiques de côté, je sais que j'ai perdu de la valeur, de l'écriture rapide et sale scripts Ruby à résoudre par la force brute des problèmes que Java était tout simplement trop grand pour. L'année dernière j'avais trois répertoire distinct des structures qui étaient tous plus ou moins le même, mais avec beaucoup de différences entre les fichiers (le client n'avais pas entendu parler de contrôle de version et je laisse le reste à votre imagination).
Il en aurait fallu beaucoup de frais généraux à écrire un analyseur en Java, mais en Ruby, j'ai eu un travail en 40 minutes environ.
Souvent, dynamc langues (surtout python et lua) sont intégrés dans les programmes d'ajouter un plus de plugins comme la fonctionnalité et parce qu'ils sont les langages de haut niveau qui font qu'il est facile d'ajouter un certain comportement, d'où une faible/moyen niveau de langue n'est pas nécessaire.
Lua specificially manque tout le bas niveau des appels système, car il a été conçu pour easeof-utiliser pour ajouter des fonctionnalités dans le programme, non pas comme un langage de programmation.
Vous devriez également envisager d'apprendre un langage de programmation fonctionnel comme la Scala. Il a de nombreux avantages de Ruby, y compris une description concise de la syntaxe, et des fonctionnalités puissantes telles que les fermetures. Mais il compile les fichiers de classe Java et et de les intégrer de façon transparente dans une Java pile, ce qui peut rendre beaucoup plus facile pour votre employeur à avaler.
Scala n'est pas typées dynamiquement, mais sa "conversion implicite" donne beaucoup, peut-être même de tous les avantages du typage dynamique, tout en conservant les avantages du typage statique.
Dynamique des langues sont fantastiques pour le prototypage des idées. Souvent pour des raisons de performances, ils ne fonctionnent pas pour les permanents des solutions ou des produits. Mais, avec des langages comme Python, qui vous permettront de vous intégrer standard C/C++/Java à l'intérieur ou vice versa, vous pouvez accélérer le vraiment bits critiques, mais laisser collées ensemble avec la souplesse 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 langues, il suffit de pointer beaucoup plus vite que vous pouvez développer le même logiciel et comment beaucoup plus robuste, la solution est (parce que le débogage/correction de problèmes dans la dynamique des langues dans mon expérience, beaucoup plus facile!).
Sachant grep et ruby permis d'isoler un problème, et vérifier le correctif pour un problème impliquant des tonnes de java exceptions sur certains serveurs de production. Parce que j'ai jeté la solution en ruby, il a été fait (mis en place, testé, exécuter, bug-fixes, exécutez de nouveau, amélioré, les résultats analysés) en une après-midi au lieu d'un couple de jours. Je pourrais avoir résolu le même problème en utilisant un solution java ou C# solution, mais il est probable qu'il m'aurait pris plus de temps.
Ayant langage dynamique expertise aussi parfois, vous conduit à des solutions plus simples en moins de dynamique des langues. En ruby, perl ou python, vous avez juste intuitivement atteindre pour les tableaux associatifs (tables de hachage, les dictionnaires, quel que soit le mot que vous voulez utiliser) pour les plus petites choses, où vous pourriez être tenté de créer un complexe hiérarchie de classes dans un langage statiquement typé, lorsque le problème n'est pas nécessairement le demande.
De Plus, vous pouvez brancher dans la plupart des langages de script dans la plupart des environnements d'exécution. Donc il n'a pas à être " soit/soit.
Le "bénéfice réel" qu'un employeur pouvait voir, c'est un meilleur programmeur qui peut mettre en œuvre des solutions plus rapidement; toutefois, vous ne serez pas en mesure de fournir les chiffres pour justifier les dépenses et l'employeur sera très probablement avez-vous travailler sur ce qui fait de l'argent maintenant, plutôt que d'avoir vous travailler sur des choses que rendre le futur meilleur.
Le seul moment où vous pouvez obtenir de la formation sur l'employeur centime, c'est quand ils perçoivent un besoin et c'est moins cher que l'embauche d'une nouvelle personne qui a déjà de cette compétence.
Tests.
Il est souvent plus rapide et plus facile à tester votre C#/Java application à l'aide d'un langage dynamique. Vous pouvez faire des tests exploratoires à l'invite de commandes et de créer rapidement des scripts de tests automatisés.
D'autres l'ont déjà expliqué pourquoi l'apprentissage d'autres langues fait de vous un meilleur programmeur.
Comme pour convaincre votre patron qu'il vaut le coup, c'est sans doute la culture de votre entreprise. Certains lieux de carrière et les progrès d'une politique (déplacer vers le haut ou à l'extérieur), certains endroits de la valeur, mais elle laisser à l'initiative du salarié, et certains endroits sont très axés sur la ligne de fond.
Si vous avez d'expliquer pourquoi l'apprentissage d'une langue est une bonne chose pour votre patron, mon conseil serait de rester au travail plus longtemps que nécessaire, puis rentrer à la maison et à l'étude de nouvelles choses sur votre propre.
Pour après le travail, le travail, pour les emplois freelance...:) et au final d'être de la programmation lettrée que possible...;)
Langages dynamiques sont une autre façon de penser et parfois les pratiques de vous apprendre à partir d'une dynamique ou fonctionnelle de la langue peuvent transférer à plus de langages à typage statique, mais si vous ne prenez jamais le temps d'apprendre différentes langues, vous n'aurez jamais l'avantage d'avoir un savait façon de penser lorsque vous êtes codage.
Ne vous embêtez pas votre employeur, passer ~40$sur un livre, le téléchargement de certains logiciels, et de consacrer un peu de temps chaque jour pour lire/faire des exercices. En un rien de temps, vous serez formé 🙂