Cor

Cor is an opensource language that compiles to regular JavaScript. It is designed to make easy to write simple, fast and maintainable software for the Web.

Cor is a new language that compiles line-to-line into the equivalent JavaScript. The resulting code runs at equal speed to handwritten JS. You can use any existing JavaScript library in Cor and vice-versa.

Clean syntax

Cor enables you to write large applications by providing a clean syntax, classes and a modular architecture to keep organized code, enforcing the writing of readable source code based on conventions.

use './Todo'
use 'backbone' bb
use 'storage'  Storage

class TodoList : bb.Collection {
    localStorage    = &Storage('todos-backbone')
    model           = Todo
    func getModel() me.model
}
func init() {
    ch = chan()
    go {
        timeout(100)
        ch <- 'some msg'
    }

    go { console.log(<- ch) }
}

Asynchronous Nature

Cor allows you to spawn coroutines and synchronize it by passing messages through channels. It is designed to deal with asynchronicity and parallel I/Os by writing sequential code.

Hot reaload

Cor provides a smooth front-end development by furnishing a builtin loader which resolves dependences and compiles source code on the fly, with just reloading the Web page. You will only need to use CLI tools to deliver a production-ready version of the app.

<html>
    <script
        type="text/javascript"
        src="node_modules/cor-lang/dist/cor.js">
    </script>
    <script data-entry="my_app.cor"></script>
</html>

Easy to debug

Cor supports source-maps, allowing you the easy debugging in major browsers. However a line of Cor source is compiled to the exact line number in JavaScript for accurated debugging when developing in platforms that doesn't supports source-maps such as servers.