I have recently read about suggestions to programming code being defined in ways other than plain text. As a developer of a new language I have thought quite a lot about this topic and I would like to solicit other opinions.
The English language consists of 26 letters and 10 digits (I know about the symbols etc). Words are made of combinations of these characters. Ideas and sentences are made by combining sets of these words. The extensibility of ideas using this scheme is unlimited.
Extensibility is a laudable goal in programming because we don't know where our design will go.
Other forms of communication work well for humans like pictures and diagrams but these are quite opaque to computer programs. Words are therefore something that has unlimited extensibility and can convey meaning to both humans and computers.
Have you ever tried to make a macro that can navigate an accounting system that has a mouse interface? I am advocating that all functions of all computer systems have a text based interface even if the user interacts with the system with a mouse, pictures or whatever.
With a text based internal system, it would be easier to debug and it wouldn't limit the kinds of devices that could interact with that system in the future. If instructions from your steering wheel, gas pedal and brake were all text based, you could implement systems that automatically avoid collisions that don't even exist yet. Obviously you would have security safeguards so that the system couldn't get hacked or used in ways not authorized by the owner of the car.
I believe that most software in the future will be created by computers rather than programmers although systems need to accommodate both for the foreseeable future. This can be accomplished only if software, data and meta-data exist inside the systems we create. A character interface would facilitate this eventuality.
-- DavidClarkd
See PowerOfPlainText; The UnixWay is to use PlainText. I guess there are even RFCs to this end.
I looked at the link you provide and this is part of what I am saying but I am taking the concept much further. I am advocating that all systems of programs have a character/command interface at the center of that system and all other interfaces actually use that interface. The reasons why that is a good thing are the few I have advocated above and also many of the same for storing configuration and other data as your link suggests. I am not suggesting that data be stored in flat text only form. I am referring to accessing the functionality of any computer system rather than how data is stored. I am also not talking about the interface between multiple programs as in the "Unix Way". -- DavidClarkd
A counter example is written language. Pictures and diagrams (other than storing or retrieving them for humans) are only useful in computer processes when static information has been processed out of them. I think most systems will be manipulated by programs in the future and providing an extensible character interface is like having most of the internet using English. It's not the best language BUT it is extensible and pervasive which is what matters most. -- DavidClarkd