OPA Un nouveau langage pour applications distribuées
jeu, 29/09/2011 - 14:10
OPA est un nouveau langage pour développer des application distribuées, pour le cloud computing en général. L'extrait de code ci-dessous, dont l'allure général n'est pas sans évoquer très fortement Erlang, est une application web de chat.
Une démo de cette application est accessible depuis le site officiel.
Site: opalang.org
type message = { author : string ; text : string }
@publish room = Network.cloud("room") : Network.network(message)
user_update(x : message) =
line = <div>
<div class="user">{x.author}:</>
<div class="message">{x.text}</>
</>
do Dom.transform([#conversation +<- line ])
Dom.scroll_to_bottom(#conversation)
broadcast(author) =
do Network.broadcast({~author text=Dom.get_value(#entry)}, room)
Dom.clear_value(#entry)
start() =
author = Random.string(8)
<div id=#header><div id=#logo></></>
<div id=#conversation onready={_ -> Network.add_callback(user_update, room)}></>
<div id=#footer>
<input id=#entry onnewline={_ -> broadcast(author)} />
<div onclick={_ -> broadcast(author)}>Post</>
</>
server = Server.one_page_bundle("Chat", [@static_resource_directory("resources")],
["resources/css.css"], start)