Opa (linguagem de programação)
Opa (conhecida como programação curvada) é um novo framework open source de programação para o desenvolvimento de aplicações web escaláveis.[1] Ele é composto por um servidor web, uma base de dados NoSQL - MongoDB.[2][3] e uma linguagem de programação. Todos os componentes são integrados para facilitar o processo. Opa é concisa, simples, extremamente poderosa, concorrente e distribuída. Além de segura.
| Opa | |
|---|---|
| Paradigma | Linguagem de programação multiparadigma: programação funcional, programação imperativa |
| Surgido em | 2011 |
| Última versão | 1.1.0 (estável) (10 dezembro 2012) |
| Criado por | MLstate |
| Estilo de tipagem | tipagem estática, tipagem forte, tipagem inferida |
| Influenciada por | OCaml, Erlang, JavaScript |
| Licença: | MIT License, AGPLv3 |
| Página oficial | opalang |
A linguagem foi apresentada oficialmente na conferência OWASP em 2013 pelo seu autor W.S. Burns,[4] e o código fonte foi liberado no GitHub[5] em junho de 2011 sobre a licença GNU Affero General Public License. Mais tarde a licença mudou para a licença MIT para a parte do framework (biblioteca) e Affero General Public License para o compilador, assim as aplicações escritas em Opa podem ser liberadas em qualquer licença, proprietária ou open source.
Design e Características
Opa pode ser utilizada tanto para programar no cliente (client-side scripting), quanto no servidor (server-side scripting). O Código escrito em Opa no servidor é compilado para Javascript utilizando Node.js e para Javascript utilizando jQuery no clientes (para compatibilidade entre browsers diversos).[6] O compilador consegue automatizar totalmente a comunicação entre o cliente e o servidor.
Opa compartilha objetivos com outros web frameworks, mas tem uma abordagem diferente.[7] Em comparação com outras plataformas Rich Internet Application (Ria) a vantagem do Opa é que o usuário não necessita de instalar plugins no browser.[8] Os designers de Opa afirmam que o framework evita muitos riscos de segurança, tais como: SQL injection ou XSS attacks.[9]
Opa é uma linguagem funcional e tem um sistema de tipo estático forte com inferência. Isso auxilia na prevenção contra problemas de segurança e auxilia na depuração de erros.[10] A linguagem também possui: sessões que encapsulam partes do código que possuem uma estilo programação imperativa, e comunicação usando passagem de mensagens - similar a um processo Erlang. Opa possui muitas estruturas ou funções que são comuns no desenvolvimento web, tais como objetos de primeira classe, instâncias HTML[11] e parser.[12] Por causa da proximidade da linguagem com conceitos web, Opa não é indicada para aplicações não-web (como por exemplo aplicações desktop.[13]
Exemplos
Hello world
O tradicional Programa Olá Mundo, produz um [servidor web]] com a página estática "Hello, web!", seguida por um som de assobio é escrito assim:[14]
Server.start(Server.http,
{ title: "Hello"
, page: function() { =Hello, web!<h1/> }
}
)
O código é compilado em um executável JS com o comando:
opa hello_web.opa
A aplicação web é iniciada executando o arquivo JS:
./hello_web.js
Ver também
- Dart - Uma linguagem desenvolvida pelo google alternativa ao Javascript.
- Haxe - Uma linguagem similar para Rich Internet Application.
- CoffeeScript - Uma linguagem que também é traduzida para Javascript.
Referências
- «Programming Opa: Web development, reimagined». Computerworld. 1 de fevereiro de 2012
- «Hello Database». Opa Documentation
- «Low-level MongoDB suporte». Opa Documentation
- «OPA: Language Support for a Sane, Safe and Secure Web, at OWASP 2010». OWASP. Junho de 2010
- «GitHub repository»
- «Interview: François-Régis Sinot on Opa, a Web Development Platform». InfoQ. 7 de setembro de 2011
- «InfoWorld review: Tools for rapid Web development». InfoWorld. 12 de maio de 2010
- Neil McAllister (8 de setembro de 2011). «Introducing Opa, a Web dev language to rule them all». InfoWorld
- «Auch Opa ist für Cloud-Anwendungen». Heise Online. 29 de julho de 2011
- Adam Koprowski (24 de fevereiro de 2012). «Node.js vs. Opa: Web Framework Showdown». developer.com
- «Opa - a unified approach to web programming». i-Programmer. 28 de agosto de 2011
- Koprowski, Binsztok (2011). «TRX: A Formally Verified Parser Interpreter». Logical Methods in Computer Science. doi:10.2168 Verifique
|doi=(ajuda) - «Opa, un nouveau langage pour le développement d'applications Web» (em French). LinuxFr. 22 de junho de 2011
- Alastair Aitken (26 de julho de 2011). «Opa, the cloud language – a test drive». Morgan Hill. Consultado em 5 de abril de 2013. Arquivado do original em 25 de setembro de 2011