A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | AI | AJ | AK | AL | AM | AN | AO | AP | AQ | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | @dropdown | Project | Remix Studio | FOAM | Enso (was Luna) | Red (not FoC) | DynamicLand (not FoC?) | Unison (not FoC) | Cranq (formerly flowCODE) | Yazz | Jai | ValOS (Valaa Open System) | Instadeq | Lamdu | Glance | Curv | Wasp | Kayia | Onex/Object Network | Subtext | Objective-S | Infusion | Ultorg (formerly SIEUFERD) | Parasail | Lobster | Tree Notation | LES | Hest | Hilltop | Ceptre | Freewheeling Apps | Beads | Maraca | Dark | Mech | Lynxtool | Leibniz | Unit | Mu | Teliva | Eve | Restructor | Aardappel | |
2 | Primary dev(s) | Gerd Stolpmann, Chris Vermilion, Didier Prophete, Simon Hampton, Fred Im, Tyler Lentz, Shritesh Bhattarai, Benedikt Becker, Arvind Thyagarajan | Kevin Greer | Wojciech Daniło, Marcin Kostrzewa | Nenad Rakocevic | Bret Victor, Luke Iannini | Dan Stocker | Zubair Quraishi | Jonathan Blow | Iridian Kiiskinen, Ville Ilkkala, Ilari Kajaste | Mariano Guerra, Javier Dall' Amore | Eyal Lotem, Yair Chuchem | Robbie Gleichman, Daniel Garcia | Doug Moen | Martin Sosic, Matija Sosic | David Broderick | Duncan Cragg | Jonathan Edwards | Marcel Weiher | Antranig Basman/Fluid Project | Eirik Bakke | Tucker Taft | Wouter van Oortmerssen | Breck Yunits | David Piepgrass | Ivan Reese | Dan Swirsky | Chris Martens | Kartik Agaram | Edward de Jong | Jon Whitehead | Paul Biggar, Ellen Chisa | Corey Montella | Tim Babb | Konrad Hinsen | Samuel Timbó | Kartik Agaram | Kartik Agaram | Chris Granger, Rob Attorri, Josh Cole, Corey Montella, | Wouter van Oortmerssen | Wouter van Oortmerssen | |||
3 | Unique Selling Proposition (or your elevator pitch!) | Feature-Oriented Active Modeller: A Cross-language cross-tier framework which generates many interoperable software components (features) from high-level specificaions (models). | Luna is a data processing and visualization environment built on a principle that people need an immediate connection to what they are building. It provides an ever-growing library of highly tailored, domain specific components and an extensible framework for building new ones. | A language with two levels, one for system programming, and one for general purpose programming. The system language is custom built to allow smart contracts in cryptocurrency, the general purpose language builds on the long history of Rebol, with fresh improvements, and a much wider platform span. Red is a very powerful and compact language. | Programming made tangible (edj best guess) A physical medium for thought made manifest | Code is stored not as text, but in AST form, and each unique AST is given a hash so it becomes immutable. | Visual programming language and development platform. Reduces cross-organization communication overhead related to code, and boosts productivity by shortening path between intent and implementation. | Low code tool inspired by Visual Basic: - Uses Javascript for events and actions - All code stored by Hash on the source content - Component editor built in - All aps have an embedded Sqlite database and DB schemea and data editor - Source control system built in - Most apps ( including the sqlite data) can be exported to HTML so that reports can be emailed to colleagues | No Code Data Analysis and Visualization | An experiment in creating a visual programming environment that's both powerful and easy to learn. | A language for live coding of procedurally generated art. 2D, 3D, simple interactive animations. Full colour 3D printing. Text based now, visual programming in the future. | Declarative language for building full-stack web apps faster and with less code. Frontend, backend and deployment - all in one concise DSL. | Normal people can build and share dynamic digital stuff through a peer-to-peer / decentralised architecture and animate it with accessible declarative programming. | The missing link between spreadsheets and programming languages. Visual and tangible like a spreadsheet, general purpose like a programming language. | Architecture Oriented Programming fixes the mismatch between systems and programming languages, making programs concise, expressive and fun to write, | Ultorg is a graphical user interface for relational databases. By directly manipulating query results on the screen, users can construct and modify database queries at a level of expressivensess equivalent to SQL-92. | A language that makes loops automatically parallel. By the author of one of the leading ADA compilers. | The friendlyness of Python at the speed of Rust? Bringing advanced type and lifetime inference to the masses. Initially targetting game development. | Tree Notation supports all of the semantic structures in programming—scalars, strings, lists, sets, maps, trees, scopes, expressions, statements, etc—without any syntax characters. It's a very dumb notation that simply splits a document into cells and nodes with scopes, using only spaces, newlines, and indentation. | People have learned to avoid custom text formats for data, since we've standardized on JSON and XML. Code is data too, yet every new programming language has its own incompatible notation & syntax tree. LES (stored in memory as Loyc trees) is the first step toward fixing this. It's a flexible C-like language for building DSLs, with a parser simpler than C. | A drawing tool with visual programming features. Execution happens in time and space, and the programmer-artist actively participates in execution. | High readability, low complexity. Flappy Bird in 91 lines with < 3 code elements per line on average. | Ceptre is a rule-based programming language based on a fragment of linear logic (roughly equivalent to multiset rewriting). It has a flexible user-defined type language and is designed to permit rapid prototyping of rule systems, such as game mechanics. | Apps that are easy to run, easy to modify, easy to share, run indefinitely without needing updates. Build simple apps that do one thing. When two people disagree about the boundaries of the one thing, fork. | Bugs are easy to fix because the system can run backwards as well as forwards. A language so concise and mathematically symmetrical that your specification becomes executable, Progams are reliable and transfer of code bases to new staff is a breeze because programs are comprehendable. | Dark is a holistic programming language, structured editor, and infrastructure, for building backend web services. It's for frontend, backend, and mobile engineers. | Mech is a language for developing data-driven, reactive systems like animations, games, and robots. It makes composing, transforming, and distributing data easy, allowing you to focus on the essential complexity of your work. | Pure functional programming with node+wire; using well-tested UI elements from visual effects software, plus advancements. Marketplace of code where users can share (or sell) their work. | Digital Scientific Notation: a formal language designed for encoding scientific models embedded into narrratives (as in Literate Programming). Turing-complete but not really meant for "programming". | unit is a General Purpose Visual Programming Language and Environment built with a primary focus on Developer Experience. The unit system is set to grow into a simple and approachable Web Operating System, which is sandboxed by default, enabling a new era of Software Sharing and Collaboration, unifying the currently fragmented Computer Experience. | http://futureofautomation.wikidot.com/mu | Sandboxed platform for end-user programmable apps | Structured programming with fully automatic whole program code refactoring | Graphical Concurrent Tree Rewriting: Program by example visual programming with concurrent/distributed computing. | ||||||||||
4 | Active/Dormant/Archived | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active (struggling for time) | Dormant | Active | Active | Active | Active | Active | Active | Active | Active | Active | Active | Dormant | Dormant | Archived | Archived | Archived | ||
5 | URL | https://remixlabs.com | https://github.com/kgrgreer/foam3 | https://enso.org/ | https://www.red-lang.org/ | dynamicland.org | https://www.unisonweb.org/ | cranq.io | https://yazz.com | https://www.mrphilgames.com/jai | valaa.com | https://instadeq.com/ | lamdu.org | curv3d.org | https://wasp-lang.dev/ | https://kayia.com | http://object.network | http://www.subtext-lang.org/ | https://objective.st | https://docs.fluidproject.org/infusion/development/ | https://vimeo.com/372006027 | https://adacore.github.io/ParaSail/ | http://strlen.com/lobster/ | treenotation.org | http://loyc.net/les | Private | hilltop-lang.org | https://github.com/chrisamaphone/interactive-lp Web editor prototype: http://microceptre.glitch.me/ | http://akkartik.name/freewheeling | beadslang.org | maraca-lang.org | darklang.com | mech-lang.org | lynxtool.com | http://science-in-the-digital-era.khinsen.net/#Leibniz | https://unit.md | http://akkartik.name/about | witheve.com | http://strlen.com/restructor/ | http://strlen.com/aardappel-language/ | ||||
6 | Github URL | https://github.com/kgrgreer/foam3 | https://github.com/enso-org/enso | https://github.com/red/red | https://github.com/unisonweb/unison | https://github.com/Cranq-io | https://github.com/yazz/yazz | https://github.com/valaatech/vault | github.com/lamdu/lamdu | https://github.com/rgleichman/glance/ | github.com/curv3d/curv | https://github.com/wasp-lang/wasp/ | NONE | https://github.com/DuncanCragg/ | https://gitlab.com/mpwmo/ObjectiveSmalltalk | https://github.com/fluid-project/infusion | N/A | NONE | https://github.com/aardappel/lobster | https://github.com/treenotation | https://github.com/qwertie/ecsharp | Private | https://github.com/chrisamaphone/interactive-lp | Many; see bottom of http://akkartik.name/freewheeling | https://github.com/magicmouse/beads-examples | 7 repositories, see website for links | github.com/mech-lang | https://github.com/khinsen/leibniz-pharo | https://github.com/samuelmtimbo/unit/ | https://github.com/akkartik/mu | https://github.com/akkartik/telivaKJ | https://github.com/witheve | https://github.com/aardappel/restructor | https://github.com/aardappel/aarded | ||||||||||
7 | Twitter URL (main one for you or project) | https://twitter.com/dynamicland1 https://twitter.com/worrydream | https://twitter.com/cranqio | https://twitter.com/zubairq | https://twitter.com/instadeq | twitter.com/LamduProject | https://twitter.com/wasplang | https://twitter.com/Duncan__Cragg | https://twitter.com/jonathoda | https://twitter.com/mpweiher | https://twitter.com/amb26ponder | https://twitter.com/eirikbakke | https://twitter.com/wvo | https://twitter.com/treenotation | https://twitter.com/DPiepgrass | https://twitter.com/spiralganglion | twitter.com/chrisamaphone | twitter.com/CodingFiend | https://twitter.com/darklang | twitter.com/MechLang | https://twitter.com/tr_babb | https://scholar.social/@khinsen/ | https://twitter.com/io_sammt | https://mastodon.social/@akkartik | https://twitter.com/With_Eve | https://twitter.com/wvo | https://twitter.com/wvo | |||||||||||||||||
8 | Open or commercial or mix | commercial | open | open (I think) | mix | apparently neither open nor closed: people can visit but there's no public repo; it's a non-profit, but.. | open | mix | Open source, MIT license | will be open source | open core (with potential for commercial plugins) | commercial | open | Free software | open source (Apache 2) | Open source (with plans to build additional commercial products on top) | commercial | core open, may commercialise i/o, adaptors, devices, content.. | Research prototype | Open | open | Commercial | open | open | open | open | Commercial | open | open | open | mix | open | mix | open | commercial | open | open | open; forks encouraged | open; forks encouraged | open | open | open | ||
9 | If commercial, name of company | Remix Labs | Originally developed at Google | New Byte Order Inc. | Red Foundation, et al. | non-profit | Unison computing, public benefit corp. | Cranq Ltd | Privately funded | Thekla Inc | Valaa Technologies Ltd. | gnandoo | Kayia | individual | individual | Ultorg LLC | AdaCore sponsored | individual | LunchBox Sessions | individual | individual | individual | Dark Inc | individual | VC funded (2.3 million from Andreesen/Horowitz) | individual | individual | |||||||||||||||||
10 | Team size (plz order project cols by this!) | 14+ | 12 | 8 | ~7 | ~4 | 7 | 1 full time staff (Zubair) | 4 | 3 | 3 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 full time | 1 | 1 (plus 5 artists) | 1 | 1 | 1 | 1 | 1 | 1 (project shrunk in july 2020) | 1 | 1 | 1 | 1 | 3 | 1 | 4 | 1 | 1 | |||
11 | Year project codebase started (then order project cols by this!) | 2017 | 2011 | 2018 | 2015 | 2014 | 2019 | 2013 | 2014 | 2017 | Last version started in July 2019 | 2012 | 2015 | 2016 | 2019 | 1997 | Settled on state rewriting model in 1985 Added distributed state updates in 1992 Implemented multiple times in many languages Nearest to current form gestated 2002..2009 | 2005 | 2005 | 2008 | Since 2008 (commercial since 2016) | 2009 | 2011 | 2012 | 2012 | research started 2013-ish prototyping started 2015 production started 2019 | 2014 | 2014 | 2022 | long gestation | 2017 | 2018 | 2018 | 2019 | 2020 | 2020 | 2014 | 2022 | 2016 | 2015 | 2016 | |||
12 | Countries | USA, Germany, Belgium, Chile, Spain, France | Canada | Poland | China, Europe, US, Serbia | USA | USA | UK, Hungary | Gibraltar | USA | Suomi (aka Finland) | Argentina, Portugal, Germany | Israel | USA, remote | Canada | Croatia | USA | UK | USA | Germany | Canada, UK | USA | USA | USA | USA, India | Canada | Canada | Israel | US | USA | USA | UK | USA | USA | USA | France | USA, Brazil | USA | USA | USA | USA | UK | ||
13 | Most unusual feature(s) | Near-general-purpose node & wire based visual live-reactive-programming system that exports executables to a .remix file format which can run on a single platform webcomponent. It packages an immutable row-based database along with the full runtime on the following surfaces: web, flutter android, flutter ios, native ios appclips, native ios widgets. | Unusually broad scope. Meant to solve the whole problem of software development (for certain types of software), and not just a point-solution, since no point-solution can solve the problem of the need to integrate between so many point-solutions. FOAM models are themselves modelled as FOAM models, making the system very consistent and relatively compact. | Bidirectional graphical and textual programming. You can change the graphics and it will update the code, or change the code and it will update the graphics. | A very concise notation, with great combining power. Special attention is paid to producing Crypto contracts | You work with paper on tables animated via projectors on the ceiling, that have cameras reading dots on the page which form a barcode identifying the code. | Designed to be distributed-first. Code is stored in a database, not text files. | Compiles to multiple languages Hierarchical graph Forced focus on single component & its 1st-degree children Global, indexed component repository Strong emphasis on user experience | Emailable apps: All apps have a built in SQLite database with a Rails like migration schema. All apps can be saved as HTML, which saves the SQlite database schema, AND the data. That single HTML file can be emailed around which means emailable apps | super high performance at execution time | No loops, no text entry, formula calculator, everything is draggable. | Shape programs are compiled into GPU shader code for fast preview, animation and interaction. | Generates nice code in web tech stack of your choice (currently only React, Redux, Node, Mongo). Allows extending via existing web technologies (js, html, css, ...). Not a general programming language (for now). | Works with data as an object model. Code is not stored in text files but as data, and you work with it directly in AST form. | There is no concept of an "application", it's more like a global cyberspace or metaverse. Each object is autonomous. Objects communicate through state updates. | WYSIWYG semantics: code is not a dead text fed into a black box; code is live executing data structures that are fully visible. No need for a debugger. Supports Programming by Demonstration. | Possible to overlay program designs from multiple authors using a CSS-like syntax | A single visual representation shows the structure of the current database query overlaid on its own result. To achieve this, the data model of results are extended beyond the flat tabular model of SQL, to the so-called nested relational data model. | automatic parallelization of code | Can infer static types and compile time memory management without the help of the programmer, goes further in this aspect than existing such languages. | There are no syntax characters -- no parens, no brackets, no quotation marks, etc. | LES v2 is backward-compatible with JSON. LES has no semantics, but a universal Lisp-style macro system called LeMP (Lexical Macro Processor) is built on it. Enhanced C# is an example of a programming language built upon Loyc trees (same data structure as LES) and LeMP. | Rich drawing features that the programming model emerges from. You see data flowing through your system like balls in a Rube Goldberg machine. Debug the running program by pausing, rewinding, and moving in slow motion. | Every value-associated element has a built-in event handler that is triggered when the value changes | linear logic programming and stages | Pannable, zoomable, spatial UI Browser-like box model in 50 LoC | A replacement for Javascript, Java, and Swift. Generate web apps, mobile apps, and desktop software from a single code base. Uses deduction to dramatically reduce the amount of code that needs to be written. | Compiles to native machine code. "Pure" visual language; no grammars in the interface or implementation. Heavy emphasis on design simplicity and domain agnosticism (providing small, simple, and complete set of generic primitives). | Based on term rewriting. Fully declarative. Syntax designed for embedding into prose, like mathematical notation. | Purely visual (no textual code); Automatic Graphic Layout (using physics engine); Gesture Based; Program by Drawing; | Bootstraps from machine code. Has an ugly, verbose syntax. To minimize machine code written, optimizes for good error messages rather than clean syntax. Code is designed to be run interactively rather than passively read. | You can build any app you like -- as long as it runs within a text-mode terminal. | Automatically introduces (and removes) functions to improve the quality of code (DRY abstraction). Visual environment with type and structured error feedback. | Visual/Graphical programming language based on tree rewriting (by example). Can elegantly do state & concurrency. | ||||||||||
14 | It's a programming language | yes: a visual programming language sitting atop a homegrown functional programming language | no, but it feels like one | yes | yes | Realtalk | yes | More like a markup language for dataflow graphs | Yes, but based on Javascript | yes; a greatly cleaned up C++ | yes; extends JS with a transparent ORM to global object space | yes | yes | It's a visual programming language for a subset of Haskell | yes | yes | yes | yes (Onex) | yes | yes | no, is a JS framework, but in a sense - aims to disintermediate languages | no | yes | yes | it's a syntax. you can build programming languages on top of it we call "tree languages" | No, it's a foundation for building programming languages (and DSLs, build systems, etc.) | it's a programming system | yes | yes | no; use Lua | yes | yes | yes | yes | yes | no | yes | Mu | no; use Lua | yes | yes | yes | ||
15 | It's an IDE | yes: Studio is a node-wire IDE for the authoring of software in "Mix" (the language the programmes are expressed in) | no | yes | no | kinda! | yes | yes | no | includes an IDE | yes | yes | yes | yes | no | yes | yes | yes | parts included | eventually | yes | no | no | no | no | it's a programming system | yes | no | yes | no | no | yes | yes | yes | yes | yes | Mu | for modifying existing apps: yes for creating new apps: no | yes | yes | yes | |||
16 | It's an OS | I'm not sure yet..... | no | no | no | yes | no | no | It has a scheduler and a process model. It runs multiple child NodeJS processes so that simple rogue processes do not bring the system down | no | no (wrt hardware), debatably yes (wrt applications) | no | no | no | no | no | eventually | yes | eventually | no | in a loose sense, will have "drivers" etc. | no | no | no | no | no | it's a programming system | no | no | no; works with any desktop OS | no | no | no | yes (see https://gitlab.com/cmontella/hivemind) | no | no | yes | Mu | no; works with any desktop OS | no | no | no | ||
17 | Live programming | yes | yes | yes | yes | yes | yes | yes | superfast compiler | yes | yes | yes | hopefully | yes | yes | yes | yes | yes | yes | yes | instant startup | tree languages can support | no | yes | no | no | yes | not yet | yes | yes | yes | yes | yes | no | no | yes | no | no | ||||||
18 | New "paradigm" (conceptual programming model) or using an existing one (e.g. Functional Programming, Logic Programming, FRP, OO, etc)? | probably a mix of existing ones? | Does appear to have a novel model | Yes, in that the physical objects interact with one another and Realtalk has its "wish" system and a blackboard-like state database | New paradigm: was called Functional Observer but may call it Distributed Functional Observer. An object's next state is a function of its current state and the state of peer objects it observes through links - which may be links to remote objects | |||||||||||||||||||||||||||||||||||||||
19 | Declarative or Imperative | both | both | visual direct manipulation language, bidirectional with text | imperative, kinda like LISP without parentheses | mixed? there's Lua, C, Haskell, python etc plus a state-driven assertion system and when/then triggers | mix | Imperative | imperative | both? scripts are imperative, ui is declarative | declarative | declarative with support for imperative | functional | imperative style programming in a pure functional language | declarative | declarative | Declarative | yes | yes | declarative | declarative | imperative, automatic parallelization | imperative, functional, oo, in that order | tree languages can be any | either/both | it depends | declarative with some imperative | declarative | imperative | combines declarative, imperative, deductive, and constraint-based features | visual direct manipulation + code snippets | declarative, mostly | functional | declarative | functional, imperative and declarative included | imperative | imperative | declarative | mostly functional | mostly functional | ||||
20 | static, strictly, dynamically typed, untyped | strict | Depends on target language. You can provide types for JS which are checked at runtime. Required for Java. | based on Haskell | dynamic | static, strictly | static, strictly | Untyped mostly, except for Custom Components which use typing for type hints in the editor | static, strictly | dynamic | dynamically typed | static | static | dynamic. 6 primitive types. No user defined types (they aren't needed, just as Self doesn't need classes). Statically typed subset compiles into efficient GPU shader code. | dynamic | types are syntax, "in the eye of the beholder" | static | mostly gradual | untyped, will have "type goggles" | static | static, inferred + flow sensitive specialization | tree languages can be any | any | dynamic-ish | static | strictly typed | dynamically typed | static, strongly typed with an escape hatch | static, strictly | untyped | hindley-milner | semi-statically typed (static coarse-grained typing, dynamic fine-grained) | Mu | dynamically typed | untyped | static, inferred | dynamically typed | |||||||
21 | Pure functional in whole or in part | yes | object-functional | yes | no | yes | in part | no | no | pure | yes | pure | pure functional | no | Pure functional in part: uses tree/graph rewriting so doesn't have a higher level concept of "function". | Pure functional looking in, imperative looking out. | No. Separating out state-oriented programming via storage combinators probably allows the algorithmic parts to be more pure, but that's conjecture at this point. | functional at the leaves, stateful at the core | pure | impure (has e.g. very powerful higher order function features) | tree languages can be any | any | no | in part | no | no | hyperfunctional (code compiles to a thicket of composed calls, 2 function calls per line avg) | almost | no | pure | pure | pure (the part that is functional) | no | no | no | impure | impure | |||||||
22 | Based on logic programming | no | no | no | no | no | no | no | no | no | no | yes | no | no | no, logic programming should be implementable in straightforward ways | no | unsure (perhaps in the same sense as SQL is based on first-order logic) | used to have backtracking, was removed | you can build logic tree languages | N/A | no | yes | no | kinda | no | semi | no | no | no | no | no | yes | no | no | ||||||||||
23 | Elements of constraint programming | no | no | no | no | In development so that methods can be found based on example inputs and outputs | not yet | no | no | no | yes | no | no | Yes, polymorphically. One of the goals (achieved!) was to be able to express constraint programming naturally + to abstract over it | some, via "lenses to self" | no | no | you can build constraint tree languages | N/A | no | no | no | yes, lots of constraint language used | no | yes | no | no | no | no | no | yes | no | no | |||||||||||
24 | Based on FRP | i guess a little | Supports FRP, but not a core feature | yes | no | fundamentally, but hidden | it's reactive and functional | no | no | easy-to-use mix of FRP and Elm Architecture | no | no | no | No. "FRP" is almost always incorrect terminology. Does include dataflow as an architectural style. | very loosely | unsure (not sure of the definition of FRP; Ultorg is reactive and functional, and permits set operations, but does not expose an explicit "map" type, for instance) | used to, removed | you can build frp tree languages | N/A | no | if spreadsheets are FRP, then yes (mostly), but with Eve-like code blocks instead of cells | no | no | has event model in the language | a little | no | no | yes | no | no | no | no | ||||||||||||
25 | Based on Object Oriented Paradigm? | you could certainly mimic the paradigm based on your visual programming choices | yes | based on REBOL | no | yes, Visual basic 6 | yes | yes | no | no | no | no | no | Yes. Includes OO as an architectural style, and also largely implemented via metaobject protocols. | no | no | very much optionally | you can build oo tree languages | N/A | no | no | no | no | complete opposite of OOP, no NEW or DISPOSE in language | no | no | no | no | yes | no | no | no | no | |||||||||||
26 | "State first" or "State last"? | state first | State is explicit through DAO's and Contexts. | State first (or mixed with visibility of the program printouts) | State last | State last | State first | Expressions are referentially transparent. No objects, values are immutable. But there are mutable local variables, assignments, a while statement, to support imperative programming style. | State first | State first | State and code are coequal in dev mode. State-only in user mode. | state first where appropriate. Which is often | State first | state first | state first | tree languages can be any | either/both | extremely state first | State first | state-first | state last | State first | State first | state first (considering terms as "state") | state first | State last | State last | state last | state last | |||||||||||||||
27 | Homoiconic (code and data look the same; self-modifying code) | yes | yes | yes, you can also create domain specific languages easily. | no | no | no | you can modify the code after the parsing pass, compiler gives you full ability to modify the code via an innovative feedback into the parser. | in essence; source code Media's are first class resources of the data model | no code representation, "code" is the visual representation | Hopefully will support self-modification | no | no | yes | yes | not in terms of syntax as in LISP; yes in terms of semantics | Complex object literals enable this, but it's not really a core feature | significantly | no | no | yes | yes | no | no | no | no | no self-modifying code, but you do have a fancy preprocessor with aliasing, shortcuts, compile time IF, etc. | no | yes | not currently, but likely at some point. | yes, it's terms all the way down | yes (code can be turned data and vice-versa) | no | no | yes | no | kinda, functions and data structures rewritten using same graphical rules | |||||||
28 | Target audience skill level: beginners/intermediate/advanced | intermediate, eventually ideally beginners | intermediate to advanced | all ranges | intermediate | all | all ranges | Visual Basic 6 crowd | intended for 3D game development | all ranges | all ranges | all ranges | all | tech-savvy artists & 3D printer enthusiasts | beginner and intermediate web developers | all | all ranges | beginners | intermediate | intermediate | intermediate | intermediate - advanced | all | all | artists | all ranges | all | intermediate | all ranges | intermediate | advanced | all ranges | early: non-coders. late: everyone, coders included. | intermediate, domain experts (computational science) | beginners/intermediate | intermediate | intermediate | all ranges | all ranges | beginner - intermediate | ||||
29 | Learning curve - easy to start, empower users, etc | steep to start, but widely powerful once familiar | "mostly enable easy adoption" and "empower users" | "mostly enable easy adoption" and "empower users" | give user a tactile method of interacting with the computer | "mostly enable easy adoption" and "empower users" | This is just a toy language, a fun enterprise Dev experiment some people have used to build throwaway API front ends | "mostly enable easy adoption" and "empower users" | "mostly enable easy adoption" and "empower users". tiered APIs from easy to powerful. | easy adoption | quickly empower normal people | easy adoption by casual users | "mostly enable easy adoption" and "empower users" | easy adoption (by any frequent Excel user) | a more solid Python-like experience | tree languages can target complete non-programmers (even with pen and paper) or the most power users on the planet | what is this row for? | Empower expert users | easy adoption | goal is to improve productivity of programming by a factor of 10, by eliminating most of the common errors, and ensuring all bugs are repeatable | easy adoption | for motivated users at this time | program without having to think about abstraction: copy & paste your code and let the IDE refactor it | tries to be beginner friendly by replacing variables by examples, and being graphical | ||||||||||||||||||||
30 | language programmed in | Elm / Rust / Ocaml / C / smatterings of a few others... | JS, Java, Swift | Rust and Scala | Red (itself), REBOL | Lua, Python, C, Haskell etc | Haskell | TypeScript, CranqLang | 2013 - 2016, Clojure. 2016 - present, Javascript | C++ | JS | frontend: javascript backend: elixir | Haskell | Haskell | C++ | Haskell | C | C | TypeScript/React | Objective-C and itself. | JavaScript | Java | C++ | any. host language implementations in typescript, c++, python, more in the works | C# (but have been wanting to port it elsewhere since the beginning) | CoffeeScript | designing first, then we'll see | standard ML and TypeScript | Lua | AS3, JS | typescript | Dark | rust | backend: python + llvm; front: JS/react | Pharo Smalltalk | Vanilla JavaScript (TypeScript) | C++ for OS and a tiny bootstrap of userland; then self-hosted. Can build itself without C++. | Lua | rust, js | C# | Java | |||
31 | Web-based | yes | strong web support, but not essential | no | some support | yes + CLI + IDE tooling | yes | no | currently | yes | no | not currently | next version will be | yes | yes | no | Browser based | Not "based". Identifiers are URIs and (in-process-)REST architectural style is supported natively. | fundamentally | no | no | has dedicated Wasm backend | lots of tree stuff is on the web | not specifically | yes | web-based editor in progress: http://microceptre.glitch.me/ | no | only for product delivery, development on Mac/Win | no | yes | yes | yes | no | yes | no | no | yes | no | no | |||||
32 | Development platforms supported (mac, win, linux, ios, android, web) | mac, win, web | mac, linux | mac + win + linux | mac + windows + linux + Ethereum contracts + Raspberry Pi | Linux | all (to different extent) | NodeJS, Docker, Kubernetes, or Ubuntu Snap | at least win + mac + linux | web | mac + windows + linux | mac, linux | max, linux | always-on, no dev phase | Browser | mac, linux (incl. Raspi) + win/android via GNUstep | MacOS, Windows, Linux | mac + windows + linux | win + linux + mac | any. supports pen and paper too! | any | web | mac/win/linux | windows + linux + mac | mac + win desktop, Linux (with Wine installed) | web, currently focused on generating server-side back-ends | mac + windows + linux + web | browser | linux + mac + windows | all (web) | *nix | mac, windows, linux | win (.net + wpf) | win + linux + mac | ||||||||||
33 | Output target platforms (mac, win, linux, ios, android, web client, web server, game consoles, VR/AR, embedded) | mac, web client, web server, ios, android | Java Android and server, JS web and nodejs, Swift iOS | mac + win + linux | no | Linux | anything program components support | web, and WebVR (via Aframe). AR in development | mac + win + linux + consoles | web | mac + windows | mac, linux, maybe VR in future | web | Linux PCs, bare-metal nRF52 | Browser, desktop via electron | mac, win, web via electron, some IOT via Nexus | MacOS, Windows, Linux | mac + windows + linux | win + linux + mac + ios + android + wasm/web + steamvr | tree languages run on any | almost any (via Blazor, mono, .NET Core) | web | all programs are interpreted | windows + linux + mac | web apps, mac + win desktop, Node.JS server side, Android/IOS for mobile | mac, win, web | linux backend server to support web apps | mac, win, web, embedded | anything LLVM will target | same (live environment) | all (web) | Mu | mac, windows, linux | win, possibly mono | win + linux + mac + android? | |||||||||
34 | Tools available (compiler, interpreter, debugger, lint) | visual builder, code-generator, eventually a debugger | code-generators | compiler, interpreter, not sure if debugger avail | compiler, editor, live data inspector | compiler, editor, basic debugger | live coding | at the moment "live debugging" and transpiler to JS | live coding environment | compiler | no dev outside IDE features offered "in the space" | IDE | Interpreter, compiler (arm64), CLI, embeddable frameworks, Smalltalk-style IDE, Web-Dev environment, live-graphical coding, live-GUI dev, web-server, etc. | fully visual environment; automatic visualization of nested hierarchical results; highlighting spreadsheet-like formula editor | compiler uses LLVM, debugger | compiler | compiler compilers, grammar builders, interpreters, debuggers, web frameworks, syntax highlighter generators, type checkers, etc | parsers, printers, syntax highlighting for Notepad++ and Visual Studio | live graphics environment | command-line interpreter, browser editor | N/A | transpiler, debugger in progress | compiler | interpreter and debugger integrated in editor/language | compiler | live coding | authoring system with exploration functionality | live coding | compiler; time-travel debugger | N/A | IDE + compiler | IDE + compiler | ||||||||||||
35 | Networked to the core, or provided by a library | library | networked | in core | core | library | library | in library | core | no | no | yes | to core | Self-contained distributed execution, eventually | Yes | to whatever extent JS is networked | delegates execution to external database server (PostgreSQL, MySQL, Oracle, or Microsoft SQL Server) | no | no, but would be cool for a tree language that did this! | no | no | no | not yet (until LÖVE v12 comes out) | in language | in core | yes | no | no | core | no | yes, can run distributed computations | |||||||||||||
36 | ||||||||||||||||||||||||||||||||||||||||||||
37 | ||||||||||||||||||||||||||||||||||||||||||||
38 | ||||||||||||||||||||||||||||||||||||||||||||
39 | ||||||||||||||||||||||||||||||||||||||||||||
40 | ||||||||||||||||||||||||||||||||||||||||||||
41 | ||||||||||||||||||||||||||||||||||||||||||||
42 | ||||||||||||||||||||||||||||||||||||||||||||
43 | ||||||||||||||||||||||||||||||||||||||||||||
44 | ||||||||||||||||||||||||||||||||||||||||||||
45 | ||||||||||||||||||||||||||||||||||||||||||||
46 | ||||||||||||||||||||||||||||||||||||||||||||
47 | ||||||||||||||||||||||||||||||||||||||||||||
48 | ||||||||||||||||||||||||||||||||||||||||||||
49 | ||||||||||||||||||||||||||||||||||||||||||||
50 | ||||||||||||||||||||||||||||||||||||||||||||
51 | ||||||||||||||||||||||||||||||||||||||||||||
52 | ||||||||||||||||||||||||||||||||||||||||||||
53 | ||||||||||||||||||||||||||||||||||||||||||||
54 | ||||||||||||||||||||||||||||||||||||||||||||
55 | ||||||||||||||||||||||||||||||||||||||||||||
56 | ||||||||||||||||||||||||||||||||||||||||||||
57 | ||||||||||||||||||||||||||||||||||||||||||||
58 | ||||||||||||||||||||||||||||||||||||||||||||
59 | ||||||||||||||||||||||||||||||||||||||||||||
60 | ||||||||||||||||||||||||||||||||||||||||||||
61 | ||||||||||||||||||||||||||||||||||||||||||||
62 | ||||||||||||||||||||||||||||||||||||||||||||
63 | ||||||||||||||||||||||||||||||||||||||||||||
64 | ||||||||||||||||||||||||||||||||||||||||||||
65 | ||||||||||||||||||||||||||||||||||||||||||||
66 | ||||||||||||||||||||||||||||||||||||||||||||
67 | ||||||||||||||||||||||||||||||||||||||||||||
68 | ||||||||||||||||||||||||||||||||||||||||||||
69 | ||||||||||||||||||||||||||||||||||||||||||||
70 | ||||||||||||||||||||||||||||||||||||||||||||
71 | ||||||||||||||||||||||||||||||||||||||||||||
72 | ||||||||||||||||||||||||||||||||||||||||||||
73 | ||||||||||||||||||||||||||||||||||||||||||||
74 | ||||||||||||||||||||||||||||||||||||||||||||
75 | ||||||||||||||||||||||||||||||||||||||||||||
76 | ||||||||||||||||||||||||||||||||||||||||||||
77 | ||||||||||||||||||||||||||||||||||||||||||||
78 | ||||||||||||||||||||||||||||||||||||||||||||
79 | ||||||||||||||||||||||||||||||||||||||||||||
80 | ||||||||||||||||||||||||||||||||||||||||||||
81 | ||||||||||||||||||||||||||||||||||||||||||||
82 | ||||||||||||||||||||||||||||||||||||||||||||
83 | ||||||||||||||||||||||||||||||||||||||||||||
84 | ||||||||||||||||||||||||||||||||||||||||||||
85 | ||||||||||||||||||||||||||||||||||||||||||||
86 | ||||||||||||||||||||||||||||||||||||||||||||
87 | ||||||||||||||||||||||||||||||||||||||||||||
88 | ||||||||||||||||||||||||||||||||||||||||||||
89 | ||||||||||||||||||||||||||||||||||||||||||||
90 | ||||||||||||||||||||||||||||||||||||||||||||
91 | ||||||||||||||||||||||||||||||||||||||||||||
92 | ||||||||||||||||||||||||||||||||||||||||||||
93 | ||||||||||||||||||||||||||||||||||||||||||||
94 | ||||||||||||||||||||||||||||||||||||||||||||
95 | ||||||||||||||||||||||||||||||||||||||||||||
96 | ||||||||||||||||||||||||||||||||||||||||||||
97 | ||||||||||||||||||||||||||||||||||||||||||||
98 | ||||||||||||||||||||||||||||||||||||||||||||
99 | ||||||||||||||||||||||||||||||||||||||||||||
100 |