Opa (język programowania) - Opa (programming language)

Opa
Opa logo cloud.png
Paradygmat wieloparadygmat : funkcjonalny , imperatyw
Deweloper MLstate
Po raz pierwszy pojawiły się 2011
Wersja stabilna
1.1.1 (stabilny) / 8 marca 2014 ; 7 lat temu ( 08.03.2014 )
Dyscyplina pisania statyczny , silny , wnioskowany
OS Linux , OS X , Windows
Licencja Licencja MIT , AGPLv3
Stronie internetowej opalang .org
Wpływem
OCaml , Erlang , JavaScript

Opa to język programowania typu open source do tworzenia skalowalnych aplikacji internetowych .

Może być stosowany zarówno po stronie klienta i po stronie serwera skryptów , gdzie kompletne programy są napisane w Opa a następnie kompilowany do node.js na serwerze i JavaScript na kliencie , z kompilatora automatyzację wszystkich komunikację między nimi. Opa implementuje silne , statyczne typowanie , które może być pomocne w ochronie przed problemami bezpieczeństwa, takimi jak wstrzyknięcia SQL i ataki cross-site scripting .

Język został po raz pierwszy oficjalnie zaprezentowany na konferencji OWASP w 2010 roku, a kod źródłowy został udostępniony na GitHub w czerwcu 2011 roku na licencji GNU Affero General Public License . Później zmieniono licencję na licencję MIT na część framework (bibliotekę) i AGPL na kompilator, dzięki czemu aplikacje napisane w Opa mogą być wydawane na dowolnej licencji, własnościowej lub open source.

Projekt i funkcje

Opa składa się z serwera WWW , bazy danych i rozproszonego silnika wykonawczego. Kod napisany w Opa jest kompilowany do JavaScript przy użyciu Node.js po stronie serwera i JavaScript przy użyciu jQuery dla kompatybilności między przeglądarkami po stronie klienta . Zaletą tego podejścia w porównaniu z niektórymi platformami Rich Internet Application (RIA) jest to, że użytkownicy nie muszą instalować wtyczki w przeglądarce. Opa dzieli motywacje z frameworkami internetowymi , ale stosuje inne podejście. Jego projektanci twierdzą, że pomaga to Opa uniknąć wielu problemów związanych z bezpieczeństwem, takich jak iniekcje SQL lub ataki XSS ( cross-site scripting ).

Język podstawowy jest funkcjonalny i ma statyczny system typów z wnioskowaniem o typie . Opa zapewnia również sesje, które hermetyzują stan imperatywny i komunikują się za pomocą przekazywania wiadomości , podobnie jak procesy Erlanga . Opa dostarcza wiele struktur lub funkcji, które są powszechne w tworzeniu stron internetowych, jako obiekty pierwszej klasy , na przykład HTML i parsery , oparte na Parsing Expression Grammars . Ze względu na tę przyczepność między językiem a koncepcjami związanymi z siecią, Opa nie jest przeznaczony do aplikacji innych niż internetowe (na przykład aplikacji komputerowych ).

W wersji 0.9.0 z lutego 2012 r. wprowadzono technologię mapowania baz danych dla nierelacyjnej , zorientowanej na dokumenty bazy danych MongoDB , podobną do mapowania obiektowo-relacyjnego . Wydanie 1.1.0 z lutego 2013 dodało również obsługę PostgreSQL , torując drogę do obsługi kilku baz danych SQL .

Przykłady

Witaj świecie

Tradycyjny program Hello world , tworzący serwer sieciowy, który obsługuje statyczną stronę z napisem „Hello, web!” jako jego treść można w Opa zapisać jako:

Server.start(Server.http,
  { title: "Hello"
  , page: function() { <h1>Hello, web!</h1> }
  }
)

Można go skompilować do samodzielnego pliku wykonywalnego JS z:

$ opa hello_web.opa

Uruchomienie wynikowego pliku wykonywalnego JS uruchamia aplikację internetową:

$ ./hello_web.js

Zobacz też

  • Ur - funkcjonalny język programowania do tworzenia stron internetowych
  • Dart - alternatywa JavaScript dla aplikacji internetowych
  • Haxe - podobny język programowania dla aplikacji internetowych
  • CoffeeScript - język programowania transkompilowany do JavaScript dla aplikacji internetowych
  • Dark , język programowania, który integruje tworzenie i wdrażanie usług bezserwerowych

Bibliografia

Bibliografia

Linki zewnętrzne