notes/crud-lang
2025-10-14 17:19:49 +02:00
..
src/api more ideas 2025-10-14 17:19:49 +02:00
README.md more ideas 2025-10-14 17:19:49 +02:00

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