COMPTOIR
register

Wolfram, un langage de programmation basé sur les connaissances

Une grande partie des défenseurs du web et innovateurs en nouvelles technologies sont d'accord pour dire qu'il serait utile de donner des bases de programmation aux plus jeunes. Si les passionnés enthousiastes ne manquent pas, se dire "demain j'apprends à programmer" n'est pas à la portée de tout le monde, et pour cause, la plupart des langages sont assez difficiles d'accès pour qui a peur des maths et les algorithmes arrivent à bout des plus motivés. C'est pourquoi des alternatives naissent pour créer des langages plus simples d'accès, basés sur une logique différente. Ici le Wolfram essaie de placer la chose à un autre niveau en étant basé sur les connaissances.

 

wolfram_alpha-logo.jpg  

 

Dans les langages courants, tout se base sur les variables. Lorsqu'on crée une variable "X", il faut qu'une valeur lui soit attribuée. En Wolfram, cette variable est symbolique, ce qui veut dire que pour ce langage, "X" c'est juste "X" et vous en faites ce que vous voulez. L'idée de Stephen Wolfram, le papa de ce langage que vous pourrez écouter dans la vidéo qui suit, est de rendre la chose facile d'utilisation, interactive et cohérente. Si vous regardez les premières minutes de la vidéo, vous verrez qu'il pose simplement des questions à l'aide de son langage et la réponse est instantanée. Si un "2+2" ou un "Hello World" ne vous émerveille peut-être pas, pouvoir contrôler votre webcam ou connaitre le drapeau du Suriname pour l'exposé du fiston d'une simple commande pourra vous montrer combien il est simple d'utilisation et plein de ressources.

 

Et comment connait-il le drapeau du Suriname, allez-vous demander ? Et bien comme on le disait plus haut, ce langage est basé sur les connaissances, pour ce faire, il dispose d'une base de données constamment mise à jour sur leur cloud. Ainsi, à l'aide d'une question simple ou de la bonne série de commandes (car oui, il faudra tout de même apprendre quelques commandes si on veut s'en servir) vous pourrez lui demander l'heure qu'il est à Tokyo ou de préparer votre prochain roadtripe en Amérique latine. En fait son utilisation se veut tellement simple que vous pourriez l'utiliser de la même façon que la barre de recherche de Google votre moteur de recherche préféré. Pour le tester, il existe le site Wolfram|Alpha, vous avez simplement une barre au milieu et la possibilité de découvrir des exemples dans différents domaines, demandez-lui quelque chose (en anglais), il répondra forcément. Pour ceux qui aiment se faire mal aux yeux, on vous conseille de lui demander d'écrire en L33T, il vous suffit de précéder une phrase de L33T et il vous la transformera.

 

Les amateurs de code et ceux qui sont déjà à l'aise pourraient trouver ça léger de prime abord, mais il y a de quoi creuser. Les codeurs du dimanche et ceux qui n'ont jamais osé s'y intéresser pourraient y trouver un moyen de plonger dans le grand bain d'une manière différente. Si la vidéo vous semble trop compliquée à comprendre, leur site web pourra vous en apprendre plus. 30 ans de boulot pour en arriver à ce langage chargé de connaissances et lié au cloud, un cloud qui fait qu'il n'est pas Open Source, ce qu'on ne pourra que regretter. Même si la programmation n'est pas votre truc ou vous fait peur, jetez-y un oeil, ça ne coute rien !

 

Un poil avant ?

Les GPU, plus assez bons pour le minage de cryptomonnaies ?

Un peu plus tard ...

Victor, le robot qui joue au Scrabble et qui trashtalk

Les 14 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Un ragoteur à la bourre de Lorraine, le Lundi 24 Mars 2014 à 13h46  
Pourquoi j'ai du mal à voir un langage de programmation dans ce truc?

C'est pas si différent d'un Siri en mode texte/graphique et donc, pour moi en tout cas, réellement éloigné de ce qu'on peut qualifier de langage de programmation...

Soit dit en passant, les maths n'ont pas grand chose à voir avec la programmation, un algorithme n'est qu'une représentation formelle du processus auquel doit répondre le programme et dans bien des cas il n'y a pas de formule mathématique dedans.

Les langages "type C" (C/C++/C#/PHP/JavaScript/ActionScript/Java donc) sont très simples d'accès et parfaitement complémentaires à d'autres plus spécialisés et pas forcément très compliqués non plus (SQL/LINQ par exemple), le modèle objet est d'ailleurs très simple à assimiler et de lui découlent des notions qui permettent d'architecturer une application à première vue complexe...

C'est ailleurs que dans l'abstraction "user-side" qu'il faut chercher.
par dubarat1, le Dimanche 23 Mars 2014 à 23h57  
c'est marrant encore un langage qui va soit disant facilité les chose , je vois plus une énième méthode qui cache la face cacher de l'iceberg , à la fin le cpu comprends du binaire . De plus a force de rajouter des surcouches on en perde la racine. jusqu'à même balayé un tableau à deux dimensions avec deux boucles des personnes ne savent plus le faire " vive le foreach ce-ci est juste un exemple" au final ça complique plus , mais ca c'est mon point vu
par Baba the Dw@rf, le Dimanche 23 Mars 2014 à 14h04  
par Un ragoteur foufou d'Ile-de-France, le Dimanche 23 Mars 2014 à 12h37
L'utilisation d'un langage de plus haut niveau n'empêche pas de le mixer avec des langages plus bas niveaux donc plus rapides. Par exemple en Java on peut très bien faire du JNI pour appeler du C++ ou du Fortran quand le besoin s'en fait sentir.
Dans ce cas la tu perd le bénéfice du langage de haut niveau si tu dois faire du bas niveau pour faire un truc optimisé, au mieux on profite du meilleur des deux mondes, mais cela signifie qu'il faut très bien connaitre les langages et leur capacité, hors l'optique derrière un langage comme wolfram semble être de masquer la complexité, alors soit ça reste comme ça et c'est une mauvaise optique, soit il vas y avoir des options/extensions/je sais pas quoi qui permettent de trifouiller et la on perd l'avantage du haut niveau...
Donc au final c'est une question de répondre à un besoin les deux sont nécessaire et je critiquais l'idée de "on a besoin d'un langage de haut niveau plus expressif" alors qu'on trouve déjà ça sur le marché et que c'est efficace que pour des besoins spécifique...
par Un ragoteur foufou d'Ile-de-France, le Dimanche 23 Mars 2014 à 12h37  
par Baba the Dw@rf, le Dimanche 23 Mars 2014 à 11h38
C'est stupide, Java est déjà la limite du niveau d'abstraction que l'on peut se permettre pour faire des programmes performants
L'utilisation d'un langage de plus haut niveau n'empêche pas de le mixer avec des langages plus bas niveaux donc plus rapides. Par exemple en Java on peut très bien faire du JNI pour appeler du C++ ou du Fortran quand le besoin s'en fait sentir.
par Baba the Dw@rf, le Dimanche 23 Mars 2014 à 11h38  
par Un ragoteur lambda d'Ile-de-France, le Dimanche 23 Mars 2014 à 10h22
C'est clair que pour les langages objets comme Java et C++, on commence à en voir les limites. On passe 1h à modifier juste une ligne de code pour corriger un bug perdu dans les milliers de classes que comporte le logiciel qu'on corrige. Au début on programmait directement en binaire (interrupteurs et cartes perforées), puis on a programmé en langage machine, puis est venu le C++ et le Java. Il est temps maintenant de passer à un niveau d'abstraction supérieur.
C'est stupide, Java est déjà la limite du niveau d'abstraction que l'on peut se permettre pour faire des programmes performants, d'ailleurs au niveau de la recherche en faculté d'informatique on tend plus vers le dévelloppement d'outils de modélisation (logiciel/langage, etc) permettant de générer des applications dans un langage plus bas niveau de manière optimisée plutôt que dans l'utilisation de langage plus expressif, plus lourd, il y aura toujours quelqu'un dans la chaîne qui travaillera sur l'assembleur ou un langage de bas niveau, plus on s'en éloigne et on allonge la chaine (en ajoutant des niveaux d'abstraction) plus on se limite (contrairement à ce que tu dit).
Au final on permet juste à lambda de faire plus de choses mais on limite ce que le programmeur peut faire a l'origine si on s'enferme dans ces langages...
par Un ragoteur lambda d'Ile-de-France, le Dimanche 23 Mars 2014 à 10h22  
C'est clair que pour les langages objets comme Java et C++, on commence à en voir les limites. On passe 1h à modifier juste une ligne de code pour corriger un bug perdu dans les milliers de classes que comporte le logiciel qu'on corrige. Au début on programmait directement en binaire (interrupteurs et cartes perforées), puis on a programmé en langage machine, puis est venu le C++ et le Java. Il est temps maintenant de passer à un niveau d'abstraction supérieur.
par Karim E., le Dimanche 23 Mars 2014 à 09h05  
Le principe de ce genre de langage est ce qu'on appelle du calcul formel (ou calcul symbolique). C'est tres utilise en science notamment a treavers des programmes comme Mathematica (developpe par Wolfram) ou Maple.
par Un ragoteur qui prédate de Bourgogne, le Dimanche 23 Mars 2014 à 08h27  
C'est intéressant, mais je le vois plus comme un précurseur pour des choses à venir qu'un produit utilisable pour tous, tout de suite.
Ce qui m'embête ce serait l'espionnite aigüe, façon NSA.
Il ne s'agit pas de troller, mais dans le cas d'un usage CLOUD où l'on ne transmet plus un document mais des appels de fonctions qui vont aller puiser dans le cloud (pour le receveur), ça va devenir encore plus facile d'espionner.
Or, je pense que ce langage sera susceptible d'être employé par des scientifiques: c'est plus facile d'envoyer une commande qui va générer une mini-simulation (des graphes dynamiques) dans le corps du message que de faire des photos d'écrans ou d'envoyer un programme en disant quels paramètres utiliser.
Là ce sera du bonheur pour espionner des correspondances dans les labos...
par Guillaume H., le Dimanche 23 Mars 2014 à 06h59  
par Un ragoteur bélote d'Ile-de-France, le Dimanche 23 Mars 2014 à 06h33
Mais si on lui apprend que X = 20 et qu'un autre lui apprend que X = 54, ça se passe comment?
Si tu as, par exemple, créé un programme qui convertit une devise en une autre. La case de la première devise est "X", celle de la deuxième "Y", peu importe qui met quoi dedans, le programme que tu as créé fera sa conversion. Là ou le "X" symbolique est intéressant c'est dans l'application sur des formules mathématiques où l'inconnue reste inconnue. Il le montre plusieurs fois dans la vidéo, ça n'intéressera pas celui qui veut donner une valeur à X, mais sera pratique pour de l'analyse ou encore l'éducation
par Guillaume H., le Dimanche 23 Mars 2014 à 06h56  
par Un ragoteur foufou d'Ile-de-France, le Dimanche 23 Mars 2014 à 06h26
Donc c'est une espèce de langage avec une library standard qui fait toutes sortes de choses et où tout est accessible d'une seule commande?

Je vois pas beaucoup d'applications, peut-être pour faire des mathématiques vu qu'il est symbolique...
Effectivement, le calcul est au centre de la chose, pour une idée des applications tu as déjà les services qu'ils proposent, après il est vraiment tourné vers le web et le cloud computing. Si tu regardes du côté de leur portail pour l'éducation, tu verras que leur format CDF (Computable Document Format) permet un tas d'applications pour le web, comme des widgets ou formulaires. Tout se passe toujours à base de calcul, mais ça, c'est le propre de la programmation.
par Un ragoteur bélote d'Ile-de-France, le Dimanche 23 Mars 2014 à 06h33  
Mais si on lui apprend que X = 20 et qu'un autre lui apprend que X = 54, ça se passe comment?
par Un ragoteur foufou d'Ile-de-France, le Dimanche 23 Mars 2014 à 06h26  
Donc c'est une espèce de langage avec une library standard qui fait toutes sortes de choses et où tout est accessible d'une seule commande?

Je vois pas beaucoup d'applications, peut-être pour faire des mathématiques vu qu'il est symbolique...