$ complex

$ cat why.md

Why Complex exists

Tierless languages have been tried before: Links (Edinburgh), Ur/Web (MIT), Opa. They worked and nobody used them. Complex starts from the other end: adoption is a design requirement from day one.

$ cat principles.md

Five rules decide every doubt about the language. If a proposal does not fit, it does not go in.

  1. 01Complex in power, simple to read. The compiler does the hard work. Syntax is a user interface: whoever reads a page sees what it does.
  2. 02One type from database to screen. A field exists once. Rename it or change its type and the build breaks, never a visitor.
  3. 03Security is grammar. A secret cannot reach a view. A server action without a permission rule does not compile. An internal address cannot end up in HTML.
  4. 04Errors are values, not exceptions. Every call to the outside has a timeout and a fallback. An error cannot reach the type of a cache, so it is never cached.
  5. 05Adoption is a requirement. One binary you start on any server, built-in storage, error messages written for humans with a suggested fix, and a bridge to existing PHP and JavaScript.

$ cat goal.txt

The goal is a language a working developer can pick up on a Monday and ship with on Friday, that makes a whole class of mistakes impossible instead of merely unlikely.