Ce qui explique sa forme "orientée prototype" et fonctionnelle
<a href="#" onclick='alert("Hello World!")'>
Say hello !
</a>
C'est à partir de ce moment que Javascript à
commencé à traîner sa mauvaise réputation...
Le monde s'est ouvert aux applications web et Javascript estCertains développeurs préfèrent utiliser leur langage pour décrire des interactions.
devenu un outil "convaincant" pour décrire les interactions clients
à tel point qu'il est devenu l'Assembleur du web.
Plaire à beaucoup de développeurs...
Pour les mêmes raisons que ceux qui se servent de Javascript
côté client, pourquoi apprendre un autre langage ?
Sucrage syntaxique, analyse statique
On arrête de se prendre pour un compilateur en écrivant des
milliers de jeux de tests (même s'il en faut toujours, parfois !)
Js_of_ocaml s'inscrit dans la suite de logiciel Ocsigen
OCaml SIte GENeratorUne bibliothèque libre d'outils pour construire
Compilateur du byte-code OCaml vers Javascript
Lwt est un système de multithreading collaboratif
|
|
|
|
|
|
|
|
Le workflow de programmation est réduit
type 'a t
val return :'a -> 'a t
val bind :'a t -> ('a -> 'b t) -> 'b t
Généralisation sur les types paramétrés
pour permettre la composition
Composition forte !
let _ =
let open Lwt_js_events in
async_loop click Dom_html.document
(fun event () -> Dom_html.window ## alert (Js.string "Hello"))
{server{ ... }}
{client{ ... }}
{shared{ ... }}