mini languages that non programmers can understand
There are hopefully a number of mini text based programming languages that non-programmers can understand. But what are they?
One that I've used in the past is something like this:
Which would parse into a python/javascript data structure like this:
It's suprisingly common in things like search engines. Grandmas who occasionally check their email might not get it (but many do I'm sure!)... but I think a lot of others do. For things like search it is ok, if people know the magic 'terms'. If they do not know the terms, then they can just enter text to search normally. The mini language is used by advanced users.
This is quite good for single line free form data entry. Since people only need to know the concept that you have 'key:value'. It's slightly easier than using urls, since separators can be different things.
Next up are comma separated files - csv.
For example:
However, I think that html is on the edge of too complicated. Modern html is especially complicated.
Things like markdown, bbcode, and wiki languages all fall into this category. The languages can sometimes have only 5-10 elements - which make them easy to learn the basics.
Older Wiki language text could look just like text someone would write in notepad. However modern ones - like html - now have all sorts of ${}[]==++ characters with special meanings.
Are there any other mini languages which are easy to understand for non-programmers?
One that I've used in the past is something like this:
Which would parse into a python/javascript data structure like this:
{name: 'Bob',
gender: 'male/female',
age:'22'
}
It's suprisingly common in things like search engines. Grandmas who occasionally check their email might not get it (but many do I'm sure!)... but I think a lot of others do. For things like search it is ok, if people know the magic 'terms'. If they do not know the terms, then they can just enter text to search normally. The mini language is used by advanced users.
This is quite good for single line free form data entry. Since people only need to know the concept that you have 'key:value'. It's slightly easier than using urls, since separators can be different things.
csv files
Next up are comma separated files - csv.
For example:
name,gender,ageThese are like spread sheets. Many people seem to be able to edit these quite fine. Especially if they have a spread sheet program to do the editing.
Bob,female,22
URLS
URLs are a mini language. With things like # anchors, query strings, and even paths being used by people all the time.?name=Bob&age=22&gender=female
ini files
Common as configuration files.[heading]
key=value
subsitution templates
Common for web sites, and email systems.Hi ${name},
${age} ${gender}
basic html and other mark up languages
Quite a lot of people know bits of html. 'How do I do a new line? oh, that's right: brrrrrrrr.'However, I think that html is on the edge of too complicated. Modern html is especially complicated.
Things like markdown, bbcode, and wiki languages all fall into this category. The languages can sometimes have only 5-10 elements - which make them easy to learn the basics.
Older Wiki language text could look just like text someone would write in notepad. However modern ones - like html - now have all sorts of ${}[]==++ characters with special meanings.
Are there any other mini languages which are easy to understand for non-programmers?
Comments
For example, just like a Django settings file.
Otherwise, JSON?
Others are twitter, irc and even sms speak I guess. 'send your age to 9293XXX now' type stuff is kind of a mini programming language.
If you are going to use json, you might as well use YAML (you can even have directives). I like yaml but users seem not too (or json of course).
Even though it makes my blood boil to say it, lots of non technical users know basic html. So a little horrible xml syntax people get used to tags. ie
bob. Its verbose and horrible, but it goes down pretty well and there are plenty of parsers around.
Also wiki markup is a language of sorts (so is reStructuredText).
Other than that write your own. I use pyparsing. There are plenty that do in the python world.
Pyparsing Users
There is a Bibtex parser in there.
Also look ay the examples
Most UNIX users get that one, even if they're not programmers.
2 + 2 = 4
Most modern Westerners understand that one.
The problem with calling such things "mini-languages" is there's no real floor--there's a pretty continuous line of simpler and simpler "languages" until you devolve into symbology and semiology. Cutting them off at "text-based" seems pretty arbitrary.