Share your repls and programming experiences

← Back to all posts
[Jam Submission] CurtaCode — Your All-In-One IDE for the Curta systems programming language!
fuzzyastrocat (1864)

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)
  • Repeat

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:

actor Repl_Talkian handles
  Comment as COMMENT_MSG;

proc COMMENT_MSG content do
  /- decide what to do about the content -/

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 itself

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.

UI Snapshots

Try CurtaCode in fullscreen!

I hope you enjoy! If you have any questions please comment!

Kookiez (400)

wow... this makes codeweb look easy...
anyways, good luck with the jam! :D

fuzzyastrocat (1864)

@Kookiez Lol thanks, good luck to you too!

RayhanADev (2514)

Hmm, seems everyone loves to make editors xD. Nice one, I love it!

fuzzyastrocat (1864)

@RayhanADev Lol yeah, I wasn't expecting so many editors... though I'm the only one who wrote the syntax highlighting and everything without a library

RayhanADev (2514)

@fuzzyastrocat hahahahah that’s true! Man I wish I had more time so I could actually submit mine, I was so close too..

fuzzyastrocat (1864)

@RayhanADev Well, it's auto-submitted so I guess you theoretically have a chance...

RayhanADev (2514)

@fuzzyastrocat lol RIP, let’s hope they didn’t find the bugs 🐛

fuzzyastrocat (1864)

@RayhanADev I found a bug!

lol RIP, let’s hope they didn’t find the bugs 🐛

EDIT: Blech, markdown ruined my joke, supposed to be an arrow pointing to the bug emoji

TysonBoring (17)

This syntax is horrendous.

fuzzyastrocat (1864)

@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?

TysonBoring (17)

@fuzzyastrocat By syntax I mean the words and symbols that constitute a given program.

fuzzyastrocat (1864)

@TysonBoring In that case, see bullet point two of my comment. If you have further thoughts please give them!

Bookie0 (6261)

Also is it normal I can’t see what I’m typing? (I was just on iPad for a sec)

fuzzyastrocat (1864)

@Bookie0 No, it's not. Check the browser console, there must be something unsupported on your browser. (Given it's safari, this is a very viable possibility.)

Bookie0 (6261)

Hum, yea I’m on safari prob why I’ll check back when I’m back on Mac :) @fuzzyastrocat

realTronsi (926)

Very nice, what is Curta being compiled into?

fuzzyastrocat (1864)

@realTronsi Thank you! It gets compiled into plain C, so that it can work on any AVR platform (with avr-gcc).

TsunamiOrSumth (545)

rip self confidence :D
gj tho, gl to you