Do you think that the following groups make sense:
- machine-centric - machines are a target user
- human-centric - mainly it is to be used by humans
An example of machine-centric language is XML. It is text-based so it is also readable by humans.
An example of human-centric language is UML. It is a graphical-based modeling language.
My concern is how to classify JSON?
Reading my previous question I have got the next question about what the use
world actually means. Can we replace it with: consume, understand, process (e.g. compile, interpret, translate, etc.). It means that any language is a foundation to formally describe a conversation between human-human, machine-machine, human-machine. This way we have 3 groups instead of mentioned 2, but always there is a producer publishing something and subscribers listen to the publisher, e.g. software developer writing C# code, and compiler converting it to an executable. Can we say that language is a contract?
You are on the right way 
De Saussure proposed this definition of language:
“It is a social product of the speech faculty and a collection of necessary conventions which they have been adopted by a social body to permit individuals to exercise that faculty”.
In other words, a language is a convention between speakers.
1 Like
@ldesantis, thanks for the feedback. Agree, in the case of humans-humans, but in the case of the machines, I propose to add formal convention
. For example, a high-level programming language where we are trying to create a dialect based on a native language (usually English).
It is my point, but formal
in this context means a necessity to define directly or indirectly:
-
Alphabet - set of character we used to represent a meaning
-
Syntax - rules we can use to validate the text
-
Semantics - rules we should apply to correct text with a goal to assign a meaning to it
Maybe it is a simplification, but I am creasy to know how it works for you.