GGFSM project and my next plan about Ming

/ racket, english

For the past month, I’ve been dedicating myself on the developing of GGFSM, which is a website that draw graphs with the given prices and volumes data of stocks from Shanghai and Shengzhen stock exchange. As one of my toys wrote in racket and ming-language, the main purpose of this project is enhancing ming lang, and making clear what the next plan should be about it.

GGFSM and I Ching

Speaking of GGFSM, it started from my long time curious about the I Ching and hexagram. I Ching, as an integral part of chinese culture, the spirit of it can be found in vast aspects of chinese, such as the languages, writings, paintings, buildings, cookings and even the ancient science and medicine, despite the fact that chinese people start to embrace the western science because of the practically valued and stunning technologies it brought to us. As a result, I Ching has been abandoned to some degree in morden China.

There are researches say it is I Ching that was impeding chinese to induce modern science. It’s true I Ching was originally used for divination by ancient chinese people, but gradually its spirit has been implemented to other fields because people notice that almost everything happening in the earth is changing itself all the time, and by the time of changing they entangled with each other, part of them are connected to this system or that system, systems are entangled each other as well. The reality world is quite complex, yet I Ching seems give out a very basic rule about it, which rule is demonstrated as a diagram called Hexagram.

On the other day, I came up with a thought to abstract daily state of stocks as hexagrams of I Ching, and then draw those hexagrams in a graph, I was expecting the graph could show some trends since hexagrams are originally used for prediction.

Unfortunately, the prediction didn’t work very well after I finished the GGFSM project, partly I reckon this is because I calculate stock state to hexagrams in a much simpler algorithm, which part of code apparently requires refactors. I guess this refactor can be addressed in the future as I use the GGFSM and figure out how to implement it.

Another interesting thing I noticed about hexagrams is its order. Since hexagrams are derived from Bagua, the order of trigrams of Bagua determines the order of hexagrams, which determing order in reverse is just 0 to 7 if we converted trigrams from binary values to decimal numbers. And there are more, take look at the trigram figures, such as the "☴", the binary value of which is “011”, decimal number is “3”, name called “巽”, compares to "☵", binary value “010”, decimal number “2” , called “坎”, obviously it is smaller than “巽”, but actually, in nature “巽” stands for “风” which means “wind/air”, correspondingly “坎” stands for “水”, which means “water”. Think about it, is that true “air” is larger than “water”?

This is the spirit of I Ching, from the perspective of mathematics it shows only weird, because trigrams are actually states of objects from nature, the order of them doesn’t work exactly like numbers in math. About this point, I guess it indeed can be viewed as one of the reason why people say I Ching is an obstacle for the inducing of modern science, they works totally in two different ways. Yet on the other hand, people cann’t deny the influence of I Ching and what it contibute to chinese culture, which veils another mystery of mist to it.

Ming Language

I conceived the Ming Language back to the year of 2021, moremover, this idea was implemented in the summer of last year. From that time to now, it has been through two stages as I summed, and there comes the third stage of it as my next plan.

On the first stage, I was just bringing chinese phrases to racket following the fact that I perceived English is a language too simple to give names for a programming language like lisp, the drawbacks of which are collectively shows on one aspect: the code is too dizzy to undstand, which blames on the ambiguous namings wrapped in the symmetrical parentheses.

Bringing chinese phrases manifested the fact that modern chinese phrases and characters can barely covers the concepts of programing languages. After that, I researched a little bit on the evolution of chinese languages, and realized what I need to do is creating new chinese characters for each minor concepts with obeying chinese character creating rules called "六书". Then there comes the new designed cn chars like "􏿴", "􏿳", "􏿫", "􏻿", "􏿰", "􏾐" and so on.

Designing new cn chars for concepts of lisp is what I called the second stage. By the end of that I also wrote an post for it in English at racket.discourse.group. In Chinese, the SOICOL much more elaborately document it.

Before the forthcoming third stage, as I summed up the second stage, there are some facts I noticed and are listed below:

  1. Ming Lang is residing in the Lisp world, that’s where it values itself.
  2. Lisp is rarely used in the worldwide engineering industry, not to mention in China.
  3. The majority users of Lisp are from the western world.
  4. English is the factually widespread used language.
  5. To use a nowaday programing language, you only need to know few English words in fact, more are needed for reading the document.
  6. Things come the same for Ming, to use it, you only need to know few chinese characters, the rest is on the document.

So one important point of my next plan for the thrid stage is writing the Ming document in English. Despite writing document in Chinese is much reasonable and straightforward, the drawback of this is also very obvious: people who are able to read it don’t treasure the value of it, people who see the value of it are kept out from understanding the document.

More specifically, the following document of implementing features will be writing only in English, and the previous already wrote Chinese document will be moved to the secondary place, instead I will write an English version and put it on the primary place. Most likely, this will be implemented as showing the corresponding Chinese document by clicking on the English document.

Chinese programming code

When I wrote code for GGFSM project, in order to have a global view of how code would be like if wrote in Chinese characters and phrases, I had forced myself to use Chinese as much as possible. Consequently I concluded that there is no need and it is also not proper to conduct full chinese character codes:

  1. English abbreviations in uppercase are much recognized and harmonious, thus more suitable to be used as variables in the chinese codes than picking up some other chinese characters for it. Furthermore, I’ve followed this rule in the code of implmenting libraries for ming-lang, see ming/list to have a quick feeling about what I said.
  2. Modern Chinese are unnecessarily designed as favoring of using phrases instead of single characters to express concepts, this makes the code too verbose. Fortunately, this issue is quite easy to resolve: we need to incoporate classical chinese word into making phrases and names for codes. For example, the English word “data” and “response” have always been used for defining variables to temporarily saving returned data from requesting APIs, for the counterpart in modern Chinese, normally they are called “数据” and “返回数据”, but those are too long words, instead it is better to be named “云”(raw data) and “文”(processed data), brevity and more concise.
  3. Concepts from the programming language world are quite new to chinese language, it’s unnecessary for us to always create phrases for those concepts as the English way, what makes Chinese different from English and others is its ability to create characters, which shouldn’t be abandoned. Take the “Hash” concepts as example, it is call “哈希表” and “散列表”, which is unacceptable that occupied more space than English word with using such an expressable language, and it is merely called "􏿰" in ming lang.
  4. Programming language code is rarely used for poeple to speak, for the most time it is used for writing and reading, so by the time of creating new characters for concepts, it should leave out the components of those characters that stand for pronouncing(去除声旁). But in the reality of daily engineering project, we still need to keep in heart that, it has to overlaped with morden chinese because that’s the daily part of chinese people.