Pouvez-vous améliorer vos compétences en programmation en apprenant d'autres paradigmes linguistiques?
D'après mon expérience, certainement oui. Avoir plusieurs façons différentes d'attaquer un problème est comme une palette d'outils. Un jour, vous (comme moi) aurez besoin de ces autres outils. Ou peut-être pas. Tout dépend. Quelques exempels:
Les langues ne sont généralement pas autonomes, elles viennent avec un environnement. J'ai passé un peu de temps à apprendre une langue étrange appelée awk . Il repose sur la mise en correspondance de modèles à l'aide d '"expressions régulières". En essayant d'apprendre le C ++ STL (pas très réussi), j'ai appris sur les cartes. En combinant ces deux concepts, j'ai pu très rapidement écrire des utilitaires de transformation de texte dans Pearl (la seule langue disponible sur la plate-forme).
Surtout pour le plaisir, j'ai essayé d'apprendre Erlang (pas très réussi). Il possède une bibliothèque de fonctions connues sous le nom d'OTP implémentant entre autres un moyen de gérer les erreurs, parfois connu sous le nom de laisser échouer et d'avoir un moniteur qui redémarre les fonctions. J'ai utilisé cette idée dans certains domaines, laissant parfois simplement les choses échouer au lieu de faire des tests sans fin.
Essayer d'apprendre Haskell (encore une fois avec peu de succès) m'a vraiment ouvert les yeux sur d'autres façons d'attaquer les problèmes. La programmation fonctionnelle sorte de (à mon avis) commence par l'écriture de code qui dit quel résultat vous voulez, pas l'écriture des étapes impliquées pour y arriver. Je trouve que cela m'a vraiment aidé à écrire un meilleur code SQL.
Dernièrement, j'ai essayé un peu de javascript. Et a trouvé un environnement connu comme hoché la tête. Aucun code n'est nécessaire pour créer un petit serveur domotique.
Pour mettre les choses en perspective, la plupart de mes tentatives dans diverses langues étaient (et sont) sur un niveau plutôt superficiel, principalement pour avoir une idée de ce dont les gens parlent. Il y a très peu de langues dans lesquelles je peux être productif.