Opa (programming language): Difference between revisions

Content deleted Content added
m Task 70: Update syntaxhighlight tags - remove use of deprecated <source> tags
Citation bot (talk | contribs)
Alter: journal, title. | You can use this bot yourself. Report bugs here. | Suggested by Neko-chan | Category:Cross-platform free software | via #UCB_Category 353/378
Line 17:
'''Opa''' is an [[Open-source software|open-source]] [[programming language]] for developing [[Scalability|scalable]] [[web applications]].
 
It can be used for both [[client-side scripting|client-side]] and [[server-side scripting]], where complete programs are written in Opa and subsequently compiled to [[Node.js]] on the [[server (computing)|server]] and [[JavaScript]] on the [[client (computing)|client]], with the [[compiler]] automating all communication between the two.<ref>{{cite web |author=Adam Koprowski|url=http://www.developer.com/open/opa-vs.-node.js-javascript-framework-comparison.html|title=Node.js vs. Opa: Web Framework Showdown|publisher=developer.com|date=24 February 2012}}</ref><ref>Opa actually supports various server-side backends, Nodejs being the most popular one</ref> Opa implements [[Strong typing|strong]], [[static typing]], which can be helpful in protecting against security issues such as [[SQL injection]]s and [[cross-site scripting]] attacks.<ref>{{cite journal|url=http://www.mendeley.com/research/static-enforcement-of-web-application-integrity-through-strong-typing/|title=Static Enforcement of Web Application Integrity Through Strong Typing|last1=Robertson|first1=William|last2=Giovanni|first2=Vigna|year=2009|journal=SSYM'09 Proceedings of the 18th conferenceConference on USENIX securitySecurity symposiumSymposium}}{{Dead link|date=April 2020 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
 
The language was first officially presented at the [[OWASP]] conference in 2010,<ref>{{cite web |date=June 2010 |publisher=OWASP
Line 33:
for instance [[HTML]]<ref>{{cite web|url=http://www.i-programmer.info/news/98-languages/2961-opa-a-unified-approach-to-web-programming.html
|title=Opa - a unified approach to web programming |publisher=i-Programmer |date=28 August 2011}}</ref> and [[parser]]s, based on [[Parsing Expression Grammar]]s.<ref>{{cite web |author=Koprowski, Binsztok |year=2011|url=http://www.lmcs-online.org/ojs/viewarticle.php?id=708&layout=abstract|title=TRX: A Formally Verified Parser Interpreter|publisher=Logical Methods in Computer Science }}</ref>
Because of this adhesion between the language and web-related concepts, Opa is not intended for non-web applications (for instance [[desktop application]]s).<ref>{{cite web |url=http://linuxfr.org/news/opa-un-nouveau-langage-pour-le-d%C3%A9veloppement-d%E2%80%99applications-web |title=Opa, un nouveau langage pour le développement d’applicationsd'applications Web|publisher=LinuxFr |language=French|date=22 June 2011}}</ref>
 
The 0.9.0 release in February 2012 introduced database mapping technology for the non-relational, document-oriented database [[MongoDB]], similar to [[object-relational mapping]].<ref>{{cite web|url=http://doc.opalang.org/#!/manual/Hello--database|title=Hello, database|publisher=Opa Documentation|access-date=2012-02-22|archive-url=https://web.archive.org/web/20140112111933/http://doc.opalang.org/#!/manual/Hello--database|archive-date=2014-01-12|url-status=dead}}</ref><ref>{{cite web|url=http://doc.opalang.org/#!/manual/Low-level-MongoDB-support|title=Low-level MongoDB support|publisher=Opa Documentation|access-date=2012-02-22|archive-url=https://web.archive.org/web/20140112111933/http://doc.opalang.org/#!/manual/Low-level-MongoDB-support|archive-date=2014-01-12|url-status=dead}}</ref><ref>{{cite news|url=http://news.idg.no/cw/art.cfm?id=36C6A408-F2EE-3929-CB53260EBA6B884F|title=Programming Opa: Web development, reimagined|publisher=[[Computerworld]]|date=1 February 2012}}</ref>