Dois-je prendre la peine d'apprendre des langues petites ou de niche? [fermé]

22

Si vous parcourez les questions de code de golf sur StackExchange , vous remarquez une tonne de langages non standard mais réels (par exemple pas brain-f * ck) comme F # , Scala , R , J et Clojure . En visitant leurs sites Web, certaines langues semblent intéressantes à résoudre des problèmes dans la langue que vous utilisez déjà.

Cependant, il y a du codage pendant le temps libre et du codage pour l'argent. L' indice le plus proche de la vérité sur qui utilise une langue est l' indice TIOBE , qui ne répertorie aucune des langues ci-dessus dans le top 10-15. Ce qui me fait me demander si je les utiliserai jamais.

Dois-je même prendre la peine d'apprendre certaines des petites langues de niche? Il ne semble pas que je gagnerais de l'argent, et certains échoueront probablement de toute façon.

TheLQ
la source
4
Si vous ne vous souciez que de gagner de l'argent, pourquoi posez-vous cette question?
ChaosPandion du
4
F # est un langage de première classe depuis VS2010. Je ne dirais pas que ce n'est pas standard, et je pense qu'il sera bientôt largement adopté.
Brian R. Bondy,
8
Si vous ne voulez que gagner de l'argent, vous feriez mieux de ne pas programmer. Que diriez-vous de devenir une actrice populaire?
P Shved
2
@TheLQ: Vous voulez être grand public? Vous craignez de faire un pas sans savoir combien d'argent cela vous rapportera avant de le faire? Alors s'il vous plaît, contentez-vous également de la rémunération traditionnelle. C'est tout ce que vous obtiendrez avec votre mentalité, le cas échéant.
Ingo
1
Certaines langues de niche pourraient vous rendre plus productif, vous permettant ainsi de gagner plus d'argent, que les langues traditionnelles.
Giorgio

Réponses:

25

L'hypothèse Sapir-Whorf . Il indique, plus ou moins, que ce à quoi vous pouvez penser est limité par ce que vous avez le langage à décrire. La conséquence de cela est que les personnes multilingues sont capables de penser d'une manière que les locuteurs d'une seule langue peuvent ne pas être capables de faire.

Beaucoup de gens (moi y compris) pensent que cela vaut également pour la programmation. L'apprentissage de Lisp, par exemple, vous apprend une toute nouvelle façon de penser aux problèmes que vous pouvez appliquer à C # ou Java ou Python. Plus vous apprenez de paradigmes linguistiques, plus votre boîte à outils mentale contient d'outils, quelle que soit la langue que vous utilisez réellement.

Fishtoaster
la source
1
Exactement. Par exemple, je trouve que dans certaines situations, un langage purement fonctionnel ne suffit tout simplement pas. Cependant, je me retrouve constamment à intégrer des concepts fonctionnels dans des langages qui prennent en charge la programmation fonctionnelle (par exemple, javascript, c ++ 0x, etc.).
Cam
4
Je suis amusé que les gens continuent d'utiliser l'hypothèse Sapir-Whorf (largement, mais pas entièrement discréditée en linguistique) comme analogie. Je suis définitivement d'accord avec le sentiment concernant la programmation, mais je pense qu'une analogie différente devrait être trouvée si nous voulons que les gens nous prennent au sérieux.
Jonathan Sterling
1
Je ne crois pas l'hypothèse, sinon nous n'aurions jamais dépassé les grognements. De même pour la programmation, ne pensez pas que les gens sont limités par la langue.
John Smith
24

J'apprendrais n'importe quelle langue qui m'initierait à des concepts et à des paradigmes que je n'ai jamais vus auparavant. C'est pourquoi j'ai appris haskell et schema - ils m'ont présenté respectivement la programmation fonctionnelle et la programmation principalement fonctionnelle. Je ne me soucierais pas moins de savoir si le schéma et haskell étaient largement utilisés, mis à part la façon dont cela affecterait la documentation et les ressources disponibles.

Donc , fondamentalement, si une petite langue de niche vous présente de nouveaux concepts et paradigmes ( en particulier ceux que vous pouvez appliquer à d' autres langues), puis apprendre loin!

Autres raisons pour lesquelles vous voudrez peut-être apprendre une langue «petite / niche»:

  • La langue vous permet de résoudre un (type de) problème particulier «mieux» (plus rapidement, avec une meilleure solution, plus facilement, etc.) que toute autre langue

  • Le langage vous permet de résoudre des problèmes tout aussi bien qu'un langage populaire, mais il a des fonctionnalités intéressantes que vous aimez (par exemple, clojure)

  • Vous souhaitez contribuer au développement du langage
Came
la source
7

Eh bien, j'utilise Clojure (l'un des "langages de niche" que vous mentionnez) et j'ai trouvé que c'était une expérience très intéressante.

  • Cela m'a rendu beaucoup plus productif (contre Java et C # que j'utilisais principalement précédemment). Comme je dirige ma propre entreprise, la productivité est égale à l'argent :-) donc dans ce sens, Clojure a déjà réussi, du moins de mon point de vue.
  • J'ai appris de nouvelles techniques qui ont fait de moi un meilleur développeur (notamment en matière de concurrence, de programmation fonctionnelle, d'abstraction, de métaprogrammation, etc.). Même si je recommençais à écrire Java, je pourrais quand même faire bon usage de ces connaissances
  • Il a été vraiment agréable d'apprendre une nouvelle langue très différente de tout ce que j'ai fait auparavant. Si vous aimez réellement ce que vous faites, cela en vaut la peine en soi.
  • Comme il s'agit d'un langage JVM, peu importe si l'ensemble de bibliothèques est relativement petit, car vous avez toujours accès à l'ensemble complet de bibliothèques dans l'écosystème Java / JVM. C'est un gros avantage pour les langues qui s'exécutent sur la JVM (il en va de même pour Scala)

Personnellement, je porterais une attention limitée à des choses comme TIOBE - elles ne vous disent pas grand-chose au-delà de ce qui a été populaire dans le passé. Utile peut-être si vous voulez un travail de maintenance des anciens systèmes, moins si vous voulez apprendre et élargir vos horizons.

mikera
la source
4

La raison d'étudier une langue de niche est rarement l'attente que vous l'utiliserez directement (pour de l'argent ou autrement). C'est généralement pour apprendre un nouvel aspect ou un nouveau style de programmation. Faire cela est susceptible de faire de vous un meilleur programmeur (et oui, probablement plus précieux), même si vous n'utilisez jamais ce langage pour produire du code de "production".

Jerry Coffin
la source
4

Parlant en tant que développeur professionnel dans une langue de niche , il est possible de gagner sa vie. Il y a cependant des avantages et des inconvénients.

Les choses qui sont plus difficiles:

  • Trouver un emploi prend plus de temps
  • Les emplois sont plus susceptibles de vous obliger à déménager
  • Vous obtiendrez peu de respect de la part des programmeurs traditionnels (et donc, plus de résistance).

Des choses plus faciles:

  • Le petit bassin de programmeurs facilite la concurrence pour les emplois
  • Vous pouvez connaître tous les programmeurs importants dans votre domaine
  • Développer une réputation est plus facile que dans le courant dominant

Les choses qui ne sont que :

  • La rémunération a tendance à être plus variable, car il existe peu de normes
  • Beaucoup de temps est consacré à éduquer les autres sur les forces et les faiblesses de votre créneau

Dans l'ensemble, si une carrière est votre préoccupation, vous ne devriez jamais être un poney, un courant dominant ou un créneau à un tour.

Joe Z
la source
2

J'apprends actuellement Ruby en l'utilisant pour résoudre des problèmes de Project Euler , juste parce que je passe la majeure partie de ma journée à programmer en C ou PHP (et parfois en C #) et que je souhaite élargir mes horizons. Jusqu'à présent, cela m'a vraiment ouvert les yeux sur ce qui peut être fait. Même si je ne l'utilise jamais pour un "vrai" travail, je pense que le temps passé à l'apprendre en vaudra la peine.

tcrosley
la source
+1 pour le projet euler. J'ai fait la même chose pendant que j'apprenais le python
1

D'accord avec tous les points mentionnés. Une autre motivation pour l'apprentissage d'une langue de niche est la possibilité qu'un jour la langue devienne très populaire. Dans cette situation, votre investissement précoce dans la langue pourrait vous donner des pistes de travail sur des cadres influents et des éléments de la langue qui pourraient être très demandés à l'avenir.

Si la langue devient populaire, vous serez déjà qualifié, et donc vous serez en forte demande.

Probabilité faible, récompenses potentiellement élevées.

MM01
la source
2
Personnellement, j'essaierai toujours d'apprendre des concepts plutôt que des langues ... un espace cérébral limité si vous voyez ce que je veux dire.
ChaosPandion
1

Comme d'autres l'ont presque dit, apprendre une langue de niche simplement parce que c'est une langue de niche n'a pas beaucoup de sens. Souvent, cependant, les langues de niche explorent un concept plus profondément / plus profondément que les langues traditionnelles ne peuvent se le permettre ou le souhaitent.

Et parfois, les langues de niche existent depuis bien plus longtemps que n'importe quelle autre langue - Smalltalk, Prolog et les langues Lisp sautent à l'esprit. Ils ne sont peut-être pas populaires, mais ils ne disparaissent pas non plus.

Frank Shearar
la source