Az OPA programozási nyelv

Bevezetés

Bevezetés

Az OPA egy nyílt forráskódú, eseményvezérelt programozási nyelv. A nyelv segítségével nagyon könnyedén írhatunk valós idejű webes alkalmazásokat és szolgáltatásokat, amelyek méretezhetőek és biztonságosak.

Miért az Opa?

A kliens és szerver oldali kódot, adatbázis lekérdezéseket közvetlenül írhatjuk egy forráskódba, amelyet az Opa fordítója szétosztja a megfelelő erőforrások között. Egyedül a kommunikációra kell nagyobb hangsúlyt fordítani. Egyszerű kulcsszavakat használ a kód szétválasztására, finomhangolására és az alkalmazások teljesítményének javítására.

// Opa fordító dönt function client_or_server(x, y) { ... } // Kliens-oldali funkció client function client_function(x, y) { ... } // Szerver-oldali funkció server function server_function(x, y) { ... }

A nyelv támogatja a nagy NoSQL adatbázisok használatát, mint a MongoDB, CouchDb, valamint a belső adatbázisát, amely nem igényel különösebb konfigurációt.

Egyszerű munka

Bármely szövegszerkesztőben megírhatjuk az alkalmazásunkat, .opa kiterjesztéssel elmentve. A jól ismert "Hello, world" alkalmazás:

Server.start( Server.http, { page: function() { Hello, world } , title: "Hello, world" } )

A program fordításához a következő parancsot kell futtatni:

opa hello.opa --

Az eredményül kapott alkalmazást, bármely webböngésző segítségével megnyithatjuk, a következő cím beírásával:

http://localhost:8080

Szintaxis

A nyelv új alapértelmezett szintaxisát a C, JavaScript és egyéb ismert, népszerű nyelvek ihleték.

function createUser(username, password) { match (findUser(username)) { case {none}: user = { username: username , fullname: "" , password: Crypto.Hash.sha2(password) }; saveUser(user); default: displayMessage("This username exists"); }; Client.goto("/login"); }

Kiterjeszti a klasszikus szintaxist az internet világára. Közvetlenül idézőjelek nélkül lehet HTML kódot beilleszteni a forrásba.

line = < div id="foo">bar;

Könnyedén elérhetőek a CSS elemek is.

selector = #foo;

Egy pointer-szerű szintaxissal alkalmazhatja az adott tartalmat a selector.

*selector = line; function action(_) { #foo = < div id=”bar” />; } … < div onclick={action} />

Statikus típus

Az egyik legfontosabb jellemzője, hogy a típus ellenőrzést futási időben végzi. Az alaptípusok mellett ismeri és kezeli az összetett adatstruktúrákat, modulokat és a legújabb, legkorszerűbb típusokat is.