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.org

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

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

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.