proglangdesign.net

The /r/ProgrammingLanguages Discord

This page is a rules & information reference for members of the r/PLs Discord. If you’re finding this page from the web and would like to check it out, click this link to join.

Feel free to check out the rest of the community as well.

Rules

We are a community dedicated to furthering programming language design and implementation. We value constructive, healthy, inclusive discussions and ask that you abide by the following rules to help us keep this space friendly and welcoming:

  1. Keep our community safe. To ensure that this remains a safe and inclusive space for everyone to participate, we will not tolerate:
    • Harassment, including insults, threats, rudeness, doxing, trolling, personal attacks, discrimination and sexualized attention.
    • Adult content, including NSFW/NSFL or content with sexual undertones.
  2. Keep the focus on programming languages. To avoid disrupting or blocking discussion:
    • Avoid extensive off-topic chat: If you find yourself going far off-topic, bring it back to programming languages.
    • Avoid noise: Don’t shitpost, spam, or post unwanted promotional material. You are allowed to link other Discord servers if it makes sense in the discussion. Relevant job postings should be posted on the careers channel.
  3. Keep our community kind: There are a lot of people here with a wide range of backgrounds and levels of experience.
    • Support others: If you would like to share your experience, do so supportively.
    • Avoid: * Insulting * Harassing * Trolling * Flaming * Bad taste jokes * Language bashing * Zealotry
    • Be nuanced: tradeoffs exist in language design! Express your opinions without minimizing others’ opinions, and avoid framing your own opinions and preferences as fact, for example by saying “X is the best“, “Y is terrible” or “X is better than Y” without explaining why you think this.
    • Avoid:
      • Pushing opinions as facts
      • Being overly forceful with opinions

Contact options

Please reach out if you feel hurt, attacked, offended, or witness something that could reasonably be considered offensive in the server. The mods would rather be notified too often than not often enough. We’d also love to hear your thoughts, suggestions, and feedback!

Enforcement

Moderators have ultimate discretion over interpretation of events and interpretation and enforcement of the rules on a case-by-case nature. Not knowing the rules is not an excuse, and attempts to work around these rules through pushing boundaries runs the risk of a permanent ban.

The Members List

Channel Overview

Info

General

PLT&D

This is the main section of our Discord, for discussing programming language theory and design. You’ll find channels devoted to every step of developing a programming language here, and a #pltd-general plt&d chat. Feel free to ask there if you don’t think any of the other channels will fit your topic better.

#beginners and #beginners-theory are intended to be the place to go for folks new to PLT&D or related theory respectively. The moderators are going to be extra strict on moderation there - it’s supposed to be a welcoming place where someone without proglangs knowledge can ask how to get started and get help with their proglang journey, and being unwelcoming there is… unwelcome.

Voice Channels

Go here to have an audio chat with other people! If you can’t talk, or want to share a link relevant to what you’re discussing, #voice-text is there as a supplemental text chat for the voice channels.

It’s also possible to share your screen in those channels, if you’d like to stream your development.

Project Channels

Members of our community may get a channel for their project in the Projects category.

How can I get a channel for my project?

You can get a channel for a project if:

Before you get a channel, I would recommend that:

When you are ready to get your channel, just go ahead and ping the @Mods in #meta. We will create your channel and give you a role for your project, and the @Language Developers role if your project is a programming language.

What can I do with my channel?

You are given full moderator permissions over your channel, including the ability to:

You may also ask the @Mods to give other project members your project’s role.

It is your channel and you can do what you like with it as long as you abide by the server rules.

If your project has its own Discord server, you may link to it, but you should not create a channel if you only intend to use it to direct people to your server.

Git webhooks

You have permission in your channel to configure a webhook to recieve GitHub and GitLab notifications in your channel. Here’s a gist that describes how to do it.

The purpose of the webhook is get server members involved in the discussion of your project. To reduce noise, you must not enable star, fork, or commit notifications, because those sorts of messages produce lots of noise while rarely leading to discussion.

I would recommend no more than these hooks:

Including your project on the website

If your project is reasonably mature and has a good landing page (e.g. a website or detailed README), I encourage you to go ahead and showcase your work on the website’s projects list!

You may simply open up a pull request to do this. The Discord moderators do not need to be involved.

Project emoji

If you include your project’s square icon in PNG or SVG format with a colored or transparent background, we will add it as an emoji.

Project bots

If you make a Discord bot, like an interpreter for your language, we will add it to your channel, although you will have to find somewhere to host it yourself. I highly encourage you to do this because language bots are awesome and we need more of them.

Currently our server has bots for #aardvark, #calc=, and #volpe.

Inactive project channels

  1. After three months of inactivity, channels are automatically moved to the “Inactive Projects” category.
  2. After three months in the inactive projects category, moderators will attempt to contact the owner of the channel.
  3. If the channel’s owner does not request for the channel’s life to be extended (e.g. for when the developer needs to be on hiatus for more than 6 months), the channel’s contents will be downloaded as a text file (not including e.g. file attachments), and that file will then be uploaded to #archive.

You may remove your project from the “Inactive Projects” category at any time by sending a message to the channel. If you are planning on going on a (temporary) hiatus, you may voluntarily put your channel into the “Inactive Projects” category using the !archive command. If you are planning on quitting your project permanently, please notify a moderator so that we may archive your channel. Finally, as you have full permissions over your channel, you may delete your channel (without backup!) at any time.

Thanks to Timon Passlick for the bot which automates the inactive projects list.