▲ | h4ch1 3 days ago | |||||||
Thank you for the response professor, really appreciate it from one of the creators of the language itself; I did give your document a read and my (naive) understanding is you basically create DSLs for each sub-part of the problem you're trying to solve? >A LOP-based software system consists of multiple, cooperating components, each written in domain-specific languages. and >cooperating multi-lingual components must respect the invariants that each participating language establishes. So basically you're enforcing rules/checks at the language level rather than compile time? How would you recommend a complete novice attain this sort of state of mind/thought process while working in this language? Because my thoughts go simply to creating types and enforcing type-checking coupled with pure functions to avoid successful-fail at runtime programs. Also how would one navigate the complexity of multiple abstractions while debugging? The paper also mentions a web-server language (footnote 27), if I use racket will I be productive "out of the box" or is the recommended path to take is writing a web server language first. Thank you again for taking the time to respond, and please do forgive me for these naive questions. | ||||||||
▲ | skrishnamurthi 3 days ago | parent [-] | |||||||
These are great questions! Yes, what you're describing is the "extreme" version of LOP. Of course you don't have to do it that aggressively to get working code. Two references I like to point to: https://www.hashcollision.org/brainfudge/ They will give you a sense of how one uses LOP productively. You do not need to write a "web server language"! To the contrary, the Web server provides several languages to give you a trade-off between ease and power in writing server-side Web applications. So you can just write regular Racket code and serve it through the server. The server also comes with some really neat, powerful primitives (orthogonal to LOP) — like `send/suspend` — that make it much easier to write server-based code. | ||||||||
|