Do you think they can be powerful enough to build production-grade applications some day or are they going to stay as educational tools or build into specific applications forever?

  • I’ve tried some and it’s less powerful, annoying, you need proprietary tools because showing graphics is way more difficult to do than writing a parser, and you can’t store your “source code” or show diffs and commit your modifications. So, unless I see one which is free and open-source and good, I don’t really believe it will happen.

    • I felt the same. I am working on a new visual programming language (will be making it open-source) as a side project to kill time. I want it to be able to write any generic code. But I suck at front-end development so I was wondering if anyone would be interested in collaborating.

      What I’m building can’t show diffs or do commits (yet, these are good ideas), but you can extract the source code, share it and run it somewhere else.

      The current state of the project is

      • It supports Int, String, Float, and Bool types
      • Arithmetic operations are supported
      • Variables can be assigned and used I am currently working on implementing Lists and Flow control (if/else and loops)

      My vision(?) for this is to be a good place to learn and continue programming while also making it easy for the user to transition to a normal programming language like Java or Python. For the latter I am trying to achieve this by using very similar and in most cases, the exact same terminology and concepts for the design of the language.

      I don’t have a UI yet, but this is what the API call and the exported source code will look like

      [
        {
          "description": "a = Int",
          "type": "Assignment",
          "name": "a",
          "value": {
            "type": "Int",
            "value": 30
          }
        },
        {
          "description": "b = Int",
          "type": "Assignment",
          "name": "b",
          "value": {
            "type": "Int",
            "value": 40
          }
        },
        {
          "description": "a + b",
          "type": "Plus",
          "left": {
            "type": "DefinedVariable",
            "name": "a"
          },
          "right": {
            "type": "DefinedVariable",
            "name": "b"
          }
        }
      ]