- What are the advantages of homoiconic programming vs. conventional (monolingual) programming?
We will start with a bold answer, a solution to an increasingly critical problem that has no prior solution: Ageism in programming.
Although we may not be able to prove that ageism in the programming profession is an intended consequence of development of novel programming languages, ageism nevertheless exists within the IT industry, and it is a proven tool to cut cost and "stay competitive" as with other industries.
Conventional monolingual programming (CMLP) usually requires the programmer to use and be familiar with the programming language concerned. However, programming languages are usually incomptible with each other. As such, when a major programming language replaces another every five years or so, ageism or age discrimination in the programming profession is more brutal than other industries, which have already matured and and produced more humane organizational transitions.
To borrow an analogy from supply chain model, homoiconic programming (HIP) provides a common downstream interface, in the form of Forth like Reverse Polish Notation, to the host programming language, which constitutes the upstream modules.
https://github.com/udexon/Homoiconism/blob/master/README.md
Forth is a unique programming language which celebrated its 50th anniversary in 2018. While the mainstream of the Forth programmers community do not yet consider HIP a priority as it is novel, the compatibility of Phos and Forth will guarantee Phos ability in overcoming ageism in programming, given the long history of Forth.
As homoiconic programming (HIP) consists of upstream (host programming language, e.g. PHP, JavaScript, Java etc.) and downstream (Phos Smashlet), they are targeted at senior programmers (upstream) and junior or novice programmers (downstream). In our humble opinion, this is a first in the history of computing, and will bring many huge benefits.
For senior programmers, porting Phos Smashlet to a new host programming language is roughly a full day work (8 hours). It only has to been done once for each programming language, and everyone else can benefit from it, by using only Phos RPN afterwards.
For junior or novice programmers, they only need to learn one programming language -- Phos. Further RPN will lead to a more fundamental discipline as it can be used to study and analyze mathematical equations.
Overcoming ageism by adding value to RPN with mathematics, for young to old.
:: As introduction to Homogotchi -- game for physics and robotics for all ages, all disciplines
https://www.cl.cam.ac.uk/~jrh13/hol-light/
https://www.sympy.org/en/index.html
These software lead to / built with Lisp. Has gaps to other programming languages.
Understanding Lisp leads to RPN, Forth, Phos .... Phos eliminates gaps between programming languages and mathematics.
HP calculator and its predecessor, Italian Olivetti? -- RPN, not marketed as a "computer", became popular amongst engineers, but fail in transition to personal computer? Why? Because of Windows and Linux? i386 rose?
https://www.massmadesoul.com/features/divisumma18
Despite their successes, SageMath and SymPy illustrate several critical problems facing computer algebra systems and software engineering in general.
https://github.com/sympy/sympy/releases
https://groups.google.com/forum/#!forum/sage-devel
These problems and the solutions provided by Phos, do not just concern computer programming, but the teaching of learning of mathematics in the next decade -- perhaps the most critical decade of human civilization, as we expect technological singularity to emerge.
The computing industry has undergone a long period of rapid expansion, so much so that various critical problems, such as those caused by too many new programming languages, do not receive sufficient attention.
Consider:
- Can SymPy be deployed in Android games?
-
Unfortunately my Android application was written in Java, so there were a couple of things I could do at that point:
- Port the Python library to Java
- Embed Python in the app
- Build a REST API in Python that talks to the app
Homogotchi. Imagine the productivity improvement ....
Explain Homogotchi first, then relate to education of mathematics.