In the previous section we briefly introduced Data and saw how the idea of Vibration is related to it. Data is so important that it deserves its own dedicated discussion.
Among Simorg’s distinctive features, perhaps the most revolutionary is its approach to Data. In a CPL approach, processing is applied to the data and when data is not available as expected, all sorts of errors and exceptions appear. This is no longer the case in simorg.
Simorg provides a new mindset for programming in which Data is owning the processing not the other way around! When writing Simorg's code, we always think about the data and how it will flow then our code will guide data toward its destination. In this model, data is no longer a passive element of our digital universe but a first class citizen that is absorbing the consciousness from our code which of course is the source of consciousness. So a conscious entity transfers its consciousness (aka business logic) into code so creating a conscious environment and data flowing in this environment so absorbing this consciousness and fulfilling the goal. A conscious data is owning the processing.
The solution to many of these problems lies in how we treat Data.
Simorg’s view is that, instead of so to say babysitting Data, we should empower it to lead processing.
As Data flows through the Engine, it absorbs processing, and processing in turn makes Data more conscious. This feedback loop between Data and processing continues until Data fulfills its purpose. A truly data-driven approach is embedded in the core processing model of the Engine.
The entire ecosystem around Simorg is designed to make Data smart enough; everything is ultimately encapsulated in Data. Consciousness is not a separate entity; it is entangled with Data.
Data has two aspects in Simorg: Value and Frequency.
- Value is the aspect of Data that represents its content (for example, <<<10>>> or <<<"Hello World!">>>).
- Frequency is the aspect of Data that carries its identity. As Data flows inside an application, it can absorb, carry, and shed different Frequencies.
Comparing with CPLs, one can see Value as memory space and Frequency as the address of that memory. Simorg is using these new physical concepts to make a separation in classical approach toward data which is the root cause of many errors and incidents in software engineering.
Together, these aspects allow Data to decide more consciously where it needs to flow, and as it continues to flow, Data becomes increasingly conscious.
For example, consider this familiar for loop in a CPL. As we can see from the code, the behavior of iteration is imposed on the Data:
// a classical for loop
for (int i=10; i>0; i--) {
println("Hello World!");
}
Simorg's approach is different. Instead it provides a pathway for Data to flow through; the iterative behavior emerges naturally from this flow. Later you will see that this specific flow is part of our variable declaration, actually the behavior of a for loop is encoded and embedded in the declaration of the variable itself.
This is similar to how water moves through a piped system or how electrons move through an electrical circuit: they follow natural pathways according to the laws of physics.
// declaration
$i -- >0 i
// initial vibration
10 i
// each iteration impacts other elements
// causing "Hello World!" to be logged 10 times
i "Hello World!" ?
Soon we will discover how this code works in detail.