44 votes

Est-ce que quelqu'un recommanderait d'apprendre J/K/APL?

Je suis tombé sur J/K/APL il y a quelques mois alors que je résolvais quelques problèmes de project euler, et j'ai été intrigué, pour le moins qu'on puisse dire. Pour chaque solution python de 20 lignes élégante que je produisais, il y avait une solution J époustouflante de 20 caractères qui tournait en un dixième du temps. J'ai été désireux d'apprendre un peu de J, et j'ai fait quelques tentatives pour apprendre le vocabulaire, mais j'ai trouvé la courbe d'apprentissage assez raide.

À ceux qui sont familiers avec ces langages, recommanderiez-vous d'investir du temps pour en apprendre un (je pense en particulier à J)? Je le ferais plus pour satisfaire ma curiosité que pour une avancée de carrière ou quelque chose du genre.

Quelques circonstances personnelles à prendre en considération, si cela vous intéresse :

  • J'aime les mathématiques, et je les utilise quotidiennement dans mon travail (en tant que mathématicien pour une start-up) mais honnêtement je ne me sens pas vraiment limité par les outils que j'utilise (comme python + NumPy) donc je ne peux pas utiliser cette excuse.
  • Je n'ai pas particulièrement envie de travailler dans l'industrie financière, qui semble être le principal point d'appel pour les utilisateurs de K au moins. De plus, je devrais vraiment apprendre le C# comme prochain langage car c'est le langage principal là où je travaille. Donc pratiquement parlant, J ne devrait presque certainement pas être le prochain langage que j'apprends.
  • Je suis plutôt familier avec MATLAB donc utiliser un langage de programmation basé sur des tableaux ne constituerait pas un changement de paradigme énorme.

Tout conseil de la part de ceux qui sont familiers avec ces langages serait grandement apprécié.

9voto

Inisheer Points 11582

Je pense que tes 3 points montrent que tu n'as PAS BESOIN d'apprendre J. Cependant, je ne pense pas qu'apprendre une nouvelle langue soit nuisible.

Prendre le temps d'apprendre quelque chose qui t'intéresse (ou n'importe quelle nouvelle langue) améliore toujours tes autres compétences en programmation. Tu apprends différentes approches aux problèmes que tu pourrais être en mesure d'implémenter différemment avec d'autres langages.

De plus, avec la syntaxe minimale de J, ce serait une bonne langue pour te garantir que tu obtiens les résultats corrects lorsque tu implémentes une solution dans une autre langue.

8voto

De retour dans les jours anciens, j'étais développeur en langage APL, codant en assembleur 370. J'ai porté J sur OS2, mais je n'ai jamais appris à l'utiliser pour un vrai travail. En ce moment, je travaille en Java et en PHP et j'étais en train d'évaluer Python. Après les trois premières sections du tutoriel Python, j'ai été frappé par les nombreuses similitudes qu'il avait avec APL, ce qui m'a amené ici.

Je recommanderais vivement d'apprendre APL ou J en tant qu'exercice intellectuel. Cela changera votre façon de penser en programmation (modifiera votre cerveau) et probablement aidera dans votre codage Python. De plus, il y a quelques postes disponibles pour les programmeurs en APL et J, et probablement moins de programmeurs que d'offres d'emploi.

7voto

JonnyBoats Points 3242

J'ai travaillé en tant que programmeur APL pendant plusieurs années dans les années 1970. J'adore ce langage, mais je ne l'ai pas utilisé depuis des années.

C'est un excellent langage pour certaines choses, mais je ne peux vraiment pas l'imaginer utilisé pour le développement web par exemple.

Ce pour quoi il est excellent, ce sont les opérations statistiques et matricielles. Vous pouvez résoudre un problème de programmation linéaire en 3 caractères. Il est beaucoup plus facile de prouver la justesse de cette implémentation PL que celle qui prendrait des pages en C par exemple.

Donc si vous voulez l'apprendre pour le plaisir d'apprendre, je dis foncez. Pour améliorer vos perspectives professionnelles, il y a probablement beaucoup d'autres choses à apprendre qui impressionneront davantage un employeur potentiel.

6voto

Oui, apprenez APL/J/K, cela vous donnera un aperçu unique de ce qui est possible.

Je souligne que le "combien de triangles rentrent dans un cercle" de @MPelletier et son implication "mais pas pour les problèmes du monde réel," est un peu à courte vue. Oui, l'IDE de J Software manque de certaines choses, mais construire son propre IDE n'est pas un gros problème, et un bon IDE peut masquer un mauvais langage (la réduction de 20 lignes à 20 caractères n'est pas à négliger.) Je fais de l'APL aussi longtemps que @KaiJaeger, sinon plus, et mon esprit peut être tordu, mais je n'ai jamais été content de programmer avec quoi que ce soit d'autre.

6voto

Mani Sitaraman Points 11

C'est une confirmation amusante pour moi, une personne de cinquante ans.

Plus tôt aujourd'hui, j'ai décidé d'apprendre un nouveau langage de programmation du XXIe siècle après une pause de 27 ans sans programmation. J'ai choisi Python, un peu au hasard, craignant le monde basé sur le GUI et l'orientation objet dans lequel nous vivons tous maintenant.

Pour mon plus grand plaisir, mes années à gagner ma vie en tant que spécialiste de l'APL au début des années 80 signifient que je suis littéralement en train de parcourir le matériel, avec une compréhension instantanée :) Juste pour partager ça.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X