Statebox: A Universal Language of Distributed Systems

guest post by Christian Williams

A short time ago, on the Croatian island of Zlarin, there gathered a band of bold individuals—rebels of academia and industry, whose everyday thoughts and actions challenge the separations of the modern world. They journeyed from all over to learn of the grand endeavor of another open mind, an expert functional programmer and creative hacktivist with significant mathematical knowledge: Jelle |yell-uh| Herold.

The Dutch computer scientist has devoted his life to helping our species and our planet: from consulting in business process optimization to winning a Greenpeace hackathon, from updating Netherlands telecommunications to creating a website to determine ways for individuals to help heal the earth, Jelle has gained a comprehensive perspective of the interconnected era. Through a diverse and innovative career, he has garnered crucial insights into software design and network computation—most profoundly, he has realized that it is imperative that these immense forces of global change develop thoughtful, comprehensive systematization.

Jelle understood that initiating such a grand ambition requires a massive amount of work, and the cooperation of many individuals, fluent in different fields of mathematics and computer science. Enter the Zlarin meeting: after a decade of consideration, Jelle has now brought together proponents of categories, open games, dependent types, Petri nets, string diagrams, and blockchains toward a singular end: a universal language of distributed systems—Statebox.

Statebox is a programming language formed and guided by fundamental concepts and principles of theoretical mathematics and computer science. The aim is to develop the canonical process language for distributed systems, and thereby elucidate the way these should actually be designed. The idea invokes the deep connections of these subjects in a novel and essential way, to make code simple, transparent, and concrete. Category theory is both the heart and pulse of this endeavor; more than a theory, it is a way of thinking universally. We hope the project helps to demonstrate the importance of this perspective, and encourages others to join.

The language is designed to be self-optimizing, open, adaptive, terminating, error-cognizant, composable, and most distinctively—visual. Petri nets are the natural representation of decentralized computation and concurrency. By utilizing them as program models, the entire language is diagrammatic, and this allows one to inspect the flow of the process executed by the program. While most languages only compile into illegible machine code, Statebox compiles directly into diagrams, so that the user immediately sees and understands the concrete realization of the abstract design. We believe that this immanent connection between the “geometric” and “algebraic” aspects of computation is of great importance.

Compositionality is a rightfully popular contemporary term, indicating the preservation of type under composition of systems or processes. This is essential to the universality of the type, and it is intrinsic to categories, which underpin the Petri net. A pertinent example is that composition allows for a form of abstraction in which programs do not require complete specification. This is parametricity: a program becomes executable when the functions are substituted with valid terms. Every term has a type, and one cannot connect pieces of code that have incompatible inputs and outputs—the compiler would simply produce an error. The intent is to preserve a simple mathematical structure that imposes as little as possible, and still ensure rationality of code. We can then more easily and reliably write tools providing automatic proofs of termination and type-correctness. Many more aspects will be explained as we go along, and in more detail in future posts.

Statebox is more than a specific implementation. It is an evolving aspiration, expressing an ideal, a source of inspiration, signifying a movement. We fully recognize that we are at the dawn of a new era, and do not assume that the current presentation is the best way to fulfill this ideal—but it is vital that this kind of endeavor gains the hearts and minds of these communities. By learning to develop and design by pure theory, we make a crucial step toward universal systems and knowledge. Formalisms are biased, fragile, transient—thought is eternal.

Thank you for reading, and thank you to John Baez—|bi-ez|, some there were not aware—for allowing me to write this post. Azimuth and its readers represent what scientific progress can and should be; it is an honor to speak to you. My name is Christian Williams, and I have just begun my doctoral studies with Dr. Baez. He received the invitation from Jelle and could not attend, and was generous enough to let me substitute. Disclaimer: I am just a young student with big dreams, with insufficient knowledge to do justice to this huge topic. If you can forgive some innocent confidence and enthusiasm, I would like to paint a big picture, to explain why this project is important. I hope to delve deeper into the subject in future posts, and in general to celebrate and encourage the cognitive revolution of Applied Category Theory. (Thank you also to Anton and Fabrizio for providing some of this writing when I was not well; I really appreciate it.)

Statebox Summit, Zlarin 2017, was awesome. Wish you could’ve been there. Just a short swim in the Adriatic from the old city of Šibenik |shib-enic|, there lies the small, green island of Zlarin |zlah-rin|, with just a few hundred kind inhabitants. Jelle’s friend, and part of the Statebox team, Anton Livaja and his family graciously allowed us to stay in their houses. Our headquarters was a hotel, one of the few places open in the fall. We set up in the back dining room for talks and work, and for food and sunlight we came to the patio and were brought platters of wonderful, wholesome Croatian dishes. As we burned the midnight oil, we enjoyed local beer, and already made history—the first Bitcoin transaction of the island, with a progressive bartender, Vinko.

Zlarin is a lovely place, but we haven’t gotten to the best part—the people. All who attended are brilliant, creative, and spirited. Everyone’s eyes had a unique spark to light. I don’t think I’ve ever met such a fascinating group in my life. The crew: Jelle, Anton, Emi Gheorghe, Fabrizio Genovese, Daniel van Dijk, Neil Ghani, Viktor Winschel, Philipp Zahn, Pawel Sobocinski, Jules Hedges, Andrew Polonsky, Robin Piedeleu, Alex Norta, Anthony di Franco, Florian Glatz, Fredrik Nordvall Forsberg. These innovators have provocative and complementary ideas in category theory, computer science, open game theory, functional programming, and the blockchain industry; and they came to share an important goal. These are people who work earnestly to better humanity, motivated by progress, not profit. Talking with them gave me hope, that there are enough intelligent, open-minded, and caring people to fix this mess of modern society. In our short time together, we connected—now, almost all continue to contribute and grow the endeavor.

Why is society a mess? The present human condition is absurd. We are in a cognitive renaissance, yet our world is in peril. We need to realize a deeper harmony of theory and practice—we need ideas that dare to dream big, that draw on the vast wealth of contemporary thought to guide and unite subjects in one mission. The way of the world is only a reflection of how we choose to think, and for more than a century we have delved endlessly into thought itself. If we truly learn from our thought, knowledge and application become imminently interrelated, not increasingly separate. It is imperative that we abandon preconception, pretense and prejudice, and ask with naive sincerity: “How should things be, really, and how can we make it happen?”

This pertains more generally to the irresponsibly ad hoc nature of society—we find ourselves entrenched in inadequate systems. Food, energy, medicine, finance, communications, media, governance, technology—our deepening dependence on centralization is our greatest vulnerability. Programming practice is the perfect example of the gradual failure of systems when their design is left to wander in abstraction. As business requirements evolved, technological solutions were created haphazardly, the priority being immediate return over comprehensive methodology, which resulted in ‘duct-taped’ systems, such as the Windows OS. Our entire world now depends on unsystematic software, giving rise to so much costly disorganization, miscommunication, and worse, bureaucracy. Statebox aims to close the gap between the misguided formalisms which came out of this type of degeneration, and design a language which corresponds naturally to essential mathematical concepts—to create systems which are rational, principled, universal. To explain why Statebox represents to us such an important ideal, we must first consider its closest relative, the elephant in the technological room: blockchain.

Often the best ideas are remarkably simple—in 2008, an unknown person under the alias Satoshi Nakamoto published the whitepaper Bitcoin: A Peer-to-Peer Electronic Cash System. In just a few pages, a protocol was proposed which underpins a new kind of computational network, called a blockchain, in which interactions are immediate, transparent, and permanent. This is a personal interpretation—the paper focuses on the application given in its title. In the original financial context, immediacy is one’s ability to directly transact with anyone, without intermediaries, such as banks; transparency is one’s right to complete knowledge of the economy in which one participates, meaning that each node owns a copy of the full history of the network; permanence is the irrevocability of one’s transactions. These core aspects are made possible by an elegant use of cryptography and game theory, which essentially removes the need for trusted third parties in the authorization, verification, and documentation of transactions. Per word, it’s almost peerless in modern influence; the short and sweet read is recommended.

The point of this simplistic explanation is that blockchain is about more than economics. The transaction could be any cooperation, the value could be any social good—when seen as a source of consensus, the blockchain protocol can be expanded to assimilate any data and code. After several years of competing cryptocurrencies, the importance of this deeper idea was gradually realized. There arose specialized tools to serve essential purposes in some broader system, and only recently have people dared to conceive of what this latter could be. In 2014, a wunderkind named Vitalik Buterin created Ethereum, a fully programmable blockchain. Solidity is a Turing-complete language of smart contracts, autonomous programs which enable interactions and enact rules on the network. With this framework, one can not only transact with others, but implement any kind of process; one can build currencies, websites, or organizations—decentralized applications, constructed with smart contracts, could be just about anything.

There is understandably great confidence and excitement for these ventures, and many are receiving massive public investment. Seriously, the numbers are staggering—but most of it is pure hype. There is talk of the first global computer, the internet of value, a single shared source of truth, and other speculative descriptions. But compared to the ambition, the actual theory is woefully underdeveloped. So far, implementations make almost no use of the powerful ideas of mathematics. There are still basic flaws in blockchain itself, the foundation of almost all decentralized technology. For example, the two viable candidates for transaction verification are called Proof of Work and Proof of Stake: the former requires unsustainable consumption of resources, namely hardware and electricity, and the latter is susceptible to centralization. Scalability is a major problem, thus also cost and speed of transactions. A major Ethereum dApp, Decentralized Autonomous Organization, was hacked.

These statements are absolutely not to disregard all of the great work of this community; it is primarily rhetoric to distinguish the high ideals of Statebox, and I lack the eloquence to make the point diplomatically, nor near the knowledge to give a real account of this huge endeavor. We now return to the rhetoric.

What seems to be lost in the commotion is the simple recognition that we do not yet really know what we should make, nor how to do so. The whole idea is simply too big—the space of possibility is almost completely unknown, because this innovation can open every aspect of society to reform. But as usual, people try to ignore their ignorance, imagining it will disappear, and millions clamor about things we do not yet understand. Most involved are seeing decentralization as an exciting business venture, rather than our best hope to change the way of this broken world; they want to cash in on another technological wave. Of the relatively few idealists, most still retain the assumptions and limitations of the blockchain.

For all this talk, there is little discussion of how to even work toward the ideal abstract design. Most mathematics associated to blockchain is statistical analysis of consensus, while we’re sitting on a mountain of powerful categorical knowledge of systems. At the summit, Prof. Neil Ghani said “it’s like we’re on the Moon, talking about going to Mars, while everyone back on Earth still doesn’t even have fire.” We have more than enough conceptual technology to begin developing an ideal and comprehensive system, if the right minds come together. Theory guides practice, practice motivates theory—the potential is immense.

Fortunately, there are those who have this big picture in mind. Long before the blockchain craze, Jelle saw the fundamental importance of both distributed systems and the need for academic-industrial symbiosis. In the mid-2000’s, he used Petri nets to create process tools for businesses. Employees could design and implement any kind of abstract workflow to more effectively communicate and produce. Jelle would provide consultation to optimize these processes, and integrate them into their existing infrastructure—as it executed, it would generate tasks, emails, forms and send them to designated individuals to be completed for the next iteration. Many institutions would have to shell out millions of dollars to IBM or Fujitsu for this kind of software, and his was more flexible and intuitive. This left a strong impression on Jelle, regarding the power of Petri nets and the impact of deliberate design.

Many experiences like this gradually instilled in Jelle a conviction to expand his knowledge and begin planning bold changes to the world of programming. He attended mathematics conferences, and would discuss with theorists from many relevant subjects. On the island, he told me that it was actually one of Baez’s talks about networks which finally inspired him to go for this huge idea. By sincerely and openly reaching out to the whole community, Jelle made many valuable connections. He invited these thinkers to share his vision—theorists from all over Europe, and some from overseas, gathered in Croatia to learn and begin to develop this project—and it was a great success.

By now you may be thinking, alright kid spill the beans already. Here they are, right into your brain—well, most will be in the next post, but we should at least have a quick overview of some of the main ideas not already discussed.

The notion of open system complements compositionality. The great difference between closure and openness, in society as well as theory, was a central theme in many of our conversations during the summit. Although we try to isolate and suspend life and cognition in abstraction, the real, concrete truth is what flows through these ethereal forms. Every system in Statebox is implicitly open, and this impels design to idealize the inner and outer connections of processes. Open systems are central to the Baez Network Theory research team. There are several ways to categorically formalize open systems; the best are still being developed, but the first main example can be found in The Algebra of Open and Interconnected Systems by Brendan Fong, an early member of the team.

Monoidal categories, as this blog knows well, represent systems with both series and parallel processes. One of the great challenge of this new era of interconnection is distributed computation—getting computers to work together as a supercomputer, and monoidal categories are essential to this. Here, objects are data types, and morphisms are computations, while composition is serial and tensor is parallel. As Dr. Baez has demonstrated with years of great original research, monoidal categories are essential to understanding the complexity of the world. If we can connect our knowledge of natural systems to social systems, we can learn to integrate valuable principles—a key example being complete resource cognizance.

Petri nets are presentations of free strict symmetric monoidal categories, and as such they are ideal models of “normal” computation, i.e. associative, unital, and commutative. Open Petri nets are the workhorses of Statebox. They are the morphisms of a category which is itself monoidal—and via openness it is even richer and more versatile. Most importantly it is compact closed, which introduces a simple but crucial duality into computation—input-output interchange—which is impossible in conventional cartesian closed computation, and actually brings the paradigm closer to quantum computation

Petri nets represent processes in an intuitive, consistent, and decentralized way. These will be multi-layered via the notion of operad and a resourceful use of Petri net tokens, representing the interacting levels of a system. Compositionality makes exploring their state space much easier: the state space of a big process can be constructed from those of smaller ones, a technique that more often than not avoids state space explosion, a long-standing problem in Petri net analysis. The correspondence between open Petri nets and a logical calculus, called place/transition calculus, allows the user to perform queries on the Petri net, and a revolutionary technique called information-gain computing greatly reduces response time.

Dependently typed functional programming is the exoskeleton of this beautiful beast; in particular, the underlying language is Idris. Dependent types arose out of both theoretical mathematics and computer science, and they are beginning to be recognized as very general, powerful, and natural in practice. Functional programming is a similarly pure and elegant paradigm for “open” computation. They are fascinating and inherently categorical, and deserve whole blog posts in the future.

Even economics has opened its mind to categories. Statebox is very fortunate to have several of these pioneers—open game theory is a categorical, compositional version of game theory, which allows the user to dynamically analyze and optimize code. Jules’ choice of the term “teleological category” is prescient; it is about more than just efficiency—it introduces the possibility of building principles into systems, by creating game-theoretical incentives which can guide people to cooperate for the greater good, and gradually lessen the influence of irrational, selfish priorities.

Categories are the language by which Petri nets, functional programming, and open games can communicate—and amazingly, all of these theories are unified in an elegant representation called string diagrams. These allow the user to forget the formalism, and reason purely in graphical terms. All the complex mathematics goes under the hood, and the user only needs to work with nodes and strings, which are guaranteed to be formally correct.

Category theory also models the data structures that are used by Statebox: Typedefs is a very lightweight—but also very expressive—data structure, that is at the very core of Statebox. It is based on initial F-algebras, and can be easily interpreted in a plethora of pre-existing solutions, enabling seamless integration with existing systems. One of the core features of Typedefs is that serialization is categorically internalized in the data structure, meaning that every operation involving types can receive a unique hash and be recorded on the blockchain public ledger. This is one of the many components that make Statebox fail-resistant: every process and event is accounted for on the public ledger, and the whole history of a process can be rolled back and analyzed thanks to the blockchain technology.

The Statebox team is currently working on a monograph that will neatly present how all the pertinent categorical theories work together in Statebox. This is a formidable task that will take months to complete, but will also be the cleanest way to understand how Statebox works, and which mathematical questions have still to be answered to obtain a working product. It will be a thorough document that also considers important aspects such as our guiding ethics.

The team members are devoted to creating something positive and different, explicitly and solely to better the world. The business paradigm is based on the principle that innovation should be open and collaborative, rather than competitive and exclusive. We want to share ideas and work with you. There are many blooming endeavors which share the ideals that have been described in this article, and we want them all to learn from each other and build off one another.

For example, Statebox contributor and visionary economist Viktor Winschel has a fantastic project called Oicos. The great proponent of applied category theory, David Spivak, has an exciting and impressive organization called Categorical Informatics. Mike Stay, a past student of Dr. Baez, has started a company called Pyrofex, which is developing categorical distributed computation. There are also somewhat related languages for blockchain, such as Simplicity, and innovative distributed systems such as Iota and RChain. Even Ethereum is beginning to utilize categories, with Casper. And of course there are research groups, such as Network Theory and Mathematically Structured Programming, as well as so many important papers, such as Algebraic Databases. This is just a slice of everything going on; as far as I know there is not yet a comprehensive account of all the great applied category theory and distributed innovations being developed. Inevitably these endeavors will follow the principle they share, and come together in a big way. Statebox is ready, willing, and able to help make this reality.

If you are interested in Statebox, you are welcomed with open arms. You can contact Jelle at jelle@statebox.io, Fabrizio at fabrizio@statebox.org, Emi at emi@statebox.io, Anton at anton@statebox.io; they can provide more information, connect you to the discussion, or anything else. There will be a second summit in 2018 in about six months, details to be determined. We hope to see you there. Future posts will keep you updated, and explain more of the theory and design of Statebox. Thank you very much for reading.

P.S. Found unexpected support in Šibenik! Great bar—once a reservoir.

25 Responses to Statebox: A Universal Language of Distributed Systems

  1. I remember https://en.wikipedia.org/wiki/Prograph from the ’80s, another programming language based on diagrams. I doubt it was as categorically-minded (certainly I didn’t notice then).

    • Viktor says:

      I guess there are many approaches to visual programming languages but string diagrams are unique in that they are a formal algebraic language in itself, see for example Peter’s survey. More to the point of a programming language, there is Dusko’s monoidal computer I and II and III which is meant as a high-level programming language for theoretical computer science and computability theory using string diagrams.

      • Christian Williams says:

        Thank you Viktor; these are great resources. Perhaps this is too big a question, but it may be good to have here – what are some of the main distinctions between Statebox and Oicos, and how can they build off each other?

        • Viktor says:

          OICOS is meant to be a social engine, like SpatialOS by Improbable strives to be. However, SpatialOS for example is only a simulation (and not symbolic) engine without any foundation in social sciences. OICOS is rooted in economics and is aiming at a language for game theory, economics and social systems in general. Theoretically, we are thinking about a social engine to implement what we call a social stack: institutions (rules of the game), games (strategically interacting agents), networks (parallel processes), accounting (generalised double entry accounting), data (categorical databases), computing (VM, potentially Dusko’s monoidal computer) are the layers of a “SAP for societies”. In this stack you see the interface: OICOS is about institutions and games while Statebox is about networks and both languages need an accounting, data and computing layer. Statebox provides the networks engine while OICOS the games engine. For the blockchain applications of Statebox games might become most of all smart contracts. However, games can be much more (see below the examples in my answer to jscheidtmann).

    • Jelle says:

      Hey Allen, thanks for the comment!

      There have been lots of softwares trying to do this kind of thing, but without categorical foundations it typically becomes a very application specific; we are trying to avoid this.

  2. John Baez says:

    This stuff sounds very cool, but what I really want to know is: what’s happening now? Maybe future posts will discuss this in more detail?

    • Christian Williams says:

      There will be a post! Right now I’ll work on compiling a summary; to answer sufficiently I need to talk with Jelle. Perhaps he can comment here. Stay tuned!

    • Hey John!

      At the moment we are drafting a monograph with all the mathematical structure we are going to use spelled out. The goal of the monograph is basically to explain how the following mathematical theories:
      – Open Petri Nets
      – Petri Calculus
      – Information-gain computing
      – String diagrams
      – F-Algebras and Categorical Data Structures
      – Open Games
      – Operads
      – (maybe more)
      Interact together in the statebox infrastructure. We think we have enough material now and we are working to make it readable. Hopefully the monograph – or a big chunk of it, at least – will be publicly available in a few months. We will keep everyone updated!

  3. Łukasz Lew says:

    Is the ‘operad’ link correct? ‘operad’ does not seem to be mentioned on the destination webpage.

  4. Bob Haugen says:

    Is it accurate to interpret category morphisms and their inputs, outputs, and interconnections, as resource transfers and transformations in physical networks?

    For example, I quote from John Baez’s “Physics, Topology, Logic and Computation: A Rosetta Stone”, interpolating ascii diagrams for the originals:

    [In] the ‘typed’ lambda calculus,…every term has a type. This idea is also fundamental to category theory, where every morphism is like a black box with input and output wires of specified types:

    -X->(f)-Y->

    and it makes no sense to hook two black boxes together unless the output of the first has the same type as the input of the next:”

    -X->(f)-Y->(g)-Z->

    Our resource flow models in https://www.valueflo.ws/ are shaped exactly like that, and have similar rules. They are input->process->output models where the output of one process may be connected as an input to another process if the resource types match.

    Does this seem to be a valid mapping? Or am I over-interpreting and seeing what I want to see?

    • Christian Williams says:

      Yes, that’s correct! The Rosetta is a great exposition of some of the profoundly deep connections we are discovering. If we can comprehend physics, topology, logic, and computation, then why not society?

      Thank you for your resource! This looks like a really interesting project. What is the story; how did this start, and what do you envision for the idea as a whole?

      • Bob Haugen says:

        Christian, thank you for your confirming reply and your interest in our project. It is one of a series of related projects. Here’s a short version of the background:
        https://github.com/django-rea/rea-app/wiki

        We have a new potential project that is provisionally titled “Accounting for Planetary Survival” which I would like to have a good mathematical foundation. Thus my interested in following this gang of category theorists as they explore networks.

        what do you envision for the idea as a whole?

        We are grandiose. We want to develop a new and better economic system. Why not?

        But we do it by a series of participatory action research project with live networks that also want to do that, so we can figure out what works and what doesn’t.

    • Viktor says:

      Hi Bob, I have looked at valueflo.ws and it seems that your project in general fits well into our semantical approach to economics. You might want to have a look at our work on categorical games. But we also have much broader economic concepts in scope, see some of the texts at oicos. Concretely, your valueflows concepts as RDF triples might be located in the data layer of our social stack (institutions, games, networks, accounting, data, computing) implementing social systems: see p. 21 in the categorical databases where RDF triples are produced by some Grothendieck construction. However, getting concepts right on the natural language layer, connect it to (categorical) formalisations of economic theory and RDF triples is an important part of our interdisciplinary work.

      • Bob Haugen says:

        Viktor, thank you very much for the links. I will study them. I’m way behind in category theory, though, so am trying catch up in many dimensions.

        But yes, we are also working on a semantic approach to economics, and I am gaining confidence that collaborating with this group will speed the plow.

        We are also working on an Economic Agent App that should be usable in many contexts that can either use the same vocabulary or use a vocabulary translator, which we are also working on. I’ll be looking at your links to see if I think it would be usable in your context.

  5. Site Title says:

    […] nearly on a daily basis. A sign for impending change? I feel the need to diversify here. Words: https://johncarlosbaez.wordpress.com/2018/01/22/statebox-a-universal-language-of-distributed-systems… […]

  6. jscheidtmann says:

    tl;dr
    Where‘s the tutorial? Where‘s the download?

    Success of a programming language does not come from cool concepts it is based on, it comes from solving a relevant problem for a relevant chunk of developers (with your definitions of „relevant“s, of course).

    So which problem does this language make easy to solve?

    • Christian Williams says:

      Well, I think your response involves some assumptions which are precisely the kind we are challenging. Incremental improvement to specific problems is an essential aspect of progress – but the basic reason for the unsystematic nature of modern software is simply because too few keep in mind “the big picture.”

      Those who do come forward with a vision – if they are met only with skepticism, judgements of naivete or insubstantiality, and indifference to unrealized ideas, then we continue to condemn ourselves to the apathetic status quo, drifting off into oblivion. — Generally this reaction is because we build up grandiose standards for the kind of genius we imagine it would take to fix everything we know to be wrong; but this is ultimately just an excuse for not thinking big ourselves. There is no savior, and it is destructive to compare dreamers to such ideals. It will take everyone.

      We can no longer afford such a dysfunctional relationship between theory and practice. Practice fulfils theory, and theory guides practice – the great challenge is simply that in their distinction is everything we do not yet know, yet they must be unified. Both must hold their convictions, but far from disregard they must embrace and uplift one another; they can only really develop together. I honestly believe that this is the crux of whether our species will flourish or fade away.

      If this does not receive your empathy, that’s alright. Quite a few concrete problems were proposed solutions in the article, and as stated they will be more thoroughly explained in future posts. I know this reply is overkill, but it is for many related “idealism vs realism” miscommunications. I appreciate your response. Thank you for reading and participating.

      • Christian Williams says:

        Sorry, still in dramatic-writing mode…

        tl;dr – Ideas are not always reducible to the problems they solve, and the concepts on which ideas are based matter very much. This is not “we will improve some well-established industry in the following ways” or “check out this programming language” – it is “there is a vast new space of possibility that we do not understand; here are our ideas so far; so theorists, please join us in working towards the systematization of distributed systems, otherwise we will continue to make the same old mistakes in the new era.” The spiel may sound grand, but our position is humble.

    • jscheidtmann, I agree with you completely. Fortunately, we have an answer:

      The Statebox language will have the following, peculiar features:
      – Being heavily based on category theory it is functional in nature, something that will make easier to write correct code;
      – It will use a combination of Petri nets and string diagrams to allow developers to write concurrent, decentralized software in a modular way;
      – The direct link between diagrammatic languages and the underlying theories we are using gives to the developer the possibility to switch from “code” to “visual debug” in terms of boxes/wires and/or Petri nets in real time.
      This is very useful since the developer will be able to use his/her geometrical intuition to check if what is being done is right;
      – The use of a decentralized archive of data structures (It’s vague, I know, but there will soon be more info about this) will give the developer the possibility to incorporate libraries of other programming languages into Statebox. This makes our language very useful to develop complex projects that can be core, front-end related or blockchain related, without having to wait ages for suitable libraries to come out;
      – In general, Statebox is particularly useful when it comes to develop complex projects that have to be failsafe. One good example is the development of smart contracts, that needs to be absolutely reliable if one doesn’t want to burn millions of dollars just pressing the wrong button.

      If you are skeptical for the moment, I perfectly understand your point of view. We would be more than glad to keep in touch with you so that when we can be a bit more descriptive about “what’s going on” you’ll know!

  7. Viktor says:

    This is an important question. I can only speak for OICOS and our games language (but I think Jelle would mostly agree): The problems where OICOS started off have been monetary models for decisions on central banking policy as they are used in central banks. My PhD work produced JBendge for machine learning of model classes used in the ECB, the FED and the like. In order to arrive at a DSL for that we needed to generalise game theory and economics and understand the needed math first. In my original application of optimal currency areas, for example for the question of whether eastern European countries should join the Euro, I processed about 6000 time series (about 50 years of data), i.e. macro economic variables of about 30 countries. If one would write a full economic model for that it would amount to hierarchical layers of networks (workers, companies, production sectors, countries, regions, central banks, …) and full of strategic games and decisions. You could program that in Fortran, Matlab or Java (as I did) or you could step back and think about a DSL for games (as I did after I realised that there is Lisp, Prolog or Haskell and the Y-combinator…). By now the project developed into a DSL for a social engine (see my answer above what a social engine is meant to be) and projects are like: energy networks (auctions, strategic players like energy producers and consumers, batteries, …) of huge sizes (7 network layers for all of Germany or 16 subnetworks with 100.000s of households in Norway). Another project are self-organisational structures for the management of public goods like the Nobel prized work of Elinor Ostrom for example against overfishing in the north Atlantic by Dutch boats / fishing factories. This involves complex auctions, mechanism and institutional design issues. The bottom line: downloads and tutorials are to come, by now tutorials are scientific papers. Regarding the developers: we are working hard to finance them by working in industry and convincing people that we can solve problems with this general approach or at least the knowledge about categories, semantics and DSLs in the background. However, there is of course not only theory in terms of semantics via categories but also down to earth numerics, clouds, deployment issues and the like which makes all of our project into something really complicated especially since economists (most of them) do not get what we want and computer scientists are (too often) reluctant to read the non-mathematical economic literature and often start with the (broken or insufficient) mathematical approach of standard economics. The original economic issues as we understand it should be based on the modern mathematics of formal semantics in programming language design. However, interdisciplinary work is complex (translations of concepts … categories :-) and it simply takes a lot of time. However, the need for a formal semantics is why Jelle and me and Statebox and Oicos met: because we came to this same conclusion that we need category theory (process orientation) regarding the mathematical foundations for languages and mathematics useful for social systems.

    • Viktor says:

      Ups, sorry, that I have placed this comment into the general hierarchy. It was meant to answer jscheidtmann’s question “jscheidtmann says:
      23 January, 2018 at 7:45 pm
      tl;dr
      Where‘s the tutorial? Where‘s the download?
      …”

    • Bob Haugen says:

      Viktor, besides the vocabulary we are developing in the ValueFlows project, you might want to look at the work that Bill McCarthy and the REA (Resource, Event, Agent) community are doing with accounting and economic standards, collaboration spaces, and blockchains. Here’s a recent slide deck from a presentation to the American Accounting Association:
      https://drive.google.com/file/d/0BxlqOeaPnXHfTkpPRlFNbzcxR0k/view

      That work was a big influence on ValueFlows, but is also interesting in its own right.

      Here’s Bill’s website: https://msu.edu/~mccarth4/

  8. Jade Master and I have nearly finished a paper on open Petri nets, and it should appear on the arXiv soon. I’m excited about this, especially because our friends at Statebox are planning to use open Petri nets in their software. They’ve recently come out with a paper too:

    • Fabrizio Romano Genovese and Jelle Herold, Executions in (semi-)integer Petri nets are compact closed categories.

You can use Markdown or HTML in your comments. You can also use LaTeX, like this: $latex E = m c^2 $. The word 'latex' comes right after the first dollar sign, with a space after it.

This site uses Akismet to reduce spam. Learn how your comment data is processed.