In such a system, “Washington, DC” might be provided as a “symbol” in your language API, which you can manipulate to get data about the US capital Washington, DC.
>> “Washington, DC”.area
would give the area of Washington, DC.
This is something different, right?
Now, consider a Cloud Computing Service which provides API for “Real Object programming”.
So one would be able to write
max [for all state.capital.area in “United States”]
to get the state capital of The United States with the highest area.
This would increase productivity of Software Developers by several orders of magnitude.
Welcome to a new kind of programming – “Real Object Programming”!
Real Object Programming is
A form of symbolic programming where
“symbols” in your program represent real world objects and processes
with “data” extracted from the real world.
Programmers write code that attempt to simulate some part of the world we live in or create an imaginary world (e.g., in Games or Virtual Reality).
So in essence, programmers try to approach “Real Object Programming”.
But no systematic way of study or no distinctions has been made thus far.
Some areas where we see glimpses of “Real Object Programming”
- Semantic Web (Graph Database, RDF, OWL)
But the only real work thus far: Wolfram Language.
A few Features of “Real Object Programming”:
- Real Object Programming requires integrated Ontology for interoperability between different symbols (Objects, Processes).
- Use of Knowledge Ontology ensures that objects and functions from different domains work together. Each object representing real world entities is declared in the Knowledge Ontology.
- Consider, your symbol of “Washington DC” and someone else’s (from France) symbol “Paris”. If you want to make sure that a third person is able to able to write code with both “Washington DC” and “Paris”, you need a general Ontology.
- The programming model for Real Object Programming (ROP) would be different from OOP because in OOP, the class declares methods that manipulate states of the object. ROP requires that, function from one domain can work with object from another domain (the function is not declared in the class from which the object is formed).