Skip to content. | Skip to navigation

Personal tools

You are here: Home / Concepts

Evolvix Concepts Overview

To keep the complexity of the Evolvix modeling language to a minimum, most of its functionality is organized around as few key concepts as possible. This is an incomplete, but growing overview.




Evolvix Concepts Publication Status Overview

Name and

Active Versioned

Brief DescriptionUseful
Naming Complexity RRv1 Overview of the many aspects of naming
(Table 1 in ANYAS paper)
DISCOVARCY PPv1 DISCOVARCY documentation style for improving code readability by spreading awareness. Go here to get downloadable flyers ready for sharing and more. Yes
BEST Names RRv1 Synonym Dialects solution to be implemented in Evolvix providing Brief, Explicit, Summarizing, and Technical, Names out of the box. Yes
POST System RRv1 Project Organization Stabilizing Tool system as defined using BEST Names. Yes
Versioning RRv1 Stabilizing Versioning System for the purpose of achieving long-term backwards compatibility Yes
TaskType MMv2 Type system for Evolvix Tasks, facilitating automated presorting of various measures of computational complexity for better distributed computing Unclear


Why publish an incomplete list of Evolvix Concepts?

The context described below will help to make the best use of the above incomplete list of Evolvix Concepts. Concepts may be published for various reasons:

  • They can often be useful far beyond the context of Evolvix (e.g. the POST system, Versioning, Naming).
  • Publication in this list is an easy way of disseminating the current state of the art that is currently under review.
  • Once a stable solution solidifies it may as well be shared for the benefit of reviewing other concepts or for documenting progress preceding major implementation phases. Evolvix is fundamentally an open source language and nothing good done for Evolvix is to be kept behind closed doors. That does not mean everything is published; ideally, bugs and inessential complexity will remain unpublished (if possible).

The table above provides an overview of Evolvix Concepts published so far with details on where to find more.


Why Evolvix Concepts?

The nemesis of all programming languages is the inessential complexity they acquire as they are being extended in order to make them more useful in the real-world by retro-fitting features that had not been built-in from the beginning. As a result, the original language design could not be simplified with these important, but yet unknown features in mind. Retrofitting usually complicates languages, because it forces users to travel with developers along a path of narrowing design options that often leaves a given retro-fitted syntax as 'the only logical choice' (given all previous constraining decisions). However, most users prefer to skip the half-course in specialized programming language archaeology - if they can help it.

To simplify the learning-curve for future users, the Flipped Programming Language Design approach was developed. It would of course be easy to simplify by rewriting all syntax rules at will, but that would not result in a recognizable and usable programing language, because it would be impossible to build code that builds on existing code in that language. Thus, the real challenge for a broadly used programming language that aims to be highly expressive and very intuitive to use is to simplify the overall design without sacrificing its long-term backwards compatibility. Such stability is particularly important for Evolvix, because Evolvix is being written in order to meet a particularly challenging goal: provide a solid foundation for the implementation of long-term stable whole-cell simulation models that provide full semantic reproducibility as envisioned by mechanistic evolutionary systems biology. This is necessary, for example for understanding and mechanistically predicting in silico, how a mouse cancer cell population will evolve within a mouse - based on a full understanding of all molecular interactions (see EvoSysBio definition elsewhere)!

Evolvix Concepts provide crystallization points for organizing such simplification. Each of them is like a 'Swiss army knife' that covers all use-cases for a given special purpose. Thus, as much as simplicity is an important goal of Evolvix development, completeness is too. This derives from the biology roots of Evolvix. As far as we know, Evolvix is the first general-purpose programming language made by biologists for biologists helping to understand biological complexity. In biology, as a first approximation it is useful to apply as a rule of thumb: "If you can think of something, it probably exists - if only as a rare exception". While completeness is thus an important value, it must be applied at the right level. Using DNA as an analogy, completeness of Evolvix syntax would mean knowing the 4 bases of DNA, exceptions and a few other organizing principles (difficult, but doable); completeness would not mean exhaustively listing all potential DNA sequences (impossible).


References for Evolvix Concepts Overview

  • Loewe L, Scheuer KS, Keel SA, Vyas V, Liblit B, Hanlon B, Ferris MC , Yin J, Dutra I, Pietsch A, Javid CG, Moog CL, Meyer J, Dresel J, McLoone B, Loberger S, Movaghar A, Gilchrist-Scott M, Sabri Y, Sescleifer D, Pereda-Zorrilla I, Zietlow A, Smith R, Pietenpol S, Goldfinger J, Atzen SL, Freiberg E, Waters NP, Nusbaum C, Nolan E, Hotz A, Kliman RM, Mentewab A, Fregien N, Loewe M  (2017) Evolvix BEST Names for semantic reproducibility across code2brain interfacesAnn. New York Acad. Sci. 1387:124-144

    A massive study of one of the hardest problems in biology and computer science that still had to be cut short after realizing why naming is an infinitely complex problem. The 21 print and 74 online pages define key concepts for Evolvix development: Code2Brain interfaces, semantic reproducibility, semantic rot, aspects of naming complexity, ontology computing, fundamental modes of computing and how they impact naming bugs. We illustrate why naming is so hard in science, why cache-invalidation is a twin-problem, and how social contracts could reduce naming costs. Introducing the Flipped Programming Language Design approach, we show why it is essential for developing Evolvix into a user-friendly long-term backwards compatible programming language that protects user investments for progress in EvoSysBio. We tested, how editors from humanities can help programmers, report a mini-survey on naming, and provide ‘naming forms’ that capture how we have been improving names for Evolvix. We apply BEST Names to develop the Project Organization Stabilizing Tool (POST) System that defines critical Evolvix infrastructure to help separate different levels of software reliability, stability, and review-rigor. POST is easily adapted and recursive (aptly formatted as a 26 page ‘POST paper in the BEST Names paper’).