18
\$\begingroup\$

Having started writing my own golfing language, I noticed there is no tips page for launching a new language.

Having seen how many languages have been made by this community, I wondered what advice the community has for launching a new golfing languages, and what pitfalls to avoid while doing so.

\$\endgroup\$
  • 3
    \$\begingroup\$ Apologies if this is a bit obvious, but are you asking about how to make a language or how to get everyone to know about it (i.e. designing it or marketing/releasing it?) \$\endgroup\$ – HyperNeutrino Mar 1 '18 at 1:08
  • \$\begingroup\$ I had originally meant the latter, but your answer for the former was very helpful, so I may change to that \$\endgroup\$ – jrtapsell Mar 1 '18 at 9:04
  • \$\begingroup\$ @jrtapsell I feel like the former wouldn't be on-topic for this meta. The latter, though, is more like "how to make PPCG know of my language", so it's more on-topic. \$\endgroup\$ – Erik the Outgolfer Mar 1 '18 at 18:20
22
\$\begingroup\$

Welcome to the weird and wonderful world of esolang creation! I think it's a very fun meta-game part of PPCG to make new languages, and it's one that I enjoy a lot. I'm certainly not an expert on the topic, but I have made two languages before. Here are some tips I'd give you. Keep in mind that all of these are optional:

Mention it in The Nineteenth Byte

People in TNB love learning new languages. Mentioning it there is very likely to get at least a couple of people interested in it.

Put it on Try It Online

TIO is a website hosting online interpreters for practical and esoteric languages, generously hosted by our moderator Dennis. At the time of writing this, there are nearly 500 different languages hosted on TIO, and adding yours is surprisingly easy. To have your language added, ping @Dennis in The TIO chat room, and he will tell you what you'll need to do. From there, you can now use your language online at tio.run/#<your-language>

You may also prefer to host your own online interpreter, for example, if your interpreter is in Javascript. This is perfectly valid too. Make sure to include a permalink feature, so that you can link people to a particular code snippet.

Make some docs

The most fun part of writing a new language is seeing other people use and enjoy it. It's very satisfying to know your language is enjoyed by people other than you. But they'll need a way to learn it.

Presumably, your code is hosted on Github, or something similar. Github has a wiki feature, which is ideal for posting language documentation. What exactly your docs will have is entirely up to you, but most people will generally do some combination of the following:

  • Specifications
  • A tutorial for beginners
  • A full list of commands
  • Some useful examples in your language
  • How to run your interpreter

You can also include docs in the directory of the project itself. Personally, I prefer wikis, but either way is perfectly fine.

Make a chat room

A lot of esolangs can be hard to learn. So it's really nice to have a place where you can talk directly to the expert on the language. Chat rooms are perfect for this. It's also perfectly fine to talk about your language in The Nineteenth Byte, but sometimes talking about one language too long can dominate the conversation. (If lots of people are interested)

Your mileage may vary on this tip. I have two language chat rooms. One of them is constantly frozen and has no one there wanting to talk. The other is usually somewhat active every week, and will have people talking in there with or without me. In order to avoid making a new dead room, it might be wise to wait and see how often people want to talk about your language.

Answer noteworthy questions in your language

Here are some examples of very famous questions that are a catalog of how to do the task in may different languages:

These have the added benefit of being fairly simple tasks that help you get a hang of how to use your language.

You can answer more than these challenges too! The more challenges you answer, the greater the chance of getting people interested.


Those are the main ones. Here are some extra things you can do:

Make a question

A question is a great way to show off how to golf in your language, and to share your knowledge with the community so that they can learn how to golf in your language as well. If your lucky, sometimes you'll even be blown away by the users of your language, and learn something you didn't even know of yourself!

Nominate your language for Language of the Month

Language of the Month is a new contest started by DLosc, intended to bring awareness of obscure languages to the community. If you can get enough people interested in learning your language, you might get to have it featured for a month, which will bring it to way more people. Disclaimer: If your language is seen as a cheap derivative, or as not creative, it might end up being downvoted. This option mostly depends on how original/interesting your language is

Make some bounties for your language

Nothing gets people motivated to learn a new language like rep does! We have a meta post for endless bounties, which is where people offer some of their own reputation to see particularly difficult tasks completed. If you come up with a task in your language (e.g. outgolf me, do X in < Y bytes, Do particularly hard task, write a quine, etc.), you can incentivize people to learn your language by offering up your own rep.

Make an Esolangs Wiki entry

The esolangs wiki is a site that PPCG loves a lot. Basically, it's like wikipedia but for esoteric programming languages. If you include your language here, there's a greater chance of it being discovered by people outside of PPCG.

\$\endgroup\$
  • 1
    \$\begingroup\$ Another thing you can do: if your language involves some interesting concepts that lend themselves to it might be to post a challenge related to your language. This might be checking its syntax, interpreting a subset of the language (or all of it for simple languages) or implementing a specific feature it has. \$\endgroup\$ – Martin Ender Mar 2 '18 at 0:36
  • 3
    \$\begingroup\$ I'd like to say that while I think the tips question idea is good, I think waiting a while for the language to settle and gain some other users (as Dennis/Lynn did with Jelly) may be more beneficial. At least waiting until you have some tips yourself that likely won't be obsoleted with updates seems like a good idea. \$\endgroup\$ – FryAmTheEggman Mar 2 '18 at 19:59
  • 2
    \$\begingroup\$ One more thing about Language of the Month: it's been suggested, and I agree, that a language should be (relatively) stable before being nominated for LotM. So I would add "wait until the main feature set stabilizes" to the LotM caveats. \$\endgroup\$ – DLosc Mar 10 '18 at 21:04
3
\$\begingroup\$

Prepare a very short description of the language's features and goals, no more than a few sentences. Give some non-trivial examples with a hint for what they do as a comment. Say how your language is different from the myriad of already existing langauges and why anyone should pay attention to it. Name it something googlable.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .