About kaoscript
What's kaoscript?
kaoscript is programming language combining features from ES7, CoffeeScript, TypeScript, Rust, Swift, C# and more.
Currently, kaoscript is transpiled to JavaScript.
Why?
This project came to life due to an issue of JavaScript:
- It's not recommended to extends natives classes to avoid any conflict with a JavaScript engine or a dependency.
But, because of that issue, your code consistency is broken!
For example, to call the array's functions map
and clone
, it is written differently:
array.map(...)
_.clone(array)
So how kaoscript fixes that issue?
kaoscript compiles array.clone()
to _.clone(array)
so you can keep your code consistency.
But, now, it became much more than that 😉
Features
🚧 This project is still in an experimental state due to major missing features like trait, mixin and operator overloading.
- easy syntax: close to ES6 and Swift
- fully OOP: extendable native classes but fully compatible with the node.js
- partial/impl paradigm
- async/await: don't need ES7
- check variables existences
- automatically declare variable:
i = 0
=> let i = 0
- array range
- for/to, for/til, for/in, for/of, for/range, until: no more
for(;;)
- comprehensions
- typed or not
let i = 0
or let i: Number = 0
- automatic typing: on assignement with operator
:=
- type alias:
type float = Number
- generics
- chained operations:
1 < x < 10
- enum
- namespace
- import/export:
import
is the equivalent of node.js require
- require: declare requirements (only for a module)
- extern/declare: explicit global scope
- typed import: import non-kaoscript objects and indicate their types
- function overloading
- advanced parameters
- error handling: by default, it's à la Java but it's configurable
- attributes
- conditional compilation
- macro
Roadmap
v1
v2
- Transpile to another language (Go, Python or Haxe)