Here’s a proposal for a programming language that doesn’t require the programmer to understand the specific semantics of another language or the hardware platform for their language. Here’s how it works: Program your program in whatever language you choose. However, the core of your program is probably some kind of “trajectory planner” in the form of a database, a symbolic computer, or the equivalent. Your program tells the trajectory planner, “Find the programs that fall into the slot marked ‘generate correct answer’.” The trajectory planner converts your program’s input into numbers, descriptions, messages, and replies. Those numbers, descriptions, messages, and replies are what your program uses to function in the world. You specify your destination as “Pick up a piece of gum at a vending machine on the corner,” then the trajectory planner uses numbers to tell it where you’re supposed to stop along the way.
The end result is that you don’t have to learn a particular programming language, hardware platform, or specific programming language dialect. All you have to learn is a few concepts and the ability to specify a message and wait for it to be sent to your destination. What can you do with that knowledge?
Programming languages come in all kinds of flavors and flavors of varieties, just as languages in computer hardware come in all kinds of configurations. For example, you might be accustomed to using SQL for database functionality, but with my proposed programming language, you would never even think about using SQL to write your database code. You can have one database where your programs run, and the database can be completely different from the hardware platform where the program runs. Your program can be completely different from both the language you chose to program your database and the language you used to program your hardware platform.
I don’t think this language will have the vast reach of SQL, but perhaps it could make SQL look really weird.
Here’s a few examples of programming languages that illustrate the problems associated with using SQL. For example, you could write your program to pick up a piece of gum from a vending machine, type “SELECT * FROM dbo” and wait for the results. That could be a reasonable example.
But you wouldn’t know what the random variables were in your program. Sure, you could specify their random numbers as random numbers in SQL, but that will not do the trick because you can’t be sure that SQL is actually running in your hardware. You might have to use your graphing calculator and figure out the statistics of the random number generator. In that case, what you want is to be able to execute the program on a portable computer and have the results show up somewhere else. You could try a message-based method of figuring out the probability of picking up the gum, and then calculate your results in another language like Haskell