C'est pourtant comme cela que l'on commence à programmer avec un langage qui a de la profondeur. Par exemple, Ruby est un langage qui peut-être programmer de façon procédurale, de façon orienté-objet, de façon fonctionnelle et en mode distribué. Et le noyau standard est énorme. Si je devais complètement maîtriser le langage pour pouvoir l'utiliser, je n'aurais pas encore écrit une ligne de code en Ruby.
Julia est également un langage avec beaucoup de profondeur, il peut même être utilisé pour faire des programmes qui normalement devraient être écrits en Erlang. Avec Javascript, Ruby et Julia, je peux tout faire ce que veut, sans avoir à apprendre un autre langage. En termes de vitesse, Julia se compare à C++. Et cela sans maîtrise parfaitement le langage. Je n'ai pas à maîtriser le langage pour être sûr du potentiel exceptionnel de ce langage. Il y a très peu de langage de programmation qui contiennent cette description:Comme mon deuxième Dada, juste derrière l'intelligence artificielle, est l'étude des langages de programmation, j'ai aucun problème à reconnaître un langage de programmation exceptionnel. Ce n'est pas pour me vanter, mais trouver le langage qui pouvait tout faire (et pour faire le noyau d'une IA) à été ma quête du st-Graal pendant au moins trente ans.Julia prend en charge trois catégories principales de fonctionnalités pour la programmation simultanée et parallèle:
J'ai sans doute vu le mot méta-programmation qui a fait que je n'ai pas exploré ce chapitre. Merci pour l'info! Mais je ne suis pas sûr que l'on parle de la même chose. Quand je parle de macro, je pense d'un macro langage comme en C. C'est extrêmement pratique quand on écrit du code avec des tableaux et des matrices.
Je me suis probablement mal exprimer. Mais si on considère que Julia est également capable de faire des trucs comparables à du Erlang ou à du Go. Si on compare du code de ces 3 langages, Julia a l'air aussi limpide que du Pascal.. Et pour moi, me passer de valeurs globales, cela ne me demande aucun effort. Car c'est une pratique courante en programmation orienté-objet. Et pour un langage comme C++, je les mets toutes dans une structure (struct) ou un objet. C'est aussi une des caractéristiques d'un bon langage, il nous conditionne à adopter de bonnes pratiques.
Dès que l'on inclut le multi-tâche et traitement distribué dans le noyau d'un langage, la courbe d'apprentissage sera forcément plus longue qu'un langage comme JavaScript. Par contre, avec un langage comme JavaScript, tu découvres de grosses limites également très rapidement. Et quand cette limite t'apparaître au milieu d'un gros projet, c'est vraiment l'enfer. Alors à choisir entre un niveau de difficulté accrue et la possibilité de me retrouver en enfer, je préfère la difficulté accrue.
Si un langage est capable de faire le travail de 4 langages, on se doit se calculer chanceux quand cela ne demande pas plus de travail que d'en apprendre 2.
Partager