30
\$\begingroup\$

Recently Isaac proposed that using non-free, i.e. pay-to-use, languages for cops and robbers challenges should be considered a standard loophole. As Dennis stated in a comment, there is some ambiguity in this. Namely, what constitutes "free enough" to be able to use?

Some languages have free trials, though once the trial period expires, the language is no longer available for use. Examples include Mathematica, Matlab, Stata, and LabVIEW.

Some languages are free to use but are only available for particular operating systems. Examples include AppleScript and Windows Batch.

TI-BASIC can be emulated, but it's illegal to do so unless you own a Texas Instruments TI-84+ calculator.

What should our standard be for allowing such languages for cops and robbers challenges? That is, where do we draw the line for "free"? Note that the goal here isn't to obtain a strict set of rules that will be applied blindly to all languages, but we should at least establish a few ground rules.

Please post one suggestion per answer so the community may vote on them individually.

Related posts:

\$\endgroup\$
2
  • \$\begingroup\$ It probably would be worth including this in the tag description of cops-and-robbers. \$\endgroup\$
    – flawr
    Commented Nov 13, 2016 at 19:07
  • \$\begingroup\$ It should be noted that Mathematica is now available completely free. lab.open.wolframcloud.com/app "Create a New Notebook" \$\endgroup\$
    – mbomb007
    Commented Nov 13, 2016 at 21:16

5 Answers 5

40
\$\begingroup\$

Free access may not be time-limited

For a language to count as free, there has to be a time-unlimited, cost-free way (that does not violate any laws or terms of service) to compile and/or interpret the language in question.

If a time-limited trial enables a robber to crack submissions in that language for only a month, there's no reason to outlaw paid languages at all.

We should not expect robbers to enter a legal or moral grey area to be able to participate in a PPCG challenge.

\$\endgroup\$
1
  • 44
    \$\begingroup\$ I appreciate the irony of the last sentence. \$\endgroup\$
    – geokavel
    Commented Dec 28, 2015 at 16:44
17
\$\begingroup\$

Platform-specific languages for which there are open source interpreters / compilers should be considered free

Example: BASIC-family languages

Rationale: If the BASIC dialect you're using has a free and open source implementation which implements all of the features your code uses, then it's acceptable. Otherwise, you either put an Apple IIe in everyone's house, or don't use a restrictive and inaccessible language for CnR.

Minecraft Redstone which also works in Javascript Redstone implementations, Excel Formulas which also work in OpenOffice and Windows Batch which also works in Wine would all fall under this rule: use features available in the OSS version, or don't use that language.

\$\endgroup\$
10
  • \$\begingroup\$ This has my upvote (but it's my answer, so I can't vote, duh) \$\endgroup\$
    – cat
    Commented Dec 26, 2015 at 23:20
  • \$\begingroup\$ You make good point for code golf competitions, but this is not what the loophole is about. Cops and Robbers is not about testing/trying something. In order to crack a submission, the robber needs access to the same environment the cop has. If a cop chooses a non-free BASIC flavor and his submission requires of a feature specific to that flavor, only robbers that use the same flavor will have a chance. \$\endgroup\$
    – Dennis Mod
    Commented Dec 27, 2015 at 2:45
  • 2
    \$\begingroup\$ Unless the cop knows for a fact that his answer can be cracked using Wine's batch interpreter, I don't see the difference between the different implementations of cmd and the different BASIC dialects. \$\endgroup\$
    – Dennis Mod
    Commented Dec 27, 2015 at 3:16
  • \$\begingroup\$ @Dennis inconsistency noted and fixed, thanks \$\endgroup\$
    – cat
    Commented Dec 27, 2015 at 3:27
  • \$\begingroup\$ Regarding the languages you are referring to: do all the commands (of the origininal implementation) behave exactly the same in both implementations? Or are there exceptions? \$\endgroup\$
    – flawr
    Commented Dec 27, 2015 at 9:44
  • 1
    \$\begingroup\$ @flawr As far as I know: almost everything implemented in Wine is accurate to yield the same behaviour without Wine as a whole being a complete replacement; Javascript Redstone implementations have all features of Redstone needed to make, say, a computer in the stuff, and as such can simulate all redstone-only creations; I use neither Excel nor OpenOffice but from my limited research it seems OpenOffice implements all or almost all commonly used formulaic methods found in Excel; and \$\endgroup\$
    – cat
    Commented Dec 27, 2015 at 14:04
  • \$\begingroup\$ @flawr there are very many BASIC-family languages and very many open source implementations, and all the implementations I've bothered to try (i.e, the ones here on PPCG) are quite exhaustive. \$\endgroup\$
    – cat
    Commented Dec 27, 2015 at 14:06
  • 2
    \$\begingroup\$ Windows Batch should also works in the modern.ie virtual machines. \$\endgroup\$
    – jimmy23013
    Commented Dec 28, 2015 at 3:40
  • 1
    \$\begingroup\$ @jimmy23013 is Edge available on Mac and Linux? \$\endgroup\$
    – cat
    Commented Dec 28, 2015 at 4:00
  • 1
    \$\begingroup\$ @cat Scroll down and click Virtual Machines, which has free Windows virtual machines (with limitations) for Windows, Linux and Mac. \$\endgroup\$
    – jimmy23013
    Commented Dec 28, 2015 at 4:05
17
\$\begingroup\$

Languages must be usable on hardware the robbers probably already have

Though this may change over time, any general-purpose desktop or laptop PC of average specifications made within the last eight years should be able to compile and run programs written in the language. If a language is usable only with...

  • very recent hardware
  • older or less common hardware
  • specialized or extremely high-end hardware
  • hardware from a particular manufacturer or supplier (e.g. Apple)

that language would probably not be acceptable.

Emulators (and other types of compatibility layers) may help a language meet this requirement, though only if they are "free" and make it possible to compile and run, at a reasonable speed, programs written in the language. Each of the emulators must not require any copyrighted ROM image or other software component that cannot be legally obtained or used by the general public, at no cost, in conjunction with the emulator.

In any case, a language is not usable on a particular computer if it would be necessary to install copyrighted software that cannot be legally obtained or used by the general public, at no cost, on that computer, such as OS X on a non-Apple-branded computer.

\$\endgroup\$
2
  • 2
    \$\begingroup\$ Macs have been PCs for 14 years now, but I don't think owning an Mac is probable. If something works only with Apple hardware, I wouldn't consider it free. \$\endgroup\$
    – Dennis Mod
    Commented Dec 31, 2015 at 20:16
  • \$\begingroup\$ @Dennis: It was certainly not my intent to suggest that owning a Mac is probable when OS X usage, according to gs.statcounter.com/#desktop-os-US-monthly-201511-201511-bar , is only ~17%. I have made some clarifications. \$\endgroup\$ Commented Dec 31, 2015 at 23:34
14
\$\begingroup\$

Languages for which there are free online interpreters should be considered Free

There is a ton of online interpreters available, see e.g. Where to find an online testing environment for specific programming languages? and they are usually sufficient for CnR challenges. I know that they are usually slower and sometimes do not have full coverage of all functionalities, but as the CnR submissions are generally short and do not rely on heavy computation this does not seem to be a problem, IF the submitter provides a link to an interpreter that executes your submission as expected.

A (not very good) example: I do write most of my submissions here in Matlab, but most "online Matlab interpreters" use Octave instead. But this has never been a problem for my submissions because there are only very few common functionalities of Matlab that are not available in Octave. (Actually the contrary is more frequent: You can shorten a lot of things in Octave that you cannot do in Matlab, e.g. a=b=1 or a+=3 e.t.c.) But as I said, this is a bad example, as Octave is freely available, and Matlab users can use Octave without any major problems. (I forgot to mention FreeMat and Scilab, which are other free alternative to Matlab, but I do not have any experience with those.)

\$\endgroup\$
1
  • 3
    \$\begingroup\$ When there is a link that executes the submission as expected an free, it is not a paid language. Only because some compilers/interpreters are paid doesn't make it a paid languages IMHO. \$\endgroup\$
    – user42643
    Commented Dec 27, 2015 at 14:49
7
\$\begingroup\$

Inherent platform specificity should be disallowed

That is, there will never, unequivocally ever be AppleScript runnable anywhere but Mac OSX, there will never ever be a (sufficiently full featured) Microsoft Visual Basic implementation for anything but Windows, and so forth, due (primarily) to copyright and IP "issues". Any such implementation would likely violate one or more US laws.

Though a robber may, at their own option, @Dennis points out that we can't "expect a robber to enter a legal or moral grey area to be able to participate in a PPCG challenge."

\$\endgroup\$
4
  • \$\begingroup\$ If I'm not mistaken, you can run Visual Basic for Applications on a Mac with Microsoft Office for Mac 2011. Granted, that isn't free. \$\endgroup\$
    – Alex A. Mod
    Commented Dec 27, 2015 at 3:24
  • 1
    \$\begingroup\$ @AlexA. not only is MSO far from free, but you only have access to the libraries supplied with MSO, and as such I think many VBA answers on this site would fail to function due to unimplemented features. \$\endgroup\$
    – cat
    Commented Dec 27, 2015 at 3:26
  • 6
    \$\begingroup\$ "we can't expect a robber to enter a legal or moral grey area...". Wait, aren't they supposed to be robbers?? :-) \$\endgroup\$
    – Luis Mendo
    Commented Dec 28, 2015 at 22:12
  • \$\begingroup\$ @LuisMendo point taken ;) \$\endgroup\$
    – cat
    Commented Dec 28, 2015 at 22:50

You must log in to answer this question.

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