Un ingénieur logiciel cherchant à apprendre quelque chose de nouveau vérifiera généralement d’abord combien d’emplois disponibles sont liés au sujet en question, simplement pour s’assurer qu’il ou elle est utile pour les futurs employeurs – Et nous savons tous que les langages de programmation les plus populaires incluent JavaScript , Java, C#, Python et TypeScript. Cependant, quel est le langage de programmation le moins populaire, toujours utilisé, et pourquoi devriez-vous vous en soucier ?
Ignorant les parties prototypes amusantes de JavaScript de JavaScript, tous les langages de programmation ci-dessus sont plus ou moins des copies les uns des autres, sans grande différence sémantiquement. Bien sûr, il existe quelques exceptions notables, telles que SQL et F#, mais presque tous les langages de programmation en haut de l’indice de popularité sont plus ou moins des arnaques, copiant et collant des fonctionnalités les unes des autres. Cela crée un problème pour vous individuellement, et aussi pour le monde en général, que j’appelle les optimums évolutifs locaux. Le problème est mieux expliqué comme suit…
Comment pouvez-vous savoir que vous faites la bonne chose, si vous n’avez jamais essayé autre chose ?
Imaginez un monde où le seul liquide qui existe dans l’usage courant est le Coca Cola, et tout le monde le boit comme substitut de l’eau. Comment sauriez-vous les avantages de l’eau potable? Ou du jus d’orange d’ailleurs ? Vous ne pouvez pas, simplement parce que vous êtes dans « au milieu de la route », en choisissant ce que tout le monde choisit. Par conséquent, votre créativité en souffre et votre capacité à penser différemment diminue avec le temps, au point que vous ne pouvez imaginer le monde qu’à travers le prisme de Coca Cola, et tout le reste devient « stupide ». D’ailleurs, qui peut dire que la chose la plus populaire est une si bonne chose ? JavaScript est de loin le langage de programmation le plus populaire au monde, et pour tous ceux qui ont fait quelque chose de plus complexe qu’un simple bonjour au monde, il est assez évident que la chose est 100% endommagée au cerveau.
Si vous essayiez quelque chose de différent pendant un certain temps, vous auriez une perception plus neutre de tout, ce qui vous permettrait de voir ses faiblesses et ses avantages, de sorte que vous deviendriez sans doute un meilleur Programmeur JavaScript. Chaque fois que les gens me demandent quels langages de programmation ils devraient apprendre, je réponds toujours ; « Les deux qui sont les plus éloignés l’un de l’autre conceptuellement. » Pourquoi? Parce qu’il vous permet de voir les forces et les faiblesses des deux langages de programmation de manière neutre, sans lentille gravitationnelle due à un biais. Les exemples incluent…
- C++ et SQL
- Lisp et Java
- C# et SmallTalk
Pourquoi? Parce que cela fait de vous un meilleur programmeur. Avec les parties de philosophie hors de l’image, passons à la programmation la moins populaire au monde, de loin, mais toujours en usage réel, nous permettant d’ignorer les langages de programmation tels que Lily et BrainF*ck, qui crée sans doute plus de problèmes que ils résolvent.
Hyperlambda
Ignorant le fait qu’Hyperlambda a le nom de loin le plus cool de tous les langages de programmation existants, jusqu’à il y a une semaine, il n’y avait que une développeur dans le monde qui l’utilise réellement ; Moi! Et en fait, pendant 8 ans, j’étais le seul développeur de logiciels sur la planète à vouloir l’utiliser. Cependant, la semaine dernière, j’ai formé 3 développeurs de logiciels à Hyperlambda, et un de mes partenaires l’enseigne actuellement à 3 développeurs à Durban. Ainsi, en 1 semaine, Hyperlambda a multiplié par 7 son nombre d’utilisateurs 😀
Alors pourquoi s’en soucier ? Eh bien, d’une part, Hyperlambda est super bizarre. Il n’a pas de variables, pas de POO, c’est 100% fonctionnel, mais toujours pas un « pur » langage de programmation fonctionnel. En fait, Hyperlambda est sans doute l’équivalent d’une version complète de Turing de XML, XSLT et XPath, avec une syntaxe ressemblant à celle de YAML. Si C#, Java et C++ est le « milieu de la route », Hyperlambda est de l’autre côté de la Galaxie !
Cela vous donne une fonctionnalité très importante que peu ou pas d’autres langages de programmation vous offrent, à savoir la capacité d’imaginer le monde sous un angle complètement différent, ce qui fait que si vous vous apprenez Hyperlambda, vous devenez sans doute un meilleur C #, Java, TypeScript , « peu importe » développeur de logiciels. Bien sûr, si vous recherchez le nombre d’emplois disponibles pour Hyperlambda, le nombre zéro vous sera très probablement présenté, quelle que soit la quantité et la profondeur de votre recherche. Cependant, si vous recherchez combien de personnes le perçoivent comme un bonus pour comprendre des sujets profonds et complexes, tels que la création d’un DSL, la théorie du langage de programmation et de tels concepts, vous seriez probablement surpris de voir combien de grandes entreprises du Nasdaq 10 perçoivent probablement la connaissance d’Hyperlambda comme un bonus, y compris Microsoft probablement. Pourquoi? Parce que ces entreprises savent que l’envie d’étudier « différent » idées est crucial pour s’assurer qu’ils acquièrent les meilleurs candidats, capables de penser de manière créative, en dehors des sentiers battus, sans notions préconçues sur la façon dont le monde « devrait » ressembler. Il y a environ 35 millions de développeurs de logiciels dans le monde aujourd’hui, et environ 34 millions ne savent probablement que une langage de programmation, et environ 34 999 500 d’entre eux ne sont probablement même pas intéressants pour des entreprises telles que Google, StackOverflow, Microsoft et Apple – simplement pour aucune autre raison que le fait qu’ils ne sont jamais partis « au milieu de la route », et sont donc inutiles du point de vue de l’innovation.
La gravité
Regardez la photo ci-dessous. Ignorant le gars avec le T-Shirt drôle (moi), ce gars au milieu de la photo ; Misha – m’a donné pas moins de 3 suggestions de fonctionnalités pour Hyperlambda. L’un étant des expressions extrapolées, l’autre étant des gestionnaires d’exceptions et le troisième étant des intercepteurs. 10 heures après qu’il ait suggéré des expressions extrapolées, j’avais créé une nouvelle version de Magic et Hyperlambda avec cette fonctionnalité en tant que fonctionnalité intégrée. 3 jours plus tard, j’avais des gestionnaires d’exceptions et des intercepteurs dans la dernière version de Magic.
Une fois, j’ai essayé de suggérer une fonctionnalité à Bjarne Stroustrup, le gars qui a inventé le C++. Et nous avons passé quelque 45 e-mails à discuter de ma fonctionnalité, qui était les constructeurs de copie virtuelle, pour empêcher le découpage d’objets, lors de la copie d’une référence ou d’un pointeur vers un objet. Bjarne m’a dit qu’il aimait ma suggestion et que c’était une chose intelligente. C’était en 2008 pour mémoire. Aujourd’hui, 13 ans plus tard, le C++ n’a toujours pas de constructeurs de copie virtuelle. J’ai implémenté 3 fonctionnalités au cœur d’Hyperlambda en 3 jours à cause de ce qu’un développeur intelligent l’a suggéré. S’il vous plaît laissez cela couler pendant un moment … 😉
Cela implique que si vous utilisez Hyperlambda, votre opinion compte. Si vous utilisez C++, votre quantité d’attraction sur le langage est probablement égale à la quantité d’attraction que vous avez actuellement sur la constellation d’étoiles appelée Alpha Centauri. Si vous êtes intelligent, vous vous souciez de ces choses. À ce moment-là, qu’Hyperlambda meure ou non avec moi et qu’il soit inscrit dans l’histoire comme le langage de programmation le moins intéressant au monde, n’ayant rien d’autre qu’un nom vraiment, vraiment cool, devient 100% hors de propos. Ci-dessous, une vidéo où je démontre ces 3 nouvelles fonctionnalités.
D’ailleurs, tu veux connaître un secret ? Tous les meilleurs développeurs en connaissent au moins 3 à 5 différents « langages de programmation bizarres », et tous les meilleurs recruteurs connaissent ce simple fait… 😉