Skip to content
← Back to Community
[Jam Submission] CurtaCode — Your All-In-One IDE for the Curta systems programming language!
Profile icon
fuzzyastrocat

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; end proc COMMENT_MSG content do /- decide what to do about the content -/ end

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

Screen Shot 2020-11-26 at 9.26.01 AM

Screen Shot 2020-11-26 at 9.26.15 AM

Try CurtaCode in fullscreen!

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

Voters
Profile icon
madison2
Profile icon
chillcafe
Profile icon
mkhoi
Profile icon
Bookie0
Profile icon
Pizzaz4me
Profile icon
DynamicSquid
Profile icon
Squirrel777
Profile icon
ironblockhd
Profile icon
badst
Profile icon
RayhanADev
Comments
hotnewtop
Profile icon
Kookiez

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

Profile icon
fuzzyastrocat

@Kookiez Lol thanks, good luck to you too!

Profile icon
RayhanADev

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

Profile icon
fuzzyastrocat

@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

Profile icon
RayhanADev

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

Profile icon
fuzzyastrocat

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

Profile icon
RayhanADev

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

Profile icon
fuzzyastrocat

@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

Profile icon
RayhanADev
Profile icon
Battledash2

The "compile" button is a liar... Isn't it technically "transpiling" :)

Profile icon
fuzzyastrocat

@Battledash2 This is where the terminology gets fuzzy. What I'm used to is compiler meaning "output a target of C or lower" — some may define it to mean "output a target of assembly or lower", in which case this would be a transpiler.

Profile icon
TysonBoring

This syntax is horrendous.

Profile icon
fuzzyastrocat

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

Profile icon
TysonBoring

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

Profile icon
fuzzyastrocat

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

Profile icon
Battledash2

Not trying to be a mini-mod, but please, be respectful. Say why so they can improve. Don't be jerk* @TysonBoring

Profile icon
Bookie0

Also is it normal I can’t see what I’m typing? (I was just on iPad for a sec)
F961054B-DE0C-474C-B111-BAEE0CBA2F5D

Profile icon
fuzzyastrocat

@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.)

Profile icon
Bookie0

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

Profile icon
Bookie0

‘Repl talkians’ — lol nice name, like martians xD!

Profile icon
fuzzyastrocat

@Bookie0 Thanks :)

Profile icon
Bookie0
Profile icon
JBloves27
Profile icon
HahaYes

Very cool

Profile icon
fuzzyastrocat

@HahaYes Thank you

Profile icon
HahaYes

@fuzzyastrocat hahayes indeed

Profile icon
fuzzyastrocat

@HahaYes (no comment needed, the ping name says enough)

Profile icon
realTronsi

Very nice, what is Curta being compiled into?

Profile icon
fuzzyastrocat

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

Profile icon
TsunamiOrSumth

rip self confidence :D
gj tho, gl to you

Profile icon
fuzzyastrocat

@TsunamiOrSumth Lol thanks, same to you!