31 lines
2.2 KiB
Plaintext
31 lines
2.2 KiB
Plaintext
{{language
|
|
|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]] |