1.4 KiB
crud-lang
This is now in first-draft phase. Meaning, I just had the idea and I am jotting down very preliminary design decisions.
-
an experimental language for CRUD applications (backend only though)
-
Enterprise as a first-class citizen
-
urls are made up directories and filenames
-
a controller sourcefile is a file with the .ctl extension
-
likewise
-
.svc services
-
.cl service clients (that call other services)
-
.dao database access code (not objects)
-
.qc queueconsumers
-
.qp queueproducers
-
.utl utilities
-
there is a strict calling hierarchy. A service can not call a controller. It can only go 'down'.
-
Services can not call other services, because that is the recipe for spaghetti. Refactor your logic, abstract and put lower level code in utilities.
-
Utilities are allowed to call other utilities. OMG, spaghetti after all! TBD
-
It is an interpreter written in rust. OMG!
-
And it has everything I like in other languages
- strictly typed
- [] is a list
- {} is a map
- no objects, no inheritance
- structs and duck typing
- everything is an expression
- nice iterators.
- First class functions? Maybe...
types
- u32, i32
- u64, i64
- f32, f64,
- string, bool, char
- struct enum
question
- how to model headers
- middleware, implement later
**the example: **
- a very simple api that listens to GET /api/customers{:id} and returns a customer from the database