Examples of Explicit Languages:
I am trying to program the foundation of software development. As I
look at each of the issues, with our current technology, I run into
The hardware only work with numbers, so I will
start here. We use words "integer" and "float". these words convey very
little other than a class of a numbering system. We use the words
"signed" and "unsigned", again a vague approach to the really mean. Is
zero included? The number of bits in a number, I have yet to learn
To be explicit in numbers, the English language has words for our
- Integer: -∞ to +∞
- whole number: 0 to +∞
- counting number: 1 to +∞
Without explicit knowledge in our languages the work
to handle logic will remain in the minds of the programmer. To
build a better programming foundation is to reduce the work of the
programmer. We need to convey more context in the words we use so the
computer can do the job with less human involvement.
"Marathon runners set explicit goals." -- Joseph B. Wirthlin
"What is known can't jerk us around unwittingly. Before anything
can be resolved, the implicit must be made into the explicit." --
"Writing is thinking. To write well is to think clearly. That's
why it's so hard." -- David McCullough
"Sometimes it's not enough to know what things mean, sometimes you
have to know what things don't mean." -- Bob Dylan
fascinated by the words, but where we meet is in the silence behind
them." -- ram dass
"My psychiatrist told me I was crazy
and I said I want a second opinion. He said okay, you’re ugly too."
-- Rodney Dangerfield
Assumption are not facts:
Knowledge are the facts we know before we act. Programming is an act
without knowledge. This is our inability to really have any control on
our programming environment.
I do not use GitHub or any other library or packaged systems. I look
for what should be, not what is. You can assume the world is flat and
still be happy. I prefer to see past the assumptions. I do not
think progress is being made using the same technology.
Why don't we have better software?
With better software we would have better accountability. This would
mean hospital charges would have meaning. NASA would not have
overruns. Roads would be build on time. We would not need governments.
Factories would run themselves. We would have self driving everything.
Cloud computing would disappear. Stock markets would become illegal.
Advertizing would no longer be tolerated. Security would become
absolute. Business meetings would become a thing of the past.
What is the hold up. Economics... why make things better it it is
going to put yourself out of business. Most companies spend more
time removing capabilities rather than making improvements.
If a capability is not in the compiler then each programmer must
become an expect at that capability. This means that other than simple
math expressions everything else we do is done by amateurs.
Ada Lovelace and Charles Babbage:
Even though no one used
their work on modern computer languages the results are the same; a
simple instruction set working with numbers.
Using the instruction set of of the 1843 language, I could produce,
just as fast, any of today's programs.
Readability of Code:
I can read and know the meaning of every word in a program, yet I have
no knowledge of the whole. If our language of computer instructions
remain at the level that a handful of words, there cannot be
A computer language should not be instructions but
rather requests where the words and meaning are explicit. The
meanings of the language should already programmed before a request is
There are 171,476 words in the English language yet our latest
computer language only has a vocabulary of 33 words. Progress in
technology will never be made until we have a much larger vocabulary.
How many Computer Languages do we need?
I have, over the years, learned some 30 so called high level computer
languages, and maybe a dozen assembler languages. They all do the
There seems to be an unwritten law that no two compilers can use the
same conventions. Everything from how to write a comment, how functions
are declared, to how variables are declared. I looked at twelve of our
most popular languages, it turns out that they have only four keywords
in common (for, else, return, if). Most of our languages use less
than sixty keywords.
To make things worse, our high level school systems follow the latest
fad in languages. Are we learning science or the latest dance step? What
students learn is not the language but rather the packages attached to
them. None of these packages (API) ever use the same conventions. Python
seems to be the flavor of the day. Not because it is a better language
but because it can handle reading and writing files, Inconceivable.