Opa (linguagem de programação)

Origem: Wikipédia, a enciclopédia livre.
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; 4156 dias)
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 (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]

Referências

  1. «Programming Opa: Web development, reimagined». Computerworld. 1 de fevereiro de 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. Junho de 2010 
  5. «GitHub repository» 
  6. «Interview: François-Régis Sinot on Opa, a Web Development Platform». InfoQ. 7 de setembro de 2011 
  7. «InfoWorld review: Tools for rapid Web development». InfoWorld. 12 de maio de 2010 
  8. Neil McAllister (8 de setembro de 2011). «Introducing Opa, a Web dev language to rule them all». InfoWorld 
  9. «Auch Opa ist für Cloud-Anwendungen». Heise Online. 29 de julho de 2011 
  10. Adam Koprowski (24 de fevereiro de 2012). «Node.js vs. Opa: Web Framework Showdown». developer.com 
  11. «Opa - a unified approach to web programming». i-Programmer. 28 de agosto de 2011 
  12. Koprowski, Binsztok (2011). «TRX: A Formally Verified Parser Interpreter». Logical Methods in Computer Science. doi:10.2168 Verifique |doi= (ajuda) 
  13. «Opa, un nouveau langage pour le développement d'applications Web» (em French). LinuxFr. 22 de junho de 2011 
  14. 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 

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