Back to all posts
In this article we will read more about Simorg's new approach in software engineering.
We discussed the foundational layer of simorg in previous blog post, now it's a good time to see how the implementation of those fundamental rules is helping us having a better technology. This blog is about simorg's technology and programming language.
Words are the channels of power and energy! Even after thousands of years this belief of our ancestors is holding true. As it seems the languages and words are the best medium of capturing and transferring the consciousness. Part of simorg's technology is its programming language. We deliberately use the same name and don't see this language separated from the platform.
Simorg's language is quite young and in its early days but still it is important to discuss some of its aspects. Software engineering using digital computers is relatively a young field of engineering but still it had enough time so that we can analyze and understand some aspects of it that are making problems. Without any doubt, some of the bad parts that we experience these days are the result of an ontology of the programming language that we use - even if it exists!
Let's follow a Problem-Solution approach.
As a developer we are all familiar with values like null, undefined, nil, None, nullptr and void even a few more. Classical Programming Languages (CPLs) still care about nothingness. But let's wait for a second and think about it. Why we are caring about nothingness?
Is it possible to treat nothingness and void the same way as existence and being?
Why are we mixing them? Isn't it more appropriate to see nothingness as a transitory step in the process of creation rather than a state of being?
The way simorg reached to the conclusion that nothingness should have no place in a universe of existence goes back to the fundamental layer of Simorg. It is not wise to give nothingness the same value of existence. It is interesting that semitic ontology had a clear vision about nothingness and even Hebrew Bible is using different verbs to refer to concepts that involve nothingness. This is a topic of another blog post.
For now let's focus on technical aspect of it. The goal was clear. In simorg's ontology nothingness and void are considered as temporary steps in the process of creation handled by the engine. In other words when a being is becoming into existence, nothingness is respected. Let's consider the example of darkness and light. Darkness can be seen as nothingness for light because there is no light. If you are looking for light you should not care about darkness. Darkness or nothingness only exists because there is no light or existence. Eventually light will become available and a driving force.
The light in this case can be seen as Vibration or data, the result of processing. So Simorg achieves a nothingness-free architecture by re-arranging the building blocks of a digital system. Giving priority to light and ignoring anything else. So simorg considers the vibration and data as the light of the beings. Combining a data-driven pattern with an event-driven pattern makes simorg able to completely remove nothingness. These two together are representing vibration.
Simorg's runtime is a mathematical engine. Actually high-level user's code is interpreted into a set of mathematical entities. These mathematical entities are built based on Fourier Series/Transforms, a wonderful mathematical modeling tool on top of sine waves. Using this amazing tool, we can model our application entities in frequency-domain of signal processing so making it possible to have the concept of vibrations and frequencies. Without going into scientific concepts, the goal was to achieve a byte-level event-driven pattern, this all is happening thanks to a mathematical engine, aka Jerusalem Engine.
As discussed in other blog post, the three layer architecture of simorg helps solving technical requirements by separation of concerns into their own layer. When for example simorg aims to completely remove nothingness from the existence, each of the three layers contributes to how this needs to be done. Using a mathematical/physical model to represent digital entities naturally contributes to the goal of removing nothingness from existence.
So can you think of a moment that you saw nothingness in mathematics? well if you are thinking about 0 this is not the case as 0 is representing emptiness which is a valid form of existence as its definition is driven from existence. What about physics? how nothingness can vibrate?
The decisions that are made on technical layer are direct implications of what we discuss in previous topics.
If we want to remove the nothingness in technical layer then we should rely on something that guarantees the existence. Data is the only entity that can guarantee its own existence. Let's not forget in simorg's ontology, data is also equivalent to existence. Simorg achieved a data-driven pattern by re-shuffling and re-creating the existing forms so that data now is the driving force behind processing which is unique to simorg language.
Finally, data needs a mechanism of interaction, it is called vibration. A vibration is the driving force of any dataflow. Shells are data containers which at some point are ready to release their data or according to physics, their energy hence generating a vibration.
Now this phenomenon of releasing data from a shell is called vibration. A vibration in terms of execution is quite similar to Event in a classical programming language. But the difference is that unlike events in CPLs, simorg vibrations are the driving force behind the processing because they are guaranteed to contain data and processing is driven by data. So vibration can be defined as the combination of data and event that a shell releases as soon as its condition is met.
A simple calculation like
11+2 : xis shaped around multiple vibrations that happen simultaneously or sequentially. This is a byte level data and event driven pattern or as we call it a vibration-driven pattern.
No one can ignore the roles of functions and arrays in today's software engineering. But again let's pause and see what are the implications of these decisions so far. Issues like dangling pointers, undefined and null objects, index out of bound exceptions and many more, are the results of a functional approach. Even the concept of exception which causes an application to abruptly terminate itself is a result of functional thinking.
What about an alternative solution? What if we can replace functions with something else? What if we don't need to use arrays the way we use them today?
Actually many decisions that are made in software engineering are due to historical reasons and our understanding of phenomena around us.
The concept of a universe that is working based on functions is not new but we should ask, is it really the case?
Is our universe function based or more event based? Simorg's answer to this question is that our universe is more aligned with an event-driven architecture. Everything exists in order to affect or being impacted.
As a result Simorg has no functions but shells. Shells are enclosed digital atmospheres that may have holes on them through which vibrations can pass in and out. So holes themselves are direction agnostic. Again the concept of input and output is a functional concept but the nature doesn't care about direction but more about conditions of vibration. If data can pass one way it will pass and we don't have to think about direction.
As another example let's consider arrays, this is another topic that our illusion is affecting our decisions. Do we need arrays or containers? One may say these are the same but simorg differentiates them.
Arrays are independent entities of being that have their own memory and functionalities. But Simorg containers are another type of shells, their existence is a direct result of data and they do not have independent identity. This is a major difference between simorg containers and arrays. Please check Collector Operator in our reference book to experience how simorg takes care of collective data.
So next time you went for buying some groceries, pay attention to the queue. Isn't the queue built on top of data? How a queue can exist when there is no customer in the shop?
Using Simorg containers we create temporary placeholders in middle of our dataflow and streams. There is no indexing logic for containers as Data itself is responsible for its existence. In certain scenarios like sorting requirements, external plugins can be used. Although, simorg presented an experimental dataflow operator called Dimension Operator by which one can filter certain elements inside a collector or gate.
Languages and their implications on our thinking is a fascinating topic in history of our consciousness. There are patterns behind every language that are rooted in much deeper realities. Simorg's language is not separated from these patterns. After all, languages are the paths on which the consciousness flows so that the meaning and idea reach their destination and purpose.
Simorg's language is embracing simplicity. Being built on top of a mathematical runtime, it inherits some of the mathematical aspects of the engine. For example the concept of gates in classical logical circuits is now reformed into a collection of elements vibrating based on certain conditions. Also, the way simorg managed to remove some of the reserved keywords e.g. if, for is due to the natural flow of streams of data in the code.
Adding to the list is the way equality operator = is acquiring back its mathematical meaning which is a symbol of equality. The classical usage of = operator known as assignment no longer is needed in simorg again due to the way data is flowing in the system.
So we are not writing code to create a third party watchdog but we are writing code to give data the consciousness it needs to flow naturally. All the syntaxes that language provides are from data's point of view not from an external observer's view.
It's interesting to share that what happened in language's syntax was not intentional and it came as a result of simorg's processing model. So there was no intention to remove if, it turned out the language is even much simpler when we don't have any reserved keyword.
Simorg believes the best rule is to have no rules. Simplicity, in itself, is beautiful. The best programming languages are those that do not turn humans into machines. In other words, machine problems should be solved by machines, while the minds of artisans are too lofty to be constrained by the rules and syntax of a programming language. This philosophy is reflected not only in our language, but also in the overall architecture of the platform.
Simorg as a platform is aiming to act as a glue between agents and digital elements.
Each digital element has its own unique identity in the platform and is able to connect to others. Consider AI agents, models, 3D components, IoT devices, binaries and literally all kinds of digital elements being able to communicate and see each other using a common language and form. This is possible thanks to our mathematical representation of the universe.
Simorg's mathematical architecture is giving the technology the opportunity to shine in two different sectors. AI and Metaverse. Let's discuss a bit more about each of them.
Mathematical nature and runtime of simorg makes it possible to build hybrid applications which are benefitting from both, a classical processing model and, an AI-powered processing model.
While our application starts processing the data using classical approach, it can train a micro-model at the same time so making it possible to understand repetitive patterns that are repeating over and over again so to avoid repeating expensive processing for them and to generate the correct output using less processing power. This is our vision for future of Simorg's engine. Of course we are in early steps toward this goal but the structure of engine is promising breakthroughs in this regard.
Mathematical entities have amazing characteristics. They are extremely loosely coupled. You can shift, arrange, add, remove elements in a mathematical system with ease. Also, scalability is another aspect of any mathematical universe. The only limit is the processing and memory resources.
Having every single digital element modeled as a unique mathematical entity, represented by Fourier Transform, provides a holistic unified approach in shaping next generation digital universes. From 3D components to IoT devices, engine sees them as mathematical entities which are represented as shells able to interact with other elements using the most native language of nature, the mathematics and by emitting vibrations.
Applications that we create are a reflection of our consciousness. History of software engineering is showing an undeniable trend, our processing models are becoming more and more conscious each and every day. The race is not about processing time or performance but technologies which are providing higher level of consciousness, are the ones that lead the future.
Simorg is not separated from this trend. Focusing on data and consciousness in core layers of our technology is a direct result of this observation. Although, we are focusing on software but having an eye on hardware helps us to see the reality which is unveiling a bit slower.
Recent breakthroughs in AI are accelerating the emergence of new hardware architectures that are more and more powerful in running mathematical calculations.
Classical multi-core CPUs are acting more and more as process managers rather than doing heavy processing required by modern day applications specifically in AI and 3D environments.
Early versions of Simorg are running on CPUs but the mathematical runtime of simorg and discrete nature of its calculations is paving the way for next generation software that is going beyond the boundaries of a binary processing model. Detaching from classical software runtimes which are mostly inspired by CPU instructions we now have the opportunity to run our software in a new set of hardware in order to overcome existing limitations.
The joy of creation is embedded in the human soul, we wish simorg will be a better tool in your hands to unlock this ability. Happy creation!