[Jam Submission] CurtaCode — Your All-In-One IDE for the Curta systems programming language!
A while back, for the langjam, I made a systems programming language named Curta. I've decided to revamp Curta and really make it something special, bringing a new flavor to its event-driven nature.
The actor-message model
Let's look at people who use repl talk. Imagine they have nothing else to do in their life except check repl talk for comments. How would their routine go?
- Wait for someone to make a comment
- Look at the comment
- Based on the comment, decide what to reply/comment (or if to reply at all)
This little cycle is the premise of the actor-message model. In our scenario, the repl-talkians are the actors and the comments are the messages.
Curta is based around this system because the real world is very much like this — things happen (messages), which should be responded to by our program (actors). We can represent the above example in Curta like so:
Yes, it's that simple. If you're intrigued by this idea, then I encourage you to check out the tutorial on CurtaCode by clicking the "What's this?" button!
CurtaCode features custom syntax highlighting using a regular old HTML textarea! It works by placing a div behind the textarea and using that div to highlight. This is the only part of the codebase that was not written entirely from scratch — I got some snippets (but modified them for my own purposes) from here. However, I did not use a library,
unlike the other submissions!
It also features a smooth UI with a cool, crisp dark theme.
Try CurtaCode in fullscreen!
I hope you enjoy! If you have any questions please comment!
@TysonBoring By "this syntax", do you mean:
- The syntax highlighting? If so, that's largely preference, I like this theme but others may not.
- The syntax itself? If so, I'm not sure why you find it horrendous. It's very Lua-like and uses words instead of symbols to make it more readable. The only symbol used is
|, which is used due to its connotation as the unix pipe.
If this comment doesn't cover what you mean, could you elaborate?