Add a bit more philosohpy
This commit is contained in:
parent
0c91ab07c0
commit
7d5c74e79c
|
@ -131,3 +131,5 @@ a,a:visited { color: var(--fg); }
|
||||||
/* LEGACY */
|
/* LEGACY */
|
||||||
.inlineblockimg { display: inline-block; }
|
.inlineblockimg { display: inline-block; }
|
||||||
.inlineblockimg > img { display: inline-block; vertical-align: middle; width: 3em; }
|
.inlineblockimg > img { display: inline-block; vertical-align: middle; width: 3em; }
|
||||||
|
|
||||||
|
.definition,.example,.theorem,.conjecture { padding: 0 1rem; margin: 1rem; }
|
||||||
|
|
|
@ -8,37 +8,35 @@
|
||||||
#+options: auto-id:t
|
#+options: auto-id:t
|
||||||
#+startup: showeverything
|
#+startup: showeverything
|
||||||
|
|
||||||
I recently followed multiple discussions around a similar concept.
|
Have you remarked how difficult it is to have something now.
|
||||||
Retro compatibility, languages, etc…
|
I mean, really have an object that you know, could be passed to your
|
||||||
|
children that they themselves pass to theirs for many generations.
|
||||||
|
|
||||||
I would like to provide a better definition for "Eternal Language".
|
In particular in the Software programming industry, or community at large.
|
||||||
|
This remark is not only valid for the industry but for the science as well.
|
||||||
|
See how it was difficult to reproduce AI experiments.
|
||||||
|
See how difficult it is for a searcher to provide the same stable testing
|
||||||
|
environment he has locally.
|
||||||
|
Worse than that.
|
||||||
|
The code they provide will almost not be compatible with the future
|
||||||
|
environment.
|
||||||
|
And imagine someone has a great new idea to update an old idea.
|
||||||
|
It will not be able to use a recent library on the old code.
|
||||||
|
So having a nice reproducible environment is not enough.
|
||||||
|
|
||||||
|
Where are the Joconde of the XXIth century?
|
||||||
|
Where are the thinker in the Software world?
|
||||||
|
|
||||||
|
We should strive to find, if possible a single, "Eternal Language".
|
||||||
|
|
||||||
#+begin_definition
|
#+begin_definition
|
||||||
*Definition:* An /eternal programming language/ is a language for which code
|
*Definition:* An /eternal programming language/ is a language both backward and
|
||||||
written today will still compile and work any time in the future but also
|
forward compatible.
|
||||||
in the past.
|
|
||||||
#+end_definition
|
#+end_definition
|
||||||
|
|
||||||
So any new feature introduced in the language should not break anything.
|
Backward compatible: using code from v1 will work with v2.
|
||||||
|
Forward compatible: using code from v2 will work with v1.
|
||||||
|
|
||||||
By this definition it provide a great deal of constraint on the language
|
|
||||||
but provide a tremendous amount of advantages.
|
|
||||||
|
|
||||||
As a professional developer it will provides stability.
|
|
||||||
The work you done today can be forgotten.
|
|
||||||
Even if the quality of code is not perfect, if it works, it works.
|
|
||||||
No need, to change unless a new major security issue is discovered.
|
|
||||||
|
|
||||||
There are a few programming languages that try to achieve this.
|
|
||||||
So, by their nature it is normal to have a period of adaptation during
|
|
||||||
which a language is not Eternal.
|
|
||||||
The code will break with convention from the future.
|
|
||||||
Or new feature will be added to the language in the future that will not be
|
|
||||||
supported today.
|
|
||||||
|
|
||||||
Eventually, when a language is used professionally, most would really
|
|
||||||
appreciate if a language reach the "Eternal Language" status.
|
|
||||||
There are a few examples I like:
|
|
||||||
|
|
||||||
- *TeX*, once written, it was never updated. It contained everything it
|
- *TeX*, once written, it was never updated. It contained everything it
|
||||||
needed. The project was over, and there is an active philosophy of
|
needed. The project was over, and there is an active philosophy of
|
||||||
|
|
Loading…
Reference in a new issue