$ 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.
- 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.
- 02One type from database to screen. A field exists once. Rename it or change its type and the build breaks, never a visitor.
- 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.
- 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.
- 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.