diff --git a/src/css/y.css b/src/css/y.css index 98573a8..bea548c 100644 --- a/src/css/y.css +++ b/src/css/y.css @@ -131,3 +131,5 @@ a,a:visited { color: var(--fg); } /* LEGACY */ .inlineblockimg { display: inline-block; } .inlineblockimg > img { display: inline-block; vertical-align: middle; width: 3em; } + +.definition,.example,.theorem,.conjecture { padding: 0 1rem; margin: 1rem; } diff --git a/src/posts/0022-eternal-language/index.org b/src/posts/0022-eternal-language/index.org index 6d3e20d..75d4092 100644 --- a/src/posts/0022-eternal-language/index.org +++ b/src/posts/0022-eternal-language/index.org @@ -8,37 +8,35 @@ #+options: auto-id:t #+startup: showeverything -I recently followed multiple discussions around a similar concept. -Retro compatibility, languages, etc… +Have you remarked how difficult it is to have something now. +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 -*Definition:* An /eternal programming language/ is a language for which code -written today will still compile and work any time in the future but also -in the past. +*Definition:* An /eternal programming language/ is a language both backward and +forward compatible. #+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 needed. The project was over, and there is an active philosophy of