notes/crud-lang/README.md
2025-10-14 17:23:42 +02:00

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