A bit of the philosophy of G15 PMN
Those who have the time may want to look into the description of Kurt Goedel’s famous ‘incompleteness’ work, in particular how it is playfully described at the apps page of G15 PMN, in an essay. The norskesites.org/fic3 links to the apps page, and it has an essay section, where it should be easy to find. Put very simply, a computer is finite, and a program on it is finite, and a finite program will always be incomplete in infinitely many ways, as concern the ‘perception’ of things. This means that artificial intelligence in a general sense isn’t possible: that was very clear to Alan Turing, who invented much of the computer concept exactly while trying to disprove Goedel, but instead of disproving Goedel, he only succeeded in strengthening the original proof.
Programming, if it is to stimulate mind, must have a bit of honesty about it. It mustn’t try and convey to the human being who uses the program that it has a mind of its own.
Instead, programming, when consciously made, can stimulate to good use of the mind while also being practical and doing tasks that otherwise would be tiresome to carry out manually.
So, instead of ‘simulating’ mind, the approach we take in G15 PMN is to stimulate mind.
When it comes to handling tasks that require a bit of pattern matching, and perhaps occasional batch tasks of entraining new patterns, it is possible to do this in a way that honors Goedel’s incompleteness work, and that, more importantly perhaps, in no way imply that we are giving the computer a real sense of mind. The concept that we invoke in G15 PMN in such cases is FCM: First-hand computerised mentality. This is not about simulating mind, but doing a bit of handling of fuzzy situations such as for instance robots may encounter, so that they have a context-specific set of tools that can handle this fuzziness. These involve that the programmer or programmers invest something of her own mentality into how the program is set up. It would be childish to call this ‘artificial intelligence’, of course.
More deeply, there are ways of looking at all the data that has come around since the time of Isaac Newton, including all the gravitation and all the quantum phenomena, and take this into consideration in a worldview that doesn’t see life nor mind as machine-like. Mind calls on machines, but machines cannot capture minds. Mind is alive. A good session of programming with a good language like G15 PMN can stimulate our aliveness, and be practical, and/or fun, in terms of the resulting programs, as well.
This philosophy of relating to computers so that they stimulate mind is also called ‘first-hand programming’. The reason we invented this concept, a long time ago, was to distinguish between programing of a kind that is merely a rather statistical manipulation of packages or masses of data that aren’t clearly visualized, and programming that intensely invokes a sense of the exact algorithms and the exact data. G15 PMN is different in key ways from all programming languages made before it, but it can be seen having more in common with Forth by C Moore than most other languages: and Mr Moore clearly did want a language that stimulates mind, in how he designed Forth. However we go a bit further than Forth in thinking through the wide set of themes connection to doing ‘stimulation, not simulation’. One of them means setting aside such as the much-hyped sort routine ‘quicksort’ because it is tainted with second-handedness and with a needless, time-consuming complexity when confronted with lists that are almost sorted already. ‘Quicksort’ presumes something about how a large list can be organized. We want to use mind in doing the organization of large list, then, as the large list is suitably ordered, the rest of the sublists are small enough that a much cleaner form of sort, the classical, pure, simple, noble ‘bubblesort’, can be used.
The use of cards rather than files in G15 PMN is similar to some of the earliest versions of Forth, but also different. What must be realized by programmers used to working with files in such a context as Linux is that these files are organized by means of a very advanced database, and they are nothing anywhere near ‘essential’ to how a computer works. So if such files are the starting-point, the programing language is already rather second-hand: for it doesn’t really invoke a relationship to the computer directly, but presumes a giant indexing system along the lines of B+-trees and a whole set of predone programming. Similarly, any handling of parallelism by means of predefined structures such as found in many class/object/hierarchy languages of the type that also Java belongs to, is another type of second-handed-ness. To revert to assembly is not the best solution, for assembly--and perhaps never more than when we speak of Intel i386-derived assembly languages--distracts from focus on the programming process.
Much of the complexity of underlaying operating systems, while suitable for commercial interests, really takes away the sense of empowerment that a programming language is meant to come with relative to the mind of the young student.
The solution, again shared with original Forth, but also found in approaches taken by some of the more adventurous programming language makers such as the swiss N Wirth with his Pascal and Modula-II and Oberon, is to insist that the proper language goes all the way through to the ‘bottom’ of the PC, and that here isn’t another ‘operating system’ than it. However if this is going to be meaningful to use, not just meaningful to program, we must find out what we can leave out of the definition of the computer. Here, too, we must ask: what is first-hand, and what stimulates; and what is merely a candy for the entertainment-seeking mind, and not essential for computer science and for essential, and mind-awakening, computer use. Do we really NEED video as part of the the computer definition? Do we NEED millions of colors? Or is this merely part of the consumer hype, and not essential--nor very beneficial to mind? For video is but high-speed shifting of images, perhaps with sound-output, aimed at producing nothing but an illusion. The reality is image. Also, playback of sounds isn’t essential to what algorithmic programming is about: it is something that is intensely tied up to a clock-like process, whereas computer science and significant use of computers in general is a more timeless process. Further, the full range of stimulation, for most purposes, also entertainment, requires just one (uplifting) tonality, rather than R+G+B blended. Similarly we can focus on what a computer should have as meaningful limits in terms of speed and RAM and such, rather than being obsessed with moving these limits out of commercial greed or some kind of superstitous belief in ‘technological evolution’.
In gathering such insights along the lines of a somewhat ascetically, moderately defined Personal Computer, we can then reach the definition of G15 PMN as the programming language par excellence, I think.














