The reasons are these:
- ASCII text is a common interchange format -- it is not the best or most efficient, but it is the most likely to be understood on a variety of machine. Data which cannot be readily moved to another machine has limited value, and the act of converting data can be very expensive in time and money.
- ASCII is easily read and edited -- specialized tools to manipulate the data are not required.
- There already exists a wide array of text manipulation tools -- awk, cut, diff, grep, head, lex, more, perl, sed, sort, tail, test, wc.
OK, it is not numerical, but...
Thank goodness HTML is text.
If it weren't, my job would have been much more difficult. I needed to add spell checking to a search engine - if no results were found for a 'typo', I wanted to add a nice little table to the "no results" page, listing the original search words and the suggested alternatives. Even better, the suggested words should be links, triggering a new search.
How to do it? I have the source to htsearch, of course, but I'm more of a scripter than a programmer, and it seems like using a bomb to kill a rabbit to hard code this in.
Then light dawns: HTML is text. It didn't have to be; it could have been some proprietary (or not) binary format. But it is. My old friends ispell and sed can play. Scripting languages like python and perl are right at home!
The wrapper script was simple; nothing but search and replaces, finds, calls to ispell (filtered through sed to get only the suggestions). Just text manipulation. The tools were there; they're good, fast, and better than I could possibly code them.
So I offer my thanks to the Unix philosophy: small tools, working together, manipulating text, solved a problem easily that could have been much more difficult. It is very nice to see a philosophy succeed in the real world.