Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is graph oriented programming?

What is GOP and does it relate to either the maths or data structure definitions of graphs?

How does it compare to aop, oop, functional, logic or other paradigms?

like image 248
Tim Matthews Avatar asked Oct 14 '22 11:10

Tim Matthews


2 Answers

I have never heard about it before, but a quick Google search seems to suggest that it is basically workflow programming, where the workflows are represented as graphs.

Actually, from what I have read, I don't understand why it's not called state machine programming or rather flowchart programming, since that seems to be basically what it's doing.

For example, this here is an example of a working program in a graph-oriented programming language (in this case Windows Workflow Foundation), taken from MSDN:Windows Workflow Foundation Example http://I.MSDN.Microsoft.Com/ee342461.image006.jpg

like image 167
Jörg W Mittag Avatar answered Oct 21 '22 08:10

Jörg W Mittag


This is a good question. For us (GraphApps), GOP is a revolutionary way of building business applications. It is using a GOP in Java (which is not totally adapted to it but that can be used in GOP), GOP patterns, best practices and graph database.

We have 2 Products in preparation: a graph oriented designer (like UML designer but much better because purely graph oriented) and a very powerful Java framework that enforces GOP to benefit from the revolution brought by this new programming paradigm.

We will probably open source our code in the coming months. GOP solves many many issues in application development. It simplifies a lot the code and enable to manage a higher level of complexity. The resuability is also greatly enhanced.

At GraphApps, we believe this is a new programming paradigm that will be bigger than OOP. It is really incredible.

[UPDATE SEP 14 2016]

Here is the definition of Graph-Oriented Programming we are giving on our website.

Graph-Oriented Programming is a new programming paradigm that defines a graph-oriented way to build software. The Graph-Oriented softwares built with this programming paradigm use (directed attributed) graph databases on the backend side.

This programming paradigm is cumulating the benefits of several other programming paradigms: object-orientation, functional programming, design by contract, rule-based programming. However, it is consistent in itself and do not need to be aware of any other programming paradigms.

This programming paradigm enables to develop long lasting business applications that do not generate technical debt. It provides a different answer to the maintenance and evolutions issues, especially for applications that must manage evolving regulations or a high number of business rules. Applications can evolve structurally without having to retest everything and migrate the data.

like image 44
orey Avatar answered Oct 21 '22 08:10

orey