118
\$\begingroup\$

Every other month someone expresses their (negative) feelings about golfing languages.

Here is how this usually goes: they complain that they don't enjoy golfing in the languages they know because some language specifically built for golfing (which looks like gibberish and which they can't read) outgolfs them by 80%. They optionally suggest banning golfing languages or allowing challenge authors to ban them. The community's response is that they should view challenges as a separate competition in each language, that there is no objective definition of "golfing language" (e.g. that J and APL would ruin the fun for them just as much) and that this has been discussed many times. Depending on the constructiveness of the question, it's either heavily up- or downvoted, but then either answered with the same arguments as usual or closed as a duplicate of the 5th-to-top meta question.

Yes, there isn't much of a point in writing the same kind of answer to every of these questions, but closing them as a duplicate probably doesn't make the author feel like their concerns are being taken seriously. We're probably losing more of these users than we're retaining.

While it's easy for us to shrug off these questions with the usual arguments, the reality is some people are not enjoying themselves in this community even though they might really want to do some golfing in their favourite "normal" language. And I think that's really unfortunate, because golfing in Python or Java, say, can still be a ton of fun completely independently of whether someone has posted a 15-byte solution that looks like a collision between a head and a keyboard to the layman.

Golfing languages aren't going anywhere, and they provide a very interesting metagame many users in this community enjoy. And the users of this community are actually doing great work in this area — GolfScript seems verbose and clumsy in comparison with the "modern" golfing languages some of us have created. Hence, we need to find a way to accommodate people who don't want to participate with golfing languages despite the fact that they'll never "win".

So: How can can we deal constructively with these concerns in the future? How can we ensure that users feel welcome if they have trouble enjoying themselves next to the large number of answers we get in golfing languages?

\$\endgroup\$
  • 13
    \$\begingroup\$ I won't make a full answer myself for this right now, but one thing I'd like to suggest is moving from: "We've been through this. Dupe hammer." to: "This has been discussed many times and unfortunately I don't see this leading to any new discussion. Therefore, I'm voting to close this as a duplicate, but I strongly encourage you to join us in chat where we can have a constructive discussion about your concerns." (Convincing someone that golfing is enjoyable with and without golfing languages is probably easier in chat than in a quickly escalating comment debate.) \$\endgroup\$ – Martin Ender Sep 21 '16 at 19:28
  • \$\begingroup\$ So just to clarify, the question is not "How can we keep golfing in 'normal languages' fun for those who dislike golfing languages" but "How can we handle these concerns in a more welcoming way", right? \$\endgroup\$ – DJMcMayhem Sep 21 '16 at 19:48
  • 1
    \$\begingroup\$ Personally when I create a question I already know someone is going to use a golfing language to get a low score and I think that's pretty cool. As far as I'm concerned there are no "winners" in challenges. The fun and interesting part about this site is how to manipulate constructs of a language to get a low bytecount, but as has been said before comparing two languages is apples and oranges a lot of the time. The "Accepted Answer" should just be the poster's favorite if one is even selected at all. The bytecount should speak for itself as it relates to other answers in the same language. \$\endgroup\$ – Poke Sep 21 '16 at 19:50
  • 2
    \$\begingroup\$ @DJMcMayhem A solution to the former would be absolutely valid here (because it would solve the latter as well, and it would even be the preferable solution), but if we come to the conclusion that there is no way preempt these concerns in the future, then figuring out a way to deal with them in a welcoming and constructive way would still be good. \$\endgroup\$ – Martin Ender Sep 21 '16 at 19:52
  • 3
    \$\begingroup\$ Well, I think we already have a solution to the former. When I read through the "J and GS suck all the fun..." post, it seems like most of the complaints were A) A lack of votes on non-golfing languages and B) A lack of participation on non-golfing languages. I wasn't on this site 5 years ago, but it seems like we have a lot more of that now than we did back then. It's pretty typical for a non-golfing language that uses a clever trick to be the top answer. That's probably not the entire solution, but it's a good chunk of it. \$\endgroup\$ – DJMcMayhem Sep 21 '16 at 19:57
  • 2
    \$\begingroup\$ @tuskiomi I really don't think we're asking the same question here. You're trying to separate golfing languages from non-golfing languages. I'm asking for a way to create an environment where everyone can happily golf alongside any other languages. \$\endgroup\$ – Martin Ender Sep 21 '16 at 20:36
  • \$\begingroup\$ I suppose, but I was asking "How should we go about allowing non-golfing languages in golf challenges? ". In some ways, My question is an answer to your question. \$\endgroup\$ – user56309 Sep 21 '16 at 20:38
  • \$\begingroup\$ Most PPCG challenges just go for shortest code; even if the code is only short because the author of the answer is also the author of the language and can add an operation that suits the problem at hand. And anyone who asks a question and bans golfing languages risks downvotes; I guess that´s why nobody does it. Allowing to accept two answers (one for eso, one for non-eso) might provide a solution. But idk if the software can easily be modified to that. \$\endgroup\$ – Titus Sep 21 '16 at 22:21
  • 5
    \$\begingroup\$ @Titus Adding an operation to your language to answer a posted question is already banned. For shady-looking answers that I suspect of doing this, I usually check recent commits to verify and downvote/comment if appropriate. \$\endgroup\$ – Geobits Sep 21 '16 at 23:34
  • 2
    \$\begingroup\$ Very original, the way you started this post xD \$\endgroup\$ – Sanchises Sep 22 '16 at 12:27
  • 1
    \$\begingroup\$ @sanchises Ah, if I had known that I wouldn't have had to bother finding all of them myself... :P \$\endgroup\$ – Martin Ender Sep 22 '16 at 12:53
  • 2
    \$\begingroup\$ "a collision between a head and a keyboard to the layman" made me chuckle heartily. I'm new here, and Golfing languages didn't quite dissuade me, rather they intrigued me. I think reduced golf languages like Python -> Pyth, MatLab -> MATL and the like should also have to post an implementation in the parent language as well. This would give a bit more context to the solution, either that or they should be required to explain their solution (and most do). Beyond that I doubt there's much ya can do... \$\endgroup\$ – Magic Octopus Urn Sep 23 '16 at 16:37
  • 5
    \$\begingroup\$ If anyone has any doubts that golfing languages do simply get more upvotes than regular languages. I have a SEDE query showing that golfing languages tend to consistently around double the upvotes of a non-golfing lang (e.g. JavaScript). The raw average score also shows this discrepancy \$\endgroup\$ – Downgoat Sep 26 '16 at 23:37
  • 4
    \$\begingroup\$ @aross If someone refuses to fix their invalid answer, it's perfectly fine to cast a custom flag on it so that a moderator can have a look and delete it if necessary. \$\endgroup\$ – Martin Ender Sep 28 '16 at 8:11
  • 1
    \$\begingroup\$ I guess an answer would be " who do we want here?". Do we want people who throw their toys out of the pram because someone knows a language that they don't? Should the site be changed for people who don't agree with what it is about? I don't know. Please see my answer for my thoughts as a relative newbie on this topic. \$\endgroup\$ – ElPedro Oct 13 '16 at 21:45

14 Answers 14

197
\$\begingroup\$

Stop upvoting trivial solutions

It's easy to imagine why a new user would be frustrated when the highest-voted answer is a 3-byte solution in a golfing language with a built-in that nearly solves the problem. It feels like no matter how hard they golf in a conventional language, their solution will get much less recognition than an answer rushed out in the first five minutes. They feel like the goalposts have been moved.

It's all nice to say that it's a competition in each language, but the golfing language solution is on top with huge score, and theirs is not. And for the questions in HNQ that outside users see most, there are sometimes a bunch of similar golfing language solutions on top, and any new answer might languish on the second page.

This needs to stop.

Be discerning with your votes. Don't upvote answers just for being really short. Don't upvote them for already having a lot of votes. Upvote them for being well-golfed, for doing something clever, for using language features in an imaginative way. View all the submissions, not just the top couple, and don't be afraid to be the first upvote.

Now, I suspect I'm talking to the wrong audience here. I suspect the culprits are new-ish users who haven't absorbed that terse solutions that look gibberish are par for the course in golfing languages. I imagine they think the poster is the most amazing golfer ever for making such a magically short and strange solution. Or, they are amazed by the language and so upvote every solution in it.

I should add that highly-voted trivial solutions happen in conventional language too. These should not be upvoted so much. And, that terse golfing solutions can be the result of clever use of language features, not just use-the-obvious-built-in. These should be upvoted. I advocate voting for the solution, not the language. Its just that golfing languages have lots of powerful built-ins, so are more likely to allow a trivial solution.

\$\endgroup\$
  • 45
    \$\begingroup\$ I think there's also something the answerers can do here: one thing people using "normal" languages underestimate is the importance of an explanation. I believe part of the reason why answers in golfing languages get more upvotes is because they tend to have more thorough explanations. With mainstream languages people very often seem think "eh, this is Python, everyone can read it", but that's not necessarily true for golfed code (or in general... not everyone knows every mainstream language). If people put more effort into the presentation of these answers they'd also get more votes I think. \$\endgroup\$ – Martin Ender Sep 21 '16 at 22:13
  • 54
    \$\begingroup\$ It's really disheartening to see answers that contain nothing more than a built-in (golfing language, Mathematica, whatever) getting much more upvotes than your own answer you spent hours on. I realized long ago that sorting answers by popularity doesn't really make sense on PPCG and started sorting them by activity instead. \$\endgroup\$ – Dennis Sep 22 '16 at 3:36
  • 13
    \$\begingroup\$ I would add, in particular don't upvote trivial ports. It's not always clear when an answer is a port and when it's independently derived, but when you have ten answers which are identical apart from language then no matter how clever the common algorithmic trick it doesn't deserve ten upvotes. \$\endgroup\$ – Peter Taylor Sep 22 '16 at 7:48
  • 1
    \$\begingroup\$ This is by far the best solution. I like using golfing languages when they alleviate the need to implement cumbersome things in your answer had you used a "normal" language (like type casts for example). I don't like using golfing languages because they have the 2-bytes built-in that solves the challenge, especially when said built-in is completely useless in the general case. \$\endgroup\$ – Fatalize Sep 22 '16 at 9:06
  • 22
    \$\begingroup\$ I couldn't agree more. I learned MATL out of pure interest in programming in a a stack-based language. Then, I posted a fairly trivial 4-byte solution, which became my most-upvoted answer ever - which to me more feels like a big middle finger towards all my other answers than any recognition of actual skill. \$\endgroup\$ – Sanchises Sep 22 '16 at 12:43
  • \$\begingroup\$ Perhaps an idea to promote better voting: meta.codegolf.stackexchange.com/a/10138/32352 \$\endgroup\$ – Sanchises Sep 22 '16 at 13:05
  • 6
    \$\begingroup\$ @sanchises, that is in part a result of the "trivial questions hit Hot Network Questions and interesting ones don't" effect. My joint-third-highest answer on main is a primality test in CJam. Other answers which took hours to write languish 40 upvotes behind. We can try to promote a culture of upvoting golfing effort rather than shortness, but to some extent we have to accept that people are free to vote on whatever criteria they want. \$\endgroup\$ – Peter Taylor Sep 22 '16 at 16:12
  • 1
    \$\begingroup\$ Athough an sympathetic answer, it sort of defies the entire code-golf intention. From the tag info: "... If source code length is not a primary scoring criterion, consider using another tag instead." \$\endgroup\$ – agtoever Sep 24 '16 at 10:56
  • 4
    \$\begingroup\$ @agtoever "Scoring" and "voting" are different things, though. I believe the concern here is votes, which affect ranking on the page, and not score, which determines the "winner." \$\endgroup\$ – Jordan Sep 25 '16 at 18:16
  • 2
    \$\begingroup\$ Of note: there is a badge that encourages upvoting answers judiciously. Electorate requires that 25% of your votes be on questions, which means you only get 2-4 answer upvotes per question. You'll never achieve this badge if you upvote every 3-byte golflang answer. Save your votes for answers that are well-explained and took some effort to write. \$\endgroup\$ – DLosc Oct 5 '16 at 5:08
  • 1
    \$\begingroup\$ @MartinEnder I've experimented lately with giving no explanation on some of my Python answers, and don't see any clear pattern in terms of votes. \$\endgroup\$ – xnor Nov 13 '16 at 0:05
  • \$\begingroup\$ @xnor I've noticed, I didn't know you did it intentionally. I really like your answers, but you haven't received any votes from me on any of those posts. Not much when you get +30 on an answer, but still quite a bit when you sum up all the answers I haven't voted on. \$\endgroup\$ – Stewie Griffin May 2 '17 at 17:35
  • \$\begingroup\$ Note that golfing languages do sometimes have non-trivial solutions to questions and they should also be upvoted. Trouble is, it's hard to decide whether a solution in a golfing language is trivial or not if you don't know it. \$\endgroup\$ – MilkyWay90 Mar 22 at 23:09
54
\$\begingroup\$

What SE could do for us...

One of the most popular suggestions from "We're not a Q&A site, but what should be done about it?" is to add software support for answer metadata (mainly scores and languages). I believe this slightly different answer format would greatly reduce the impression that being the overall winner is important. Things this would make possible:

  • Built-in language-oriented leaderboards (like anarchy golf has).
  • Generating site-wide language rankings (also like anarchy). While this would consistently put golfing languages over mainstream languages, the benefit of such a ranking would be that people can find out which languages they can reasonably compare themselves with (trying to beat someone with a language that is slightly better at golfing than yours can be a great motivator and reward if you manage it; it's just being upset when you can't beat Pyth with Python that isn't helping anyone).
  • Allowing people to search reliably for answers in their language or maybe even challenges that weren't answered in their language yet.
  • Heck, if someone really hates golfing languages and can't stop getting worked up about them, it would even be possible to ignore answers in certain languages just like you can currently ignore challenges with certain tags.

I know that SE making changes like this to the software is a lot to hope for, but I think especially in the context of the current discussion, this could be a huge improvement for this community and help attracting and retaining users who want to golf in mainstream languages, so if people agree with this, it might good to show SE just how much we really want this feature. And I'm being told the community managers are currently reviewing that list for feasibility and importance of the requests, so I figured now would be a good time to bring this up again.

\$\endgroup\$
  • 12
    \$\begingroup\$ It would be nice to have a "sort by language" function so I can compare my code with the others of same language. Sometimes I have to search in many pages of answers to find 3 spare lines of code. I'm new to PPCG and I partecipate because I'm learning new things and because it's fun, I don't even watch at esoteric languages because I'm interested only in what I can read and learn to use later in real life situations. I like more clever, elegant and creative solutions than 4 unreadable bytes answers. I think this should be encouraged not much the shortness for it's own sake. \$\endgroup\$ – Mario Sep 25 '16 at 21:02
  • 1
    \$\begingroup\$ I heard there are userscripts, specifically used in places where the SE team is too lazy to implement a feature. Maybe you can "make a call" for a particular userscript on Meta. Or maybe someone who knows how to write them would just publish it (on Meta too). \$\endgroup\$ – anatolyg Dec 21 '16 at 14:22
  • 1
    \$\begingroup\$ @anatolyg I think the problem isn't having leaderboards and stuff, but consistent metadata. \$\endgroup\$ – Martin Ender Dec 21 '16 at 14:50
30
\$\begingroup\$

Stop accepting trivial solutions

Don't give the green checkmark to the shortest solution when it's shortest by being in a golfing language with the right built-ins. Doing so pins it to the top regardless of votes as the first answer people see. Many users will look no further and upvote only it, which is bad.

Marking such a solution as accepted conveys to outsiders that golfing languages are the real way to win, and nobody else is actually competing. Why try hard to golf when some boring answer will win and you stand no chance? One can say the green check mark is just a formality to denote the objective winning criterion, but everywhere on SE it marks the best answer (most useful, most correct), so that's how people interpret it.

If you don't accept any answer in this situation, nobody will notice or complain. See also the suggestion to remove the accept feature.

\$\endgroup\$
  • 39
    \$\begingroup\$ Alternatively, don't ever accept an answer at all. \$\endgroup\$ – Martin Ender Sep 22 '16 at 17:50
  • 5
    \$\begingroup\$ Choosing the "golfing language with the right builtins" has some value. The person who answers needs to know several languages and choose the best one for the task. It's not always "bah, with that language it's so easy". Sometimes it only seems easy given that choice of language \$\endgroup\$ – Luis Mendo Sep 29 '16 at 17:23
28
\$\begingroup\$

As someone who doesn't use golfing languages, I can sympathise to a degree with the users left burnt by golfing langs.

You spend time solving a problem in a popular language, post your solution, and wait for the upvotes to start rolling in. Only they don't. You scroll up and see a confusing mess of arrows and punctuation marks with 12 upvotes beside it! That solution only has 19 characters, whereas your solution is a solid 129 chars. Surely your solution should have more upvotes, because it took more effort, right?

Well, no. Characters don't represent the amount of effort someone puts into a solution. (or Java programmers would be very well paid)

They say "beauty is in the eye of the beholder", and it's true, what's worth an upvote to you is different to others. Whether or not you can find beholders for your beautiful creation is the dilemma.

I worry that golfing langs are PPCG's punching bag for new users. Hard to understand, outranking your answers, multitudes less characters.

The reason I don't use golfing langs is genuinely because I don't understand or know any. It's easy for me to take my frustration and complaints out on them, because I don't understand them.

If I knew one, or any, I would probably have more respect for the effort and beauty of the golfing lang creations. I, like these users, am not a beholder of golfing lang beauty.

For me, my complaints against golfing langs would probably go away if I could understand them. Their barrier to entry is a high hurdle to scale, and I would imagine tension would be reduced significantly if it was easier to scale. In some sense, this kind of culture seems to unintentionally tell people they don't belong and they're not good enough for your "club".

On the other hand, segregating golfing langs from non-golfing langs is very condescending to people who use golfing langs. Why are their languages supposedly unacceptable in a challenge? Segregation is a horrible solution to a problem that only exists out of anger.

It's easy to suggest not using them, or to vote for non-golfing langs, but influencing human nature, especially voting culture, rarely ever works. Even if you firefight with a tactic like meta-organised rewarding non-golfing languages, there's always going to be spot fires of annoyed users wanting to vent in the cases you don't catch.

If you're not posting in an advance because there's going to a golf-lang solution that beats yours, then you have only yourself to blame. Additionally, if your enjoyment is determined by how many upvotes you get on your answers, then you're posting for the wrong reason.

\$\endgroup\$
  • 4
    \$\begingroup\$ The "barrier" thing is half the reason I want to make a "golflang assembler". The other half is to ease golfers already using them. Now it seems I should start building it sooner. What do you think, would that help? \$\endgroup\$ – busukxuan Sep 22 '16 at 9:46
  • \$\begingroup\$ @busukxuan I think part of the huge barrier to entry with golfing languages is the same as other esolangs - having to work with programming paradigms that you may not be used to with "traditional" languages. For example, a lot of golfing languages are stack-based. Having to get used to thinking in terms of a stack rather than variables/registers can be quite the hurdle. \$\endgroup\$ – Mego Sep 22 '16 at 11:05
  • 2
    \$\begingroup\$ @Mego I actually think of that as a good thing for my brain, but indeed some people don't like that. Anyway there's a choice of paradigm. We have procedural, functional, array, and even logic paradigms. \$\endgroup\$ – busukxuan Sep 22 '16 at 11:15
  • 1
    \$\begingroup\$ @busukxuan The thing is, most of the languages like Pyth or whatever could be made more verbose and still have the same language structure. Suddenly any user could read it, and shortening your programs is still the same thought process. It just depends whether you're all about brevity, or if you value the golfing process more than the result. \$\endgroup\$ – mbomb007 Sep 22 '16 at 19:20
  • 1
    \$\begingroup\$ @mbomb007 But IMHO golfing languages are more than just about how short the function names can be. Their range of built-in functions mean that there are more ways to achieve an end, wild being limited to one byte per semantic unit(except literals) means that the built-ins are limited in number so that they don't make almost every challenge become trivial like Mathematica does to most mathematically or scientifically related challenges. You also don't have to worry about the length of the functions' name, which is more about general-clever than programming-clever. What do you think? \$\endgroup\$ – busukxuan Sep 23 '16 at 4:37
  • \$\begingroup\$ @busukxuan No, I think readability is a great concern. If other users can read it, then they can golf in it. \$\endgroup\$ – mbomb007 Sep 23 '16 at 13:41
  • \$\begingroup\$ @mbomb007 That's why I was thinking about the assembler. I was thinking about indentation ect. that can clarify structure in addition to more memorable function names. \$\endgroup\$ – busukxuan Sep 23 '16 at 13:44
  • \$\begingroup\$ @busukxuan If I built a golfing language I would give every operator a long, memorable (and tab-completable) name that could be mechanically replaced with its one-or-two-byte equivalent once the program is complete. It bewilders me (as someone who admittedly never attempted it) that most golfing languages aren't implemented like this. \$\endgroup\$ – Jordan Sep 25 '16 at 18:46
  • \$\begingroup\$ @Jordan Again, that's why I'm gonna make an assembler that does the exact same thing. Anyway that will have to wait, I don't even have time to spend on SE these few days. \$\endgroup\$ – busukxuan Sep 26 '16 at 5:25
  • \$\begingroup\$ Honestly, I've been thinking about a language that's very verbose, maybe even more verbose than Java. The point is not to get the lowest byte-count, but to find potential for golfing. I feel like this would allow me to ignore the "best" solutions and think about how I, personally, would solve a problem. \$\endgroup\$ – Esolanging Fruit Nov 10 '16 at 2:41
  • \$\begingroup\$ +1 For the Java comment \$\endgroup\$ – programmer5000 Mar 31 '17 at 19:25
26
\$\begingroup\$

De-emphasize

And concentrate on other challenges, tricks and hacks with the code where golfing languages are less advantaged. Make PPCG more about Programming Puzzles than about Code Golf.

\$\endgroup\$
  • 2
    \$\begingroup\$ I partly agree on that. For a year now, the only frequented tag I've seen is code-golf. I have not seen any other tag be in that list. \$\endgroup\$ – Erik the Outgolfer Sep 29 '16 at 13:10
  • \$\begingroup\$ Now that popularity-contest is mostly dead, code-golf is even more dominant. There are still plenty of other winning criteria, though. \$\endgroup\$ – lirtosiast Feb 2 at 1:57
  • \$\begingroup\$ "mostly dead" means "evil moderators close off everything" or "users show no interest in answering such questions"? Many of my favourite past questions are tagged popularity-contest. \$\endgroup\$ – Vi. Feb 3 at 12:18
  • \$\begingroup\$ Or it is just a general decline of the site, with "generate this OEIS sequence in minimal bytes" being the last man standing? \$\endgroup\$ – Vi. Feb 3 at 12:21
18
\$\begingroup\$

Bigger, broader challenges expecting some dependencies

Not just converting some short input to short output.

For example, interfacing with a machine learning framework probably works better with regular languages than with golfing ones.

\$\endgroup\$
14
\$\begingroup\$

Challenges with Catalogs

I think my proposal isn't really supported by the StackExchange website structure.

If we could somehow have groups of answers separated by language, that would be pretty cool. We've manually done this before by creating a catalog of answers. This is done in the Hello World challenge, for example.

I thought this was a pretty neat format for a question and it could solve the issue as this could be opt-in by the poster.

\$\endgroup\$
  • 4
    \$\begingroup\$ It's one of those things where I think it would really help if we had software support for it. All the leaderboard snippets in the world will only do so much when the green checkmark is still saying "we have a winner!" (Case in point, the second-highest voted of those complaining question was actually triggered by the 0-byte Struck answer on the Hello World challenge.) \$\endgroup\$ – Martin Ender Sep 21 '16 at 20:07
  • \$\begingroup\$ @MartinEnder I completely agree. Is there a way for us to disable the ability to accept an answer? I doubt it since this wouldn't make sense for other SE sites. This still leaves the issue that answers are sorted by votes or by recency which may still confuse people. I'm not sure how to get around that because even with a catalog you're still going to have languages that start with the letter "A" showing up first... \$\endgroup\$ – Poke Sep 21 '16 at 21:21
  • 3
    \$\begingroup\$ I've been advocating the removal of the accept feature as part of our graduation but it's a very controversial suggestion. However, this combined with language and score meta data on answers (so that leaderboards and per-language overviews could be generated by the software) would probably go a long way towards reducing the impression that the overall winner is so important. \$\endgroup\$ – Martin Ender Sep 21 '16 at 21:25
  • \$\begingroup\$ It may take away the impression that the overall winner is important but I think it would also encourage people to make many submissions in different languages. Maybe solution writers would have a score derived from their positions in the leader boards for the different languages used. \$\endgroup\$ – Poke Sep 21 '16 at 21:32
  • 6
    \$\begingroup\$ That is basically what anarchy golf does and I think it's working quite well. \$\endgroup\$ – Martin Ender Sep 21 '16 at 21:34
13
\$\begingroup\$

For me I joined because it is fun. I spend all day writing readable code and sometimes it's nice to write something just because I can. I have no problems with golfing languages. The shortest code wins. Thats the rules most times. If I get an upvote for my Java/Python/Lotus Notes answer because I have done something smart that someone else thinks is cool then that's good enough for me. If someone beats my byte count with Jelly/GolfScript/AnyOtherGolfLang then respect to them for being able to do it. They get an upvote from me. I like this community. Let's not start taking it too seriously.

\$\endgroup\$
  • 2
    \$\begingroup\$ This is the best answer, imo. People shouldn't be put off because someone got a shorter byte count in a language designed for brevity. This is purely recreational, and we're all here to have fun. \$\endgroup\$ – Mego Oct 13 '16 at 23:17
  • 2
    \$\begingroup\$ @Mego - If they are put off by it should they really be here in the first place? Maybe they have accidentally wandered onto the wrong site. I spent 3 months watchig, "listening" and learning before I made a post. Perhaps one option could be a 1 month mandatory read-only period for new member so there is no excuse for not accepting how things work before they post and also no excuse for complaining afterwards because they don't win every time. \$\endgroup\$ – ElPedro Oct 14 '16 at 14:03
  • 3
    \$\begingroup\$ @ElPedro That's (in response to your comment) a pretty high barrier to entry. That's likely going to end up pushing a lot of potential new users away. It also isn't conducive to existing members inviting friends. \$\endgroup\$ – Poke Oct 25 '16 at 14:43
  • 1
    \$\begingroup\$ @Poke I take your point and maybe it did come across as a bit harsh. It wasn't meant to be and was just a suggestion as to how people may become educated about what the site is about and then make an informed decision about whether they want to compete against golf languages or not. To be honest, I'm not totally convinced that the problem is as big as it is being made out to be. I certainly see plenty of answers (including my own) which are never going to "win" because they are in a more verbose language. \$\endgroup\$ – ElPedro Oct 25 '16 at 15:01
10
\$\begingroup\$

Make an alternative leaderboard

Add a new section in the leaderboard snippet showing languages by categories, such as:

  • Widely used languages
  • New trending languages
  • Obscure serious languages
  • Golfing languages
  • Special purpose languages
  • Difficult, recreational or joke languages

The purpose is not to declare multiple winners, but to make the answers in a specific category easier to find. So I don't think we should make an exact definition about what is a golfing language.

People who knows only production languages may find it annoying when the first 5 answers are all in golfing languages. But if the first answers are in APL, Regex, Mathematica or Haskel... Well, it's slightly better.

\$\endgroup\$
  • 6
    \$\begingroup\$ I think there would be some debate over whether language X is obscure-serious or special-purpose,new-trending or widely-used, etc. \$\endgroup\$ – Linus Sep 24 '16 at 4:22
  • 1
    \$\begingroup\$ @Linus For example Perl 6, which I would consider to be a “New” (first release 2015-12-25). While others might consider it “Obscure”, “Difficult”, or if they don't know what they are talking about “Golfing” or “Joke”. (My answers are usually within spitting distance of the shortest non-golfing language, but is also sometimes shorter than golfing languages.) \$\endgroup\$ – Brad Gilbert b2gills Jun 17 '18 at 17:41
8
\$\begingroup\$

Use Human-Readable Encodings to Present Solutions

One of my favorite languages to use here is PostScript, which while not a true golfing language, has the ability to represent most of its operators using two-byte binary tokens, in addition to its more verbose text encoding. Whenever I answer in PostScript, I take full advantage of the tokenized encoding to save on bytes, but always first present the program using the text encoding.

TI-Basic is another language affected by this - all of its commands are each a single "character", but most display as multiple characters.

Even in languages not affected by this, it is a common practice (although not universal) to present the un-golfed, neatly formatted solution code in the answer along side the compacted version.

I would suggest that golfing languages ought to take a similar approach, and define human-readable encodings or representations for themselves, and then use these encodings preferentially when first presenting a solution. The solution can still present its encoded form later in the answer, and report its score based on the encoded form. However this would make it easier for new (and even experienced) users to understand and even get in to using golfing languages.

\$\endgroup\$
  • 2
    \$\begingroup\$ This is sort-of what some of us do when we add a commented version of our code. Doing it more formally would run into some issues with ambiguity, because golfing languages often reduce their length by using the same one-char token to mean very different things in different contexts. I suppose you could make mod, map, and splitRemoveEmpty all be aliases of % in CJamExplained, but then you also get the occasionally really tricky program which executes the same code block in different contexts so that the same character of source takes more than one of those meanings. \$\endgroup\$ – Peter Taylor Apr 3 '17 at 7:42
  • 2
    \$\begingroup\$ Also I think there's a tension between wanting the first code block to be the human-readable one (and I understand why you propose that) and wanting it to be the userscript-readable one (for backwards compatibility with existing userscripts which assume that the first code block is the answer and the rest are explanation). \$\endgroup\$ – Peter Taylor Apr 3 '17 at 7:45
1
\$\begingroup\$

By not using them

I believe that a high density of golf lang answers presents a face deeply unattractive to (some) outsiders, by showing a high degree of insularity. My own, however small contribution to mitigating this problem is to refrain from using golfing languages.

I have sometimes been tempted to start writing answers in golfing languages. It can be fun to have the lowest overall byte count. I know I would enjoy golfing in these languages as I do in others, and have even learned some to crack answers for challenges. But I remember the reason above, and for this reason I don't use them.

\$\endgroup\$
  • 8
    \$\begingroup\$ This doesn't seem like a practical solution for those who do enjoy using them... \$\endgroup\$ – Martin Ender Sep 21 '16 at 21:41
  • \$\begingroup\$ @MartinEnder I never claimed that anyone should be banned from using certain languages or that this is a global solution to the problem. For those who don't feel compelled to use golf langs, this is my suggestion for how to help. \$\endgroup\$ – feersum Sep 21 '16 at 21:45
  • 7
    \$\begingroup\$ My point is that those who don't enjoy using them will be following your suggestion already anyway and those who do enjoy them won't stop using them. \$\endgroup\$ – Martin Ender Sep 21 '16 at 21:49
  • \$\begingroup\$ I think there's people in the middle. I'm one. I'd enjoy using golfing languages, yet mostly refrain because it seems bad for the site. \$\endgroup\$ – xnor Sep 21 '16 at 21:55
  • \$\begingroup\$ @MartinEnder Your point is simply not true, as xnor has pointed out. I have expanded my answer to clarify. \$\endgroup\$ – feersum Sep 21 '16 at 22:07
  • 12
    \$\begingroup\$ This answer is unlikely to gain mass appeal, but there's a nugget of truth here that would be naive to overlook. A big reason people feel "unwelcome" is that most top rep users use esolangs on basically all new code golfs. That sends a really strong message, whether it's intentional or not. You can preach all day about how "it's a competition per language" or whatever (and I truly agree with that, and have said it myself), but it's still a looming shadow. I get plenty of votes from my Java golfs (more than I deserve imo), but even I get discouraged by it from time to time. \$\endgroup\$ – Geobits Sep 21 '16 at 23:46
  • 5
    \$\begingroup\$ It's really hard to say "just use python or whatever, it's still fun" while you're using something explicitly designed to be better than python at it. \$\endgroup\$ – Geobits Sep 21 '16 at 23:47
  • \$\begingroup\$ @Geobits As a counterpoint: a lot of those top rep users use languages they either created themselves or contributed to developing (Dennis/Lynn -> Jelly, Martin -> Retina, Luis -> MATL, aditsu -> CJam, etc.). If you created/contributed heavily to a language, of course you're going to use it! \$\endgroup\$ – Mego Sep 25 '16 at 8:51
  • 1
    \$\begingroup\$ @Mego Sure, and I understand that. But I'm not sure that makes it less intimidating to new users, or sound any less strange. "Golfing in python is fun, just go for it! Meanwhile, I'm going to use this other language I made to win." Sure, a lot of people understand, but I don't think those are the people this post is really targeting. \$\endgroup\$ – Geobits Sep 26 '16 at 7:41
  • \$\begingroup\$ @Geobits Though that may be the appearance that some new users might get, that's certainly not why people use those languages - us language creators use our own languages because we like them. Winning is a nice bonus when it happens. \$\endgroup\$ – Mego Sep 26 '16 at 7:56
  • 1
    \$\begingroup\$ @Mego Agreed. That's what I said in my original comment. That it sends a message, intentional or not. I get that people use their own (or other) languages for decent reasons. I'm just saying it's naive to think it won't appear that way to some, and that it's not at least related to the "unwelcome" feeling that the post is about. \$\endgroup\$ – Geobits Sep 26 '16 at 8:00
  • 1
    \$\begingroup\$ @Geobits Martin, Lynn, and I also regularly post in production languages. I've posted ~150 Python answers, ~100 Julia answers, and another 100+ answers in other production languages. It is still fun. \$\endgroup\$ – Dennis Sep 27 '16 at 4:05
-12
\$\begingroup\$

Make a handicapped codegolf tag

Let me begin by stating that I really recognize the problem addressed here and I think it's really something that should be "fixed" one way or another.

In this PPCG question this issue is addressed and the one and only answer gives a very reasonable option for introducing a handicap system by adjusting the bytecount of an answer based on the used language:

      / n - B \
      | ----- |
      \   V   /
n = e

With: n = bytecount, B = Boilerplate, V = Verbosity.

My solution is to introduce a new tag code-golf-handicapped, which applies the handicap function with (community accepted parameters). Answers should be given like this:

Language (length: n, handicapped: c)

This solution leaves the liberty of the poster to use code-golf or code-golf-handicapped.

Explanation of the handicap system and the parameters for all known languages should be maintained by the site moderators in a meta-post.

\$\endgroup\$
  • 8
    \$\begingroup\$ For a start, I don't think a model like this is going to be fair. There will still be a language that defies classification by two simple parameters and will then have an advantage over other languages. I don't think that the lack of comparability between languages is problem we should or even can fix. Instead we should probably focus on not giving the impression that the overall winner matters but emphasising golfing for the sake of getting everything out of your language of choice. Introducing a handicap system is only going to strengthen the impression that golfing languages are unfair. \$\endgroup\$ – Martin Ender Sep 24 '16 at 9:48
  • 4
    \$\begingroup\$ In addition to what @MartinEnder said, maintaining a catalog of all known languages on PPCG would be extremely time-consuming, considering there are literally hundreds of programming languages. Also, if you wanted to use a new language, you'd have to put it through a cataloging system first so it could receive parameters for this equation. Finally, this kind of system could alienate new users by forcing them to learn even more before jumping in. \$\endgroup\$ – DanTheMan Sep 25 '16 at 6:04
-13
\$\begingroup\$

Forbid the use of a leaderboard snippet which sorts all answers by byte count

A leaderboard which lists all answers by byte count suggests that there is a competition between languages. If we don't want that, we should't use this kind of leaderboard.

\$\endgroup\$
  • 10
    \$\begingroup\$ I don't know about that. As I said here, finding languages with comparable scores can be a great motivator. Trying to beat C# with Java or Perl with Ruby is good fun. The real problem is when people are disheartened when Pyth beats their Python solution by 80%. I wouldn't really want to take away this friendly competition between languages of a similar "weight class". \$\endgroup\$ – Martin Ender Sep 26 '16 at 20:33
  • 2
    \$\begingroup\$ The Leaderboard is supposed to make looking for answers easier. If you want another sorting, change the sorting. Simple as that. \$\endgroup\$ – Erik the Outgolfer Sep 29 '16 at 13:12
  • \$\begingroup\$ @MartinEnder I know I'm really late to this discussion, but how plausible would it be to integrate formal weight classes into a leaderboard snippet? Even if it's just broad categories like "golfing language", "REPL language", and "compiled language", it'd give a way to quickly see how a solution stacks up against the ones it has a chance against. \$\endgroup\$ – Ray Nov 2 '17 at 18:17
-16
\$\begingroup\$

Make a Restricted-Code-Golf tag.

It seems that by dividing these challenges up into separate categories. Like many other competitive games, there are many categories of the same game (Olympic swimming, MOBAs, MTG, and poker to name a few examples). These categories have different rules, but are more or less the same exact thing. The code golf community would not be hurt by separating the challenges into
Code-Golf-Restricted
and
Code-Golf-Unrestricted
challenge tags.
Heck, it may even encourage diversity and splash some popularity over to the others that we currently rarely see today.

\$\endgroup\$
  • 4
    \$\begingroup\$ I still don't think it's possible to objectively determine which languages should be disallowed on one of them, and I actually think this would only exacerbate the problem of the bad image golfing languages have with people who are not familiar with the community. (Plus, this would lead to loads of challenges being posted restricted and unrestricted, and then all the "normal languages" would have their answers posted in two places?) \$\endgroup\$ – Martin Ender Sep 21 '16 at 20:33
  • \$\begingroup\$ @MartinEnder It's very possible. We take a vote. Like we do with moderators^. And if the solutions are being posted 2 different times with the exact same source, one of the questions should probably be closed as a duplicate.... \$\endgroup\$ – user56309 Sep 21 '16 at 20:36
  • 1
    \$\begingroup\$ Idk if the idea leads anywhere ... but if tags, why not "eso-only" and "none-eso-only"? \$\endgroup\$ – Titus Sep 21 '16 at 22:25

You must log in to answer this question.

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