Opa (linguagem de programação)
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 |
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.
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
[editar | editar código-fonte]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
[editar | editar código-fonte]Hello world
[editar | editar código-fonte]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
[editar | editar código-fonte]- 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