8
\$\begingroup\$

In a recent meta thread the issue of "running locally" was brought up. The main issue is, as best I can put it, "Should we allow submissions in a language that cannot be run locally?"

To be more specific, I am talking about languages which require an Internet connection to meet our definition of a language (the two tests being addition and primality testing). I am not talking about languages which 1) could be run locally, even though the most convenient interpreter is online, or 2) use data which could be stored locally, but usually isn't.

| |
\$\endgroup\$
  • \$\begingroup\$ Consideration: What's the difference between "runs arbitrary CJam code by pulling from TryItOnline" and "runs arbitrary MyAmazingGistGolfingLanguage by pulling from a gist URL and calling eval()"? They both send some network request, which basically goes through a "black box" (i.e. the internet), and print out the result, so... \$\endgroup\$ – Doorknob Feb 11 '16 at 20:33
  • \$\begingroup\$ @Doorknob The request for TryItOnline will always be the same though, except for language updates. We don't control the contents of TryItOnline outputs, neither could we, but a Gist you have full write access is different to. \$\endgroup\$ – Addison Crump Feb 11 '16 at 20:37
  • \$\begingroup\$ @VoteToClose No, I'm talking about a language in which the source code is a URL and the "interpreter" pulls from the URL and eval()s the response. Could even be abused with URL shorteners and stuff. What's the difference between this and scraping TIO? \$\endgroup\$ – Doorknob Feb 11 '16 at 20:40
  • \$\begingroup\$ @Doorknob I don't control TIO. I control Gist. I gain an unfair advantage from controlling the source, but if the language has a 3rd party which is not biased to advantage you in any way, then it's absolutely fine. \$\endgroup\$ – Addison Crump Feb 11 '16 at 20:41
  • \$\begingroup\$ Food for thought: is there really such a thing as a language that actually could not be run locally? Even the chatbot from the linked thread could be, I would think, by starting a local web server hosting the SE chat system. \$\endgroup\$ – David Z Feb 12 '16 at 19:05
  • \$\begingroup\$ @DavidZ Theoretically yes, if a piece of software was created that could only run on a single computer (requiring stuff like processor serial number to match), which hosted a web interface for an interpreter. \$\endgroup\$ – Mego Feb 13 '16 at 1:07
  • \$\begingroup\$ @Mego but in that case one could create an alternate interpreter (or compiler, etc) without the processor serial number check, which would be able to run anywhere. So the language itself would not be limited to that computer. \$\endgroup\$ – David Z Feb 14 '16 at 1:17
18
\$\begingroup\$

Online interpreters should be treated the same as any other interpreter

You must be able to provide a version (possibly the current version) that predated the challenge being posted where the submission is valid (such as a VCS commit, archived backup, etc.). If this condition is met, then the online interpreter is a valid interpreter, even in the absence of a locally-runnable (read: no internet access required) interpreter.

| |
\$\endgroup\$
  • \$\begingroup\$ If I understand what you're saying properly, would this imply that a "Data" program would be valid if the user provides a list of version numbers for each the involved languages? \$\endgroup\$ – PhiNotPi Feb 11 '16 at 21:23
  • \$\begingroup\$ @PhiNotPi Yes. It would be no different than having to specify Python 2 vs 3 if the submission is not equivalent in both (though Python 2 and Python 3 are typically viewed as separate languages, the point still stands). \$\endgroup\$ – Mego Feb 11 '16 at 21:28

You must log in to answer this question.

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