PPCG.se - the past, quality, and now

Disclaimer: this post may ramble. I may make a part two, depending on what I get to cover.

PPCG.se is a curious site. It resides on the Stack Exchange platform, which traditionally contains Question and Answer sites. However, out of the subculture of code golf found on the early days of Stack Overflow, came PPCG.se—the somewhat misnamed "Programming Puzzles and Code Golf". This site has evolved and formalized over the years, and its appeal for some has changed. Constituents of this site include programmers by profession and by hobby, and even non-programmers who like the challenge of programming in esolangs. I am included in this number, and have for years enjoyed this platform. It is necessary at this point for me to describe my relation with this site and how I feel about it. In order to do this, I will describe some relevant background information.

What PPCG.se was, and what it is now

PPCG.se, at its incarnation, was devoted primarily to code golf and to programming puzzles of a different sort. In those days, such puzzles as "underhanded", "code trolling", and "popularity contest" were posited and welcomed. As time progressed, the former two challenge types were first discouraged and outright banned. Upon being banned, I'd imagine there were plenty of people who stopped participating in this site. After all, that which was left was "just" code golf. This still left a majority of the community intact, who enjoyed golfing. These people golfed in languages such as Ruby, Python, JavaScript, C, Java, PHP, Perl... the list goes on. Very earlier on, you mostly saw these languages (e.g. here). Time, once again, introduces change to this site, for after some time the growing popularity of dedicated "golfing languages" was evident.

Fast forward to nowadays.

The majority of challenges are trivial. All challenges cater to the strengths of golfing languages. Whether this is a result of golfing languages being versatile, or the community just preferring to sit brain dead, copying and pasting obscure UTF-8 characters, I do not know for certain. There are certainly versatile golfing languages, but there are also certain tasks that tend to be more verbose in these languages (e.g. input validation, parsing, etc.). I do suppose that without having to validate input or extract information from plaintext does make for getting at the "core" of a problem. However, it is sometimes logical to force a program to validate input. Most challenges today have a "you may assume the input is well-formatted". Any challenge with a "you must make sure the data is well-formatted, and do X if it's not" are often met with complaints and downvotes, mostly because "many" programs would look like if(well formatted) { program; } else { X; }. In this case, "many" encompasses languages that (a) do not have to this already, (b) languages that do not throw exceptions for malformed input, or (c) golfing languages which overload many behaviours, making the challenge's "not well-formatted" into something useful. But how bad is input validation? It may not be fun to write, but it surely is practical. Practicality, however, is not terribly relevant to a recreational golfing site.

This lax has not been a problem, and forms the appeal of the site for many people. However, I have noticed recently that there has been a stark decrease of quality in challenges and answers. I'm not referring to the challenges and answers by new people unacquainted with the convoluted system that is PPCG.se, but rather its active community members. One might wonder, what kind of "low quality" am I referring to? Imagine a challenge that asks one to print out 1000000000000000000000000000000000000000000000000000000000000000000000000000000. Answers might look like echo 10^78x or print("1"+"0"*78). A low quality answer would be something like print"1000000000000000000000000000000000000000000000000000000000000000000000000000000". Even if that solution is the shortest in that language, the answer does shockingly little effort.

As an example, I will use this challenge, which asks to print the following text:

0,01 0,02 0,05 0,10 0,20 0,50 1,00 2,00 5,00 10,00 20,00 50,00 100,00 200,00 500,00

There are three answers of varying degrees of low quality. I will present them in terms of least offense. They will only bear the answer content, but not the user who posted it. (They are all deleted.)

The consolation (low quality)

The poster provides two answers to the challenges: the shortest, being the trivial solution, and his own solution. I would not usually regard this approach as "low quality". After all, they put effort into the other answer, right? Wrong. The second answer is really just a text compression algorithm, that was no doubt generated with a program. Literally, two no-effort answers—for the price of one!

The "testing a language" (lower quality)

This poster has made a language, incapable of printing the text in less bytes than printing the literal text. That's fine for the language, but why bother posting such a boring and useless answer, besides promoting your language and getting those sweet, sweet internet points? Promoting one's language is bad, but doing it in such a trivial fashion tells me nothing about the language, and actually makes me want to use that language less.

The "for the lolz" (lowest quality)

I have few kind words for this answer. The language literally is about using a certain amount of #s equivalent to an ascii code point and outputting it, character by character. This is by far the lowest quality answer I have seen in recent memory. (Note, that I have seen.)

Conclusion

Part of me wishes to continue this, but part of me also wishes to stop. I may continue this rant/whatever later, but for now, this post will suffice. I fear for the future of this community.

Comments

Popular posts from this blog

Java programming is boring. So I made a monster.

Special moments in an AP Computer Science course