IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Actualités Discussion :

Développer des sites en Lisp devient possible grâce à Javathcript

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    CEO
    Inscrit en
    juillet 2012
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : CEO
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juillet 2012
    Messages : 78
    Points : 1 395
    Points
    1 395
    Par défaut Développer des sites en Lisp devient possible grâce à Javathcript
    Développer des sites en Lisp devient possible grâce à "Javathcript"
    Une machine virtuelle intéressante ou simple exploit de Geek ?


    Simple exploit de geek à saluer ou une machine virtuelle prometteuse ?

    Javathcript est un outil qui permet de faire tourner dans ses pages web des scripts écrits dans une variante du langage de programmation Lisp.

    Aucune configuration ni aucun plug-in ne sont requis pour que ça marche. Il suffit d'inclure un fichier Javathcript.js dans ses pages, et toutes les balises script ayant le type="text/Lisp" seront interprétés. De même qu'il est permis de charger des fichiers sources Lisp externes, pour les balises à attribut src. Vous pouvez aussi évaluer une chaîne Lisp à partir de JavaScript de la manière suivante : Javathcript.eval(chaineLisp).

    Un script Lisp_script.lsp externe peut être utilisé de cette façon :
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script type="text/javascript" src="Javathcript.js"></script>
    <script type="text/Lisp" src="Lisp/prelude.lsp"></script>

    Ainsi, déclencher une boîte de dialogue avec un message : « Hello » suivi d'un nom récupéré à partir d'un champ de texte peut être simplement réalisé avec le programme Lisp suivant :
    Code LISP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/Lisp">
     (let*
       (       (button (getElement "btn"))
         (nameField (getElement "name"))
         (clickHandler (lambda () (alert (concat "Hello " (get nameField "value")))))    )
       (set button "onclick" (export clickHandler))
     )
    </script>

    Toutefois, cette implémentation ne jouit d'aucune optimisation de récursion terminale, et ne permet pas d'écrire des macros. Ce qui lui enlève, de l'avis de certains, tout intérêt en dehors de la syntaxe minimaliste et la représentation visuelle de l'arbre syntaxique abstrait.

    Notons qu'il ne s'agit pas de l'implémentation exacte d'une variante existante de Lisp, mais avec une bonne connaissance du langage, ce serait très aisé de se familiariser avec la syntaxe d'après la description du projet.

    Pour l'anecdote, LISP fut inventé par John McCarthy en 1958, alors qu'il était chercheur au MIT. Il avait présenté le langage dans un célèbre article de recherche publié dans la revue CACM en 1960.

    Lisp est un langage très répandu dans la communauté de l’Intelligence artificielle. Il est fameux pour son utilisation excessive des parenthèses, que beaucoup de développeurs lui reprochent.


    Javathcript est disponible sur GitHUB

    Source : tout savoir sur le site du projet

    Et vous ?

    Que pensez-vous de cette implémentation ?
    Peut-elle avoir des applications pratiques ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : février 2008
    Messages : 308
    Points : 620
    Points
    620
    Par défaut
    Dans le lien que tu donnes tout les fichiers semblent dater d'il y a deux ans, c'est nouveau ?

  3. #3
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : juin 2010
    Messages : 1 374
    Points : 68 503
    Points
    68 503
    Par défaut
    Salut bebaijhi,

    L'outil n'est pas nouveau, mais il est passé sous silence jusqu'à il y a quelques jours où on l'a découvert et partagé sur les Digg-likes.

    Cordialement,
    Idelways.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Architecte Web / Android
    Inscrit en
    août 2003
    Messages
    6 350
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte Web / Android
    Secteur : Industrie

    Informations forums :
    Inscription : août 2003
    Messages : 6 350
    Points : 18 363
    Points
    18 363
    Par défaut
    On peut éventuellement saluer la performance d'écriture du parser mais j'irais pas beaucoup plus loin.

    Les solutions qui permettent de détourner les langages de leur utilisations principale ne me plaise généralement pas.

    Pourquoi s'embeter avec un parser lisp alors qu'on peux faire du PHP/JAVA/RUBY/.NET/ JS....
    C'est un peu comme vouloir écrire un client lourd en php avec GTK , c'est juste inutile et sans intérêt.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    juillet 2010
    Messages
    195
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2010
    Messages : 195
    Points : 511
    Points
    511
    Par défaut
    Surtout qu'il existe un dialecte de List pour la jvm : clojure avec ce qu'il faut de framework pour développer des applications web (par exemple : http://webnoir.org/). Et il existe aussi une version se compilant en js : clojurescript.

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2008
    Messages
    830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2008
    Messages : 830
    Points : 2 604
    Points
    2 604
    Par défaut
    Je ne connaît Lisp que de nom, mais il me semble que justement l'un des intérêts de ce langage est bel et bien basé sur la récursion.
    Implémenter un truc qui permet d'utiliser un langage dérivé d'un autre, mais avec celui-ci privé de son point fort me paraît... bof.

    J'aurai bien dis: "Donc, exploit de geek à saluer , félicitations pour le parser, et je comprend bien l'intérêt en terme de curiosité d'avoir créé ça. Seulement, ça ne me semble servir à rien."
    Mais après avoir jeté un oeil très rapide aux sources, j'ai trouvé dans un fichier (https://github.com/kybernetikos/Java...ource/BPWJs.js) une indication tout à fait intéressante:
    " Significant portions of this code were ported by kybernetikos from Java code."
    Autrement dit... il ne s'agit que d'une transcription en JS d'un code JAVA déjà écrit trouvé dans un bouquin.
    Finalement... J'ai du mal a considérer comme un exploit le fait de reprendre du code (certes, traduit) mais je trouve très bien de la part de l'intéressé qu'il n'ai pas menti sur la réelle part de travail qu'il a fourni.

    D'ailleurs, je pense que si le projets est mort (dernier commit de plus de 2 ans) c'est qu'il y a une raison. L'auteur à lui-même abandonné son idée, et fermé son site. Il ne reste que le dépôt github... du coup on ne peux même pas connaître ses motivations.

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Inscrit en
    juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Sénégal

    Informations forums :
    Inscription : juillet 2012
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    salut

    moi aussi je ne connaissais pas cet outil moi je voudrais est ce qu'il est fiable.

  8. #8
    Membre éprouvé Avatar de I_believe_in_code
    Profil pro
    Inscrit en
    décembre 2008
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : décembre 2008
    Messages : 219
    Points : 1 051
    Points
    1 051
    Par défaut
    Lisp est un langage multiparadigme (procédural, objet, impératif, fonctionnel, symbolique, fonctionnel objet , etc).

    Ses parenthèses ne gênent que ceux qui les regardent. Un programmeur Lisp ne regarde jamais les parenthèses quand il lit du code. Il comprend la structure du code en regardant uniquement son indentation (d'ailleurs celle de l'exemple de code donné plus haut n'est pas correcte).

    Common Lisp est un langage très adapté pour faire du développement rapide d'applications qui n'ont pas spécialement besoin de l'être (rapides).

    (On peut certes obtenir du code compilé très rapide avec Lisp, mais cela demande une discipline extrême ainsi que de renoncer à une partie de la souplesse du langage)

    C'est aussi à ma connaissance le seul langage dont les macros sont assez puissantes pour qu'on puisse les utiliser pour étendre ou modifier la syntaxe même du langage.

    Si Emacs est si génial c'est parce que ce n'est pas un simple "éditeur de texte", mais plutôt un interprète de lisp (avec son propre dialecte de lisp d'ailleurs) spécialisé dans l'édition de texte.

    J'ai beaucoup codé en Lisp pendant environ sept ans, j'adore ce langage à titre personnel, et je devrai m'en resservir dans le futur.

    Malgré tout cela j'avoue ne pas voir a priori ce qu'une page web comportant du code écrit en Lisp pourrait avoir de plus qu'une page web ordinaire.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2007
    Messages : 104
    Points : 84
    Points
    84
    Par défaut
    Pour ceux qui sont intéressés par la programmation fonctionnelle pour développer un site web en utilisant un langage du monde lispien (plutôt Scheme que Lisp d'ailleurs), vous pouvez regarder du côté de Hop.

    En passant, c'est un langage multi-tiers.

  10. #10
    Inactif  
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2006
    Messages : 215
    Points : 0
    Points
    0
    Par défaut
    ça devient complétement débile tout ça.

  11. #11
    Membre extrêmement actif

    Profil pro
    Grand Timonier des Chats
    Inscrit en
    décembre 2011
    Messages
    879
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Grand Timonier des Chats

    Informations forums :
    Inscription : décembre 2011
    Messages : 879
    Points : 3 307
    Points
    3 307
    Par défaut
    On peut déjà developper des sites en LISP: c'est tout à fait possible de l'utiliser côté serveur (oui, je sais, ce n'est plus à la mode).

    Sinon, implémenter une machine virtuelle LISP simplifiée en Javascript...je plussoie fortement I believe in code: malgré les avantages de ce language, je ne vois pas trop l'intérêt.

  12. #12
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    mars 2004
    Messages
    2 271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2004
    Messages : 2 271
    Points : 4 736
    Points
    4 736
    Par défaut
    Citation Envoyé par I_believe_in_code Voir le message
    C'est aussi à ma connaissance le seul langage dont les macros sont assez puissantes pour qu'on puisse les utiliser pour étendre ou modifier la syntaxe même du langage.
    Prolog le permet aussi.

  13. #13
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : juin 2009
    Messages : 1 909
    Points : 3 175
    Points
    3 175
    Par défaut
    il y'a aussi la possibilité d'utiliser elnode, et la c'est un éditeur bien connu que tu transforme en serveur web.

    http://www.emacswiki.org/emacs/Elnode
    http://nic.ferrier.me.uk/blog/2010_10/elnode


    ou bien 4clojure
    http://www.4clojure.com/
    bazar: http://www.improetcompagnie.com/publ...ctacles-6.html

    BÉPO la disposition de clavier francophone, ergonomique et libre: http://bepo.fr/wiki/Accueil

    Emacs Wiki: http://www.emacswiki.org/

    En attente de ce que produira: http://www.pushmid.com

  14. #14
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    mai 2004
    Messages
    9 945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : mai 2004
    Messages : 9 945
    Points : 27 237
    Points
    27 237
    Par défaut
    Citation Envoyé par tarikbenmerar Voir le message
    Simple exploit de geek à saluer ou une machine virtuelle prometteuse ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ( Bonjour,
      (  Probablement utile dans deux (ou trois) cas,
         ( mais pas (beaucoup) plus)
         ( m(')enfin c(')est toujours interessant (techniquement))
             (d(')avoir de nouvelles possibilites)
         )
         )
      )
    )
    Oui, ecrire dans un bloc code n'est pas top, mais sans l'indentation, c'etait beaucoup moins drole
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/11/2009, 16h53
  2. Des sites développé avec JSF
    Par Arthuris dans le forum JSF
    Réponses: 3
    Dernier message: 29/06/2009, 16h35
  3. Réponses: 7
    Dernier message: 20/04/2009, 10h47
  4. Test des sites développés
    Par elekaj34 dans le forum Débuter
    Réponses: 2
    Dernier message: 02/08/2008, 19h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo