Recently, Mego, quartata, CᴏɴᴏʀO'Bʀɪᴇɴ and I (VoteToClose) (building upon the work of ProgramFOX et al.) built a chat bot named Data that can run code for several different esoteric languages (and maybe, in the future, other languages). Now, after a conversation with overactor, one of the devs for SE-Chatbot, this was asked:

Could this bot with all its commands be considered a programming language?

And my immediate reaction was "Of course!" However, I wanted to ask on Meta to be sure.

Do you think that we can use this as a programming languages?

  • 1
    \$\begingroup\$ I'm not familiar with the chatbot isn't the chatbot as much a language as a command line? \$\endgroup\$
    – Downgoat
    Feb 4, 2016 at 15:38
  • 3
    \$\begingroup\$ Pretty much. We also consider Bash a programming language though. \$\endgroup\$
    – Dennis
    Feb 4, 2016 at 15:39
  • \$\begingroup\$ Is the source code freely available and easily runnable (i.e. locally, without having to use a chatroom)? \$\endgroup\$
    – Doorknob
    Feb 4, 2016 at 17:29
  • \$\begingroup\$ @Doorknob It does need a chatroom. The source code can be found here. \$\endgroup\$ Feb 4, 2016 at 20:31
  • 1
    \$\begingroup\$ @Doorknob Actually it can be run locally with some minor modifications. It has an interface for running commands from the command line where it is hosted, so by simply disabling the code that connects to a chat room, it becomes a command-line tool. \$\endgroup\$
    – user45941
    Feb 4, 2016 at 21:13
  • \$\begingroup\$ @Mego But it pulls from TIO, which means you might as well run it from a chatroom. \$\endgroup\$ Feb 4, 2016 at 21:19
  • 2
    \$\begingroup\$ @VoteToClose It could also be just as easily modified to run all code locally. \$\endgroup\$
    – user45941
    Feb 4, 2016 at 21:21
  • 1
    \$\begingroup\$ @Mego I shouldn't have to dig into the source code of your "language" just to test answers "written" in it. \$\endgroup\$
    – Doorknob
    Feb 4, 2016 at 21:40
  • 1
    \$\begingroup\$ @Doorknob Which is why, if it's decided that Data is a valid programming language, we will create a standalone version for testing. \$\endgroup\$
    – user45941
    Feb 4, 2016 at 21:41
  • 2
    \$\begingroup\$ I would say "the ability to run completely locally (without the end user needing to modify the source code himself)" should be a requirement. Otherwise, behavior of Data is subject to the online implementations of the other languages, which will not be consistent over time. \$\endgroup\$
    – PhiNotPi
    Feb 5, 2016 at 3:54
  • \$\begingroup\$ How to use Data? \$\endgroup\$
    – Xwtek
    Feb 5, 2016 at 7:25
  • \$\begingroup\$ @ChristianIrwan Go to this chatroom and type in !eval. \$\endgroup\$ Feb 5, 2016 at 7:40
  • \$\begingroup\$ @PhiNotPi As far as I know there is no requirement in PPCG's definition of language that requires it to be consistent over time. Indeed, many languages commonly used here are constantly changing. I think if you believe this should be a requirement, you ought to make a meta thread about it (using an argument other than the consistency one so that I don't automatically downvote it). \$\endgroup\$
    – quintopia
    Feb 9, 2016 at 19:10

1 Answer 1



According to the consensus on programming languages:

  1. Support a representation of natural numbers and of tuples. (We're talking about languages rather than implementations, so we will leave to one side the issue of type widths).


  1. Be able either to transform inputs into outputs (transformational model) or to distinguish an "accepted" input from a "rejected" input (decision model).

Still check.

  1. Be able to take two natural numbers and add them. In the transformational model, this means transforming an input tuple of two numbers into an output which correctly represents their sum. In the decision model this means deciding whether an input contains the representation of a tuple of three natural numbers such that the third is the sum of the first two.

Big check.

  1. Be able to take a natural number and say whether or not it is a prime. In the transformational model this means transforming a natural number into the representation of 0 or 1 according to whether it is a composite or a prime number. In the decision model it means accepting precisely those inputs which represent a prime.


Of course, questions still need to be asked: "What defines input for this language", "Is it a full functioning program", "Is chat a command line (and then how do we count bytes/flags)", etc, but we can define those later if a consensus on this is reached.

  • 5
    \$\begingroup\$ Next, if bots can be considered programming languages, can humans? I can meet all those criteria. :D \$\endgroup\$
    – mbomb007
    Feb 11, 2016 at 19:04
  • 1
    \$\begingroup\$ @mbomb007 Eh, not really. You're not exactly "easily distributed", neither can you "run in any user's home computer". \$\endgroup\$ Feb 11, 2016 at 19:32
  • \$\begingroup\$ @VoteToClose Neither of those objections are raised in the four points you make in the post ;) \$\endgroup\$
    – Geobits
    Feb 11, 2016 at 19:34
  • \$\begingroup\$ @Geobits Yeah, it was addressed in comments on the question; we're working on that, actually. \$\endgroup\$ Feb 11, 2016 at 19:37
  • 4
    \$\begingroup\$ @VoteToClose I am, too, easily distributed. But please don't. And I certain could run ON any user's computer. :D But anyway, I'm also my own IDE and interpreter, and I perform more operations per second than any user's computer. I'll beat every computer at image and speech recognition. \$\endgroup\$
    – mbomb007
    Feb 11, 2016 at 20:26

You must log in to answer this question.

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