Programming Language Jam -- Let the hacking begin!
amasad (3267)

UPDATE: how to submit your project

Hello, jammers!

Excited to kick-off our inaugural Programming Language Jam. If you're just hearing about this, or need a refresher, then please visit the following links:

If you haven't signed up yet, or think someone else might be interested, it's not too late to do so now. We'll keep registration open for another week.

We're keeping the theme open-ended with the main criteria being "freshness" or new ideas. We won't be publicizing our complete judgment criteria because that would do the opposite of encouraging new ideas. The most important thing is that you get to a working prototype of an interesting language. Everything else is secondary.

If you want to compete but don't have a team, please visit our discord, we've set up a channel for you to meet others wanting a team-up.

If is missing native support for your favorite language or tooling. Then you have a few ways you can make it work:

  • You can open a shell terminal from your repl and use the tool directly because it might be already available on our base image (cmd/control+k and click "open shell")
  • You can configure the environment using the .replit file. See docs for details. See also how I made Haskell Cabal work in without native support.
  • If your dependency is not available on the base image, consider sending a PR to polygott, our open-source base image.
  • You can also simply download a binary on the container and run it directly. You can do that for languages and dependencies
  • On bash repls you can also use pkg-install to install dependencies that you otherwise would use apt-get to install

P.s. we're hiring a language hacker to help us make our language tooling better.

But the most straightforward thing to do would be to use a language that supports natively and fully. We know is not the most complete solution as we prize simplicity over completeness. We also don't expect you to build the most optimized or complete language for this jam. Focus on making a compelling prototype.

If you're bringing your existing language and for some reason, it doesn't run on, consider adapting your language ideas to a new, perhaps simpler prototype. After the jam, we'll let you take those ideas back to your language.

Ultimately, this jam is about having fun and getting more hobbyists interested in programming language design. We don't intend to use any of the languages you produce in production, nor does this have any immediate business value for us beyond promoting our platform as a fun place to code.

We'll do our best to answer questions, merge pull requests, and provide assistance. It's worth noting though that the core team is very small and busy at this time of year as we prepare to serve our education customers in the fall semester. However, our community is incredibly helpful. Feel free to post questions on this forum, or ask for help on our discord. Also, check out other programming language communities like

At some point towards the middle of the jam, we'll release instructions and guidelines on how to make your submission.

Happy hacking and we're excited to see what you build!

You are viewing a single comment. View All
mamcx (11)

Is possible to enable syntax highlighting for the custom langs?

Lethdev2019 (197)

you could use an IDE, it is the IDE which does that job, eg, you could build an electron shell for it.
in terminal, you could split the string into words and check for keywords and edit the split strings to their color codes by appending to the start with their color and the reset escape code at the end for each item in the resulting list from this method. then you just put it back together... BUT DON'T USE INPUT, i suggest using something like the getkey module. @PDanielY

mamcx (11)

@Lethdev2019 Ouch, this is very hacky. Is no possible to supply a file with the colors rules, like is done for editors?

Lethdev2019 (197)

you just need lists for the definitions eg

PURPLE = "\033[0;35m"
WHITE= "\u001b[37m"
sytax1 = ["print", "in"]
string = "print 'hi'" 
string = string.split()
# splits up into ["print", "'hi'"]
stuff = ""
for i in range(len(string)):
  if string[i] in sytax1:
     stuff= stuff + syntax
    stuff= stuff + " " + string[i]


that is an example
view more colors here -->

eankeen (1951)

@mamcx one method is creating a language extension for vscode to add syntax highlighting. you can find some info about it here: naturally, that would only work with vscode. if, for example, you are showing the language in the browser with the monaco text editor, they support this: the latter would probably be the best thing to do because iirc replit uses the monaco editor

DynamicSquid (4566)

@Lethdev2019 wait, but aren't we getting the user input from a file? how are you going to code in the console?

Lethdev2019 (197)

actually, true, but it does not mean you can't build an IDE (I am). @DynamicSquid

Lethdev2019 (197)

also i meant if you do it in console. @DynamicSquid

DynamicSquid (4566)

@Lethdev2019 oh yeah, I meant how are you going to get user input from the console? like isn't the best way to do it from a file?

Lethdev2019 (197)

well, depends on it's use. @DynamicSquid

DynamicSquid (4566)

@Lethdev2019 but how to you tell when the code finishes?

Lethdev2019 (197)

dude, when you can input commands again, you will know it is done. cmd.exe does it, so does python.

files could use a print statement. @DynamicSquid

DynamicSquid (4566)

@Lethdev2019 oh yeah I guess. I was thinking of like one line inputs

Lethdev2019 (197)

well, you cannot mimic the command line input as it usually is:

file/path $
C:\windows\cmd.exe >

firefish (937)

@DynamicSquid Well, on Unix-like systems, (therefore MinGW, and You can do this: ./myREPL < ./mySourceToMyRepl