Opa (linguagem de programação)

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
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; 627 dias atrás)
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.org

Opa é 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, extramamente poderosa, concorrente e distribuída. Além de segura.

A linguagem foi apresentada oficialmente na conferência OWASP em 2013, [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 imperativo, 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 Hello world program, produz um web server com a página estática "Hello, web!" é escrito assim:[14]

Server.start(Server.http,
  { title: "Hello"
  , page: function() { <h1>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

Veja também[editar | editar código-fonte]

Portal A Wikipédia possui o portal:
  • Free software

Referências

  1. "Programming Opa: Web development, reimagined", Computerworld, 1 February 2012.
  2. Hello Database. Opa Documentation.
  3. Low-level MongoDB suporte. Opa Documentation.
  4. OPA: Language Support for a Sane, Safe and Secure Web, at OWASP 2010. OWASP (June 2010).
  5. GitHub repository.
  6. Interview: François-Régis Sinot on Opa, a Web Development Platform. InfoQ (7 September 2011).
  7. InfoWorld review: Tools for rapid Web development. InfoWorld (12 May 2010).
  8. Neil McAllister (8 September 2011). Introducing Opa, a Web dev language to rule them all. InfoWorld.
  9. Auch Opa ist für Cloud-Anwendungen. Heise Online (29 July 2011).
  10. Adam Koprowski (24 February 2012). Node.js vs. Opa: Web Framework Showdown. developer.com.
  11. Opa - a unified approach to web programming. i-Programmer (28 August 2011).
  12. Koprowski, Binsztok (2011). TRX: A Formally Verified Parser Interpreter. Logical Methods in Computer Science.
  13. Opa, un nouveau langage pour le développement d’applications Web (em french). LinuxFr (22 June 2011).
  14. Alastair Aitken (26 July 2011). Opa, the cloud language – a test drive. Morgan Hill.

Ligações externas[editar | editar código-fonte]