Opa  ?
Opa est une technologie de développement d’applications Web distribuées. C’est un nouveau langage de programmation fortement couplé à une bibliothèque Web standard qui remplit toutes les fonctions : de serveur d’applications Web, à serveur de base de données.

En un mot, Opa ne dépend pas des piles serveurs actuelles (à la Apache / PHP / MySQL / Symfony). Un code source Opa est compilé en un binaire autonome du service, qui se contente d’une distribution GNU/Linux nue (même micro) pour l’exécution.
Opa est spécialement conçu pour le Web et spécifie l’ensemble des aspects de l’application :

-le code client comme le code serveur sont écrits en Opa : le compilateur détermine automatiquement les parties client et serveur (des annotations existent pour lui forcer la main), traduit le code client en JavaScript et automatise les échanges entre client et serveur ;

-la structure de la base de données et les requêtes sont également écrites en Opa : là aussi, le compilateur analyse les requêtes pendant la compilation et génère le code d’accès aux données.

Pourquoi un nouveau langage ?
En développant Opa, nous avions deux objectifs :
-rendre le Web sûr (et en conséquence sécurisé) : pour cela, il fallait idéalement réécrire proprement l’ensemble des technologies serveur en une, pour minimiser la quantité de code nécessaire (et faire une implémentation propre) ;
-rendre le Web simple à programmer : nous voulions notamment distribuer automatiquement code et données… et cela imposait de fait un nouveau langage.

Mais le résultat est là : un Webchat distribué s’écrit (sans bibliothèque chat existante…) en 20 lignes de code en Opa, un Wiki guère plus… et déjà de nombreuses petites (et plus grandes) applications Web ont été très rapidement écrites en Opa.

Opa fait‐il le café  ?
Désolé, mais non. Opa n’est pas fait pour écrire autre chose qu’une application Web ou un service Web. En effet, l’adhérence entre le compilateur et la bibliothèque standard est forte, et cette dernière est entièrement dédiée au Web. De même, le modèle applicatif est celui de serveurs distribués et de multiples clients qui discutent via les protocoles Web.

Opa n’est aujourd’hui pas non plus fait pour s’intégrer directement avec des langages ou des bases de données existants. Pas de liaison ODBC ou de sérialisation de valeurs PHP pour l’instant. La façon d’interagir avec l’existant est au niveau service Web, via SOAP, REST et / ou WSDL.


Le code, les binaires, la doc
Le code source d’Opa est maintenant disponible sur GitHub. Les premiers paquets (Debian / Ubuntu, tarball, Mac OS X) et la documentation sont disponibles sur le site opalang.org.

Nous espérons que vous allez rejoindre la communauté des développeurs Opa : nous serions ravis que vous développiez des applications en Opa, nous aidiez à créer des paquets pour votre distribution favorite, contribuiez à la documentation, et en parliez sur votre blog, si vous trouvez, comme nous, qu’Opa est la manière la plus plaisante d’écrire et d’exécuter des applications Web à l’heure du cloud .

Site Opalang
Manuel Opa avec des exemples de code
Liste d’applications en Opa
Dépôt sur GitHub
La FAQ du projet

N’hésitez pas à nous poser vos questions, l’équipe se fera un plaisir de vous répondre.