Skip to content
Sign upLog in
← Back to Community

Programming Language Jam -- Let the hacking begin!

Profile icon
amasadHacker

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 Repl.it 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 Repl.it 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 Repl.it supports natively and fully. We know Repl.it 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 Repl.it, 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 Repl.it 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 ProgLangDesign.net

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!

image

Comments
hotnewtop
Profile icon
Lone-Wolf

Just wondering, if I've finished my demo, how do I submit it??

Edit: Where can I go to submit it??? Link?

Profile icon
Lone-Wolf

WHEN WILL THE WINNERS BE ANNOUNCED?!?!?!?

Profile icon
DmitryPonyatov

Two books on FP language implementation:
PLAI: https://www.plai.org
PAPL: https://papl.cs.brown.edu/2020/

Profile icon
chrisaycock

Thanks for hosting this hackathon! I will be adding a much-needed feature to my own language, Empirical.

You can run Empirical on repl.it right now. I'll be documenting my progress on this GitHub issue and updating the repl.it image regularly.

Profile icon
mamcx

@chrisaycock
Oh great to see this here! Empirical is close in spirit to my own lang, so is great to see that the idea of better langs for data is not that crazy!

Profile icon
DynamicSquid

@chrisaycock
wait, you can work off of preexisting languages?

Profile icon
chrisaycock

@DynamicSquid
From the FAQ on the original blog post:

Can I remix or improve on an existing language?

Yes, as long as you're adding original ideas and putting an effort to meaningfully change or improve the language
Profile icon
HyperOfficial

rip i would enter, and i tried but i suck at coding and my C++ C, C# and RUBY suck and the only thing im okay at is Python so oof

Profile icon
mamcx

We are close to the deadline and exist some doubts about what can be accepted? Which is expected to show or work?

Profile icon
generationXcode

I already made my language in python... After the jam, if people like it, I would want to shift it to julia

Profile icon
Benramin

Can I use a programming language to create a programming language
(can I use python to create my entry?)

Profile icon
MocaCDeveloper

@Benramin
Ok. Good question.
Yes, you are going to need another programming language to create your own programming language.
No, I would not use Python to even consider attempting to creating a functional programming language.
Python is a high-end programming language, garbage collected and is slow in-and-of itself.
Using Python to make your programming language will not be the best choice because then not only does the Python compiler compile for your language, but your language will be twice as slower than the compilation of Python and your language will fully depend on the compilation and error checking that Python is doing, not only this but you will have no control on how your language acts, just the keywords and the syntax

Using C, however, would be the way to go!

Profile icon
DungeonMaster00

@targetfanttthat
@Benramin
Pythjon isnt that good, for an intepreted language, that is.

Python is acceptable with a compiled language because the bytecode/machine code usually runs really fast. The compile time wouldn't be that fast, but most people care less about the compile time, and more about the run time.

But D is better than C due to it's amazing features.

Profile icon
DungeonMaster00

@nk1rwc
There is a great series of tutorials on language creation. If you want to know the parts in making one.

Profile icon
MocaCDeveloper

@nk1rwc
We all have opinions. To me C is better, to you D is better.
And, if you are writing the programming language source code you should kinda care about the compile time.
But, Python has horrible runtime as well. I have watched many youtube videos talking about all of the fundamental ideals about Python that everyone should know and nearly everyone of those videos stated that the compilation time as well as the runtime isn't the best and is often times counted as being slow

Profile icon
DungeonMaster00

@targetfanttthat
python is intepreted

Profile icon
DungeonMaster00

@nk1rwc
not compiled

Profile icon
MocaCDeveloper

@nk1rwc
Which is why it is not the best language to use when it comes to creating a new programming language.

Profile icon
DungeonMaster00

@targetfanttthat
you are kinda right about that part

Profile icon
MocaCDeveloper

@nk1rwc
C is a compiled programming language which is why it's runtime and compilation speed is quite fast. Not only is Python slow due to the fact it is interpreted, but it is also Garbage Collected and you do not have much Low End capability, or features I guess you can say, that allow you to get hands-on with building a programming language.
Just the fact that Python is garbage collected is probably a big NO NO when it comes to programming a new programming language. You are going to want to have full access on how memory is being managed. You want to be in control, you wouldn't want your language depending on another language that is depending on it's compiler to allocate memory..

Profile icon
DynamicSquid
Profile icon
gibbsfreenergy

What has 'hacking' got to do with 'Language Jam'?

Profile icon
mkhoi

@JosephSanthosh
it's a cool way of saying 'coding'

Profile icon
gibbsfreenergy

@mkhoi
RIGHT

Profile icon
DmitryPonyatov

Is there some policy about my language promoting before the Jam ends? I don't think that judging will take the hype into account, but maybe it is prohibited in turn, or some special place exists out of general forum areas.

Profile icon
Leroy01010

you create a team and then go on admin controls

@DmitryPonyatov

Profile icon
DmitryPonyatov

@Leroy01010
On what question you are answering?

Profile icon
Leroy01010

don't worry i thought you asked a question

@DmitryPonyatov

Profile icon
k9chelsea2

noice

Profile icon
MocaCDeveloper

Would anyone want to join me and make a language with me in C?

Profile icon
7outofBLIP

@targetfanttthat
I'm down

Profile icon
MocaCDeveloper

@7outofBLIP
I am already making a programming language(CUA) with
@ImmaEatYouMan

But I am always down for doing a team project of any sort with anyone who wants to do one with me!

Profile icon
DynamicSquid

yay 🎉🎉🎉

Profile icon
HahaYes

@DynamicSquid
it a yay but SOMEONE cough cough
@amazingmech2148
WILL NOT JOIN US

Profile icon
DynamicSquid

@HahaYes
he'll probs show up later. but at least we have a good base to start from because we have night our skills

Profile icon
ChezCoder

@DynamicSquid
hi can i team with you if you are participating? i kinda want to improve my c++ and i know ur like a c++ god

Profile icon
DynamicSquid

@ChezCoder
that'd be great! but I'm already in a team now... you're going to have to ask
@AmazingMech2418
and
@HahaYes

Profile icon
HahaYes

@DynamicSquid
hmmmmm

Profile icon
DynamicSquid

@HahaYes
yo get on

Profile icon
HahaYes

brb it was like in the morning

Profile icon
DynamicSquid

@HahaYes
oh okay

Profile icon
dillonjoshua68

Sooo..... we have to make a programming language?

@DynamicSquid

Profile icon
firefish

@ChezCoder
How about C? C++ is just fancy C after all, and, er flex and bison cough EXIST

Profile icon
DynamicSquid

@dillonjoshua68
what else is there to make lol?

Profile icon
dillonjoshua68

I thought whoever makes the best program

@DynamicSquid

Profile icon
mamcx

Is possible to enable syntax highlighting for the custom langs?

Profile icon
conspicous

yes

@mamcx

Profile icon
HackermonDev

@Lethdev2019
how

Profile icon
conspicous

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

Profile icon
mamcx

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

Profile icon
conspicous

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: syntax=PURPLE+string[i]+WHITE stuff= stuff + syntax else: stuff= stuff + " " + string[i] print(stuff)

that is an example
view more colors here --> https://repl.it/talk/learn/ANSI-Escape-Codes-in-Python/22803


@mamcx

Profile icon
hyperupcall

@mamcx
one method is creating a language extension for vscode to add syntax highlighting. you can find some info about it here: https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide. 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: https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-custom-languages. the latter would probably be the best thing to do because iirc replit uses the monaco editor

Profile icon
DynamicSquid

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

Profile icon
conspicous

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

@DynamicSquid

Profile icon
conspicous

also i meant if you do it in console.

@DynamicSquid

Profile icon
DynamicSquid

@Lethdev2019
oh I see okay

Profile icon
DynamicSquid

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

Profile icon
conspicous

well, depends on it's use.

@DynamicSquid

Profile icon
DynamicSquid

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

Profile icon
conspicous

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