7
\$\begingroup\$

There's a certain stigma against using languages designed for golfing in this community, and for good reason -- but I think it would be fun to turn the tables and make this form of "cheating" into a legitimate competition. This idea goes beyond the scope of a single question, so I'm posting it as its own question rather than in the Sandbox. Personally, I think it has great potential, but there are some issues that I need to iron out first, and I'd love to hear your feedback.

In the first "phase" of this challenge, users would create and post their own custom-built languages designed for golfing. The language can be as simple as a script that translates "golfed" text into an existing programming language and then executes that -- it needn't be too complex. The language itself would not need to be golfed, or fit any requirements other than that it must not depend on external resources for execution (i.e. no running code from an author-controlled server).

The goal here is to create the most general purpose, "jack-of-all-trades" golfing language possible, as the second phase of this challenge would involve these languages being pitted against one another in golfing challenges determined by a non-participating third party. The core idea here is that the golfing challenges are not revealed until after the users have created their languages. The language that consistently solves the given puzzles with the shortest source code is deemed the winner.

There are a few ways that this could be turned into an ongoing event. For example, users could be permitted to post their languages at any time, but they would only be allowed to enter challenges posted after their language was submitted. Also, perhaps anyone would be allowed to post a challenge, but they would not be allowed to participate in their own challenges. But this raises the issue of quality control (see below).

Some issues:

  • How would languages be submitted?

    • Let's say they're posted in a dedicated thread. Should that thread be on the main site or here on meta?
    • What happens if a user edits their language after a challenge has been posted? The challenge author would need to verify that submissions work with the language as it was originally posted.
  • Quality control for challenges?

    • The ideal scenario is a diverse set of challenges with requirements that are difficult to anticipate, but the community won't always be in agreement on this.
    • Only count challenges that reach a certain score threshold -- but scores can fluctuate over time, and this reduces incentive for early submissions. (What if your hard work goes for nothing because the question didn't get enough votes?)
    • Could be mitigated by having a select group of challenge authors, or possibly a new "sandbox" where ideas for challenges could be deemed official.
    • Basically, I definitely need feedback on this part.
  • How many people would actually put in the necessary effort in the first phase?

    • I did my best to make it sound as non-scary as possible in the second paragraph, but creating a custom "language" is still a daunting task.
    • Would you make up a language for this event? What would it take to get you to make one?
  • What should this be called?

    • I'll humor myself and assume you all love this idea enough to put it into action. What would be a good tag name for this idea?
    • Clearly the title of this thread is too verbose to be tweaked into a short and catchy name...

Feedback and criticism would be greatly appreciated. I've been bouncing this idea around in my head for weeks, and I think it's good enough to at least suggest by now.

\$\endgroup\$
  • \$\begingroup\$ ...And of course the site doesn't suggest Let's create some new types of challenges! until after I've submitted this post. I think I was a bit too verbose for that thread anyway. \$\endgroup\$ – Fraxtil May 20 '14 at 4:40
  • 6
    \$\begingroup\$ I disagree with your premise. There are some people who are anti-GS and anti-J, but as a GS user I don't feel stigmatised by the community. What is almost universally unpopular is using a homebrew language without supplying an interpreter or compiler. \$\endgroup\$ – Peter Taylor May 20 '14 at 7:08
  • 2
    \$\begingroup\$ Problem: we have a rule that a language must be older that the challenge it is used in, to prevent cheating or using a new language feature to get an unreasonable score. I suppose you could answer with "please do not consider this as a competing answer; it's just for fun," but then there's no need for this new challenge anyway. \$\endgroup\$ – Doorknob May 20 '14 at 11:49
  • \$\begingroup\$ Peter: I should have clarified that I meant golfing languages that aren't already well-established. And I thought J had nothing to do with golfing initially? \$\endgroup\$ – Fraxtil May 21 '14 at 2:11
  • \$\begingroup\$ @PeterTaylor is right: no interpreter, no language. \$\endgroup\$ – Paul Draper May 24 '14 at 23:33
  • \$\begingroup\$ @Doorknob Then there's the unfortunate problem of an unimplemented language that is older than the question (e.g. ncmnt). \$\endgroup\$ – cjfaure May 26 '14 at 9:34
7
\$\begingroup\$

I think that while this could be a good idea when polished, PPCG is a bad platform to host it.

Consider the short-lived PLT Games, which ran on a similar premise: invent programming languages that later get compared, in this case motivated by a monthly theme and judged on a small set of criteria. It really only took off for the first round, and quickly dwindled. which is probably because that first month's theme was "Turing Tarpit" and that's all that most people really wanted to do when it came to designing languages: make an esolang to get all their sillies out, and then get back to whatever they'd been working on before.

I think that a significant portion* of the participants in this kind of contest wouldn't be in it to try to design a good golflang, as much as just to have a chance to add something into Golfscript that they thought would be a (cool | powerful | character-saving) feature. A call-for-golflangs like this would just turn into a cacophony of CJams (no offense to aditsu) and similar Golfscript derivatives where people just rename, repurpose, and reoverload whatever they think might save them a character sometimes.

My point is that if this (the above) is the situation, it doesn't feel like it would fit into PPCG, either cluttering the site up with a style of challenge some will despise or entirely ignore (e.g. the late ?), or keeping to one spot but being very cramped and hard-to-follow, especially for anyone joining partway through the event and not being there from the start. Specs for languages that are different enough from existing languages to merit such a comprehensive contest would get very big and probably very technical, too; more suited for external pages or even wikis than Sandbox-like answers to a Sandbox-like question.

If the goal is to create the best golflang, it might be more worthwhile to set up a dedicated SE chatroom or even a completely separate forum for a group of interested people to test, debate, and implement each other's ideas, instead of hammering the peg into a StackExchange-shaped hole just because PPCG is already here.

A couple of old PPCG questions in a similar vein (An improved version of GolfScript, Language idea for golfing purposes) went over quite well, which I'd say was because the premise was simply to improve and contribute to a specific language idea.

* I'm thinking "most", but it could be as little as "some" or "a few" if I've overestimated, in which case the point isn't very relevant anymore. But regardless of how many people know how to sensibly participate, innovation isn't easy, and I still don't think there'd be an enormous berth of fresh golf ideas that are irreconcilable with all but one specific kind of language.

\$\endgroup\$
1
\$\begingroup\$

About 50% good

I have always thought creating and sharing programming languages was cool. And I had even found some on PPCG, but they were closed quickly. And I've also seen some comments against this idea, due to the fact everything will end up similar to a real language. Here's what I think:

How would languages be submitted?

They would be posted on a meta thread, under community wiki, because you can't really have 2 of these questions (maybe under Sandbox's user?) They would not necessarily be golfing languages, and they wouldn't need to be tested, which takes care of update problems.
You would provide some basic syntax (a "Hello, world!", math, variables, etc.) and the interpreter (as well as how to run and compile both programs and the interpreter.) Other people could suggest things to add to your language, try it out for themselves, etc. Maybe, someone will use another person's language in an answer (with credit, of course), and how awesome would that feel?

Quality control for challenges?

Not necessary. As I said, they wouldn't need to be tested. Quality of sumbissions, however, is based on if the language is a duplicate, stole/used ideas without credit, how functional it is, and this is mainly decided by the community.

How many people would actually put in the necessary effort in the first phase?

Well, for one, me! And anyone who has ever created a custom language (of which I have seen a few), or wants to make one. If we can get a developer to implement this under Sandbox's user, all new submissions would be posted in chat, meaning the word is definitely spread. This would also be a place to post your language, so maybe the site gets some extra traffic, which always helps.

What should this be called?

My idea? (I'm open to suggestions on this point.) 'Sandbox for Community-Designed Languages'. Yeah, it's a bit lengthy, but it sums up the point.

Overall

Designing languages might work, but restricting them to golfing and having one person use them in challenges (or even worse, everyone doing it, and other people choosing bad fits for certain languages to win) will not. This could be a really cool idea, but for it to work, it has to be able to appeal to a lot of people.

If anyone has an idea on how this could be better, please feel free to suggest or edit.

\$\endgroup\$

You must log in to answer this question.

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