Every programming language has 3 main layers.
- 1. Graphemes and syntax WITH COSTS: the aesthetic aspect of the UI/phenomenology as it is perceived by the language user. Given by the language developer.
- 2. Sequence, selection, and iteration WITH COSTS : the analytic aspect of the UI/phenomenology which the language user must assume is represented by (1.). Given by the language developer.
- 3. The implementation details WITH COSTS : which are irrelevant to the language user, but which are of interest to the language developer as (3.) is handcuffed to the the guarantees promised in (1.) and (2.)
So why do I need to develop a new language? Well, I don't but it is convenient to do so.
- As a user, I stand to benefit from hacking (1.), because I want a programming language that can capture 99% of notational constructs used in logic, maths, and business, with an ASCII character set. This does not currently exist. (I am just dumb and haven't found it.) Business is usually not a problem, but maths and logic notation is more diverse. Unicode is the "proper" way to do it, but not the "lowest common denominator" at this point in history. Generic personal computing devices guarantee standardised ergonomics for ASCII, but not for Unicode as a whole.
- As a user, I stand to benefit from hacking (2.) because the menagerie of concepts in logic and maths, is often expressed at this level of the system. Type systems, and other abstract data structures mainly live here. So this is good practice.
- As a developer, I stand to benefit from hacking (3.) because that's just the fundamental nature of the business, and I certainly need more practice and study in this area.
Oh well. What a chore.
No comments :
Post a Comment