# 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