# What constitutes a “free” language for cops and robbers?

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:

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

# 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.

• I appreciate the irony of the last sentence. – geokavel Dec 28 '15 at 16:44

# 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.

• This has my upvote (but it's my answer, so I can't vote, duh) – cat Dec 26 '15 at 23:20
• 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. – Dennis Dec 27 '15 at 2:45
• 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. – Dennis Dec 27 '15 at 3:16
• @Dennis inconsistency noted and fixed, thanks – cat Dec 27 '15 at 3:27
• 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? – flawr Dec 27 '15 at 9:44
• @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 – cat Dec 27 '15 at 14:04
• @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. – cat Dec 27 '15 at 14:06
• Windows Batch should also works in the modern.ie virtual machines. – jimmy23013 Dec 28 '15 at 3:40
• @jimmy23013 is Edge available on Mac and Linux? – cat Dec 28 '15 at 4:00
• @cat Scroll down and click Virtual Machines, which has free Windows virtual machines (with limitations) for Windows, Linux and Mac. – jimmy23013 Dec 28 '15 at 4:05

# 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.

• 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. – Dennis Dec 31 '15 at 20:16
• @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. – PleaseStand Dec 31 '15 at 23:34

# 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.)

• 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. – mınxomaτ Dec 27 '15 at 14:49

# 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."

• 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. – Alex A. Dec 27 '15 at 3:24
• @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. – cat Dec 27 '15 at 3:26
• "we can't expect a robber to enter a legal or moral grey area...". Wait, aren't they supposed to be robbers?? :-) – Luis Mendo Dec 28 '15 at 22:12
• @LuisMendo point taken ;) – cat Dec 28 '15 at 22:50