Category:Ecstasy: Difference between revisions

add TODO page
(Created page with "{{stub}}{{language|Ecstasy}}")
 
(add TODO page)
 
(2 intermediate revisions by the same user not shown)
Line 1:
{{stub}}{{language|Ecstasy}}
|exec=bytecode
|site=https://github.com/xtclang/xvm
|gc=yes
|parampass=both
|safety=safe
|express=both
|compat=Nominative, Duck
|checking=both
|strength=strong
|tags=xtc, xtclang, ecstasy
|LCT=yes
|bnf=https://github.com/xtclang/xvm/blob/master/doc/bnf.x}}
{{language programming paradigm|Object-oriented}}
{{language programming paradigm|Imperative}}
{{language programming paradigm|functional}}
{{language programming paradigm|generic}}
{{language programming paradigm|reflective}}
The '''Ecstasy''' programming language ('''xtclang''') is designed to support the efficient composition of secure applications, long-term maintainable infrastructure, and the efficient low-cost deployment exemplified by the serverless cloud. The language was created by xqiz.it, developed within the open source "Ecstasy Project" organization, and freely licensed using the business-friendly Apache 2 open source license.
 
One or more Ecstasy source files (`.x` files) are [[Compiler|compiled]] to an intermediate [[bytecode]] executable (`.xtc` file) and executed by the XTC Virtual Machine (XVM). The bytecode is a mid-level IR designed to be efficiently lowered to native machine code by a combination of ahead-of-time compilation and an adaptive JIT.
 
The primary benefits of Ecstasy are:
* Code that is easy to understand and a language that is easy to learn for any developers already familiar with widely-used languages like: Java, C#, Python, Swift, Kotlin, and C++
* A security model designed for the serverless cloud, using lightweight software containers and dependency injection (IOC/DI)
* A reified generic type system with support for unions, intersection, and difference types, first-class tuples and functions, type inference, and type-safe mixins
* Built-in concurrency support, with first-class support for object immutability, and the elimination of shared-mutable data
* All of the modern capabilities that developers have grown to depend on, such as: [[garbage collection|Automatic memory management]], an integrated module system, first-class lambdas and functions, partial binding and currying, cross-platform portability, and an open source development model
 
==TODO==
* [[Tasks not implemented in Ecstasy]]
162

edits