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"
          }
        }
      ]
      
  • I work with something like this on a day-to-day basis. We make and production API endpoints on microservives using a largely click, drag, and fillout options style UI, using a functional language of thiers to transform data, this is all written to XML which is consumed by their engine to create a Java application that deploys into their cloud environment. We can also add custom written Java to fill in a few gaps here and there.

    It’s good for what it does, making creating API and consuming a variety of data easy. It does allow us to get down to business and start working with the design of the endpoints and manipulating the data off the bat. It’s only good at that though, it wouldn’t be any good at doing ML or creating an OS or writing a web browser Even with the stuff it’s good at, you can feel the limitations as soon as any real logic complexity is involved and it starts to cumbersome quickly.

    And I think that’s where those kind of “languages” will excel, it does this one thing that’s tedious with a lot of nittygritty boilerplate under the hood but that’s not too hard logic-wise well but that’s probably about it.

  • It’s not that they aren’t powerful enough - they are Turing complete and so can compute anything computable. But text-based programming tools have many many many many helper tools that we’ve developed over decades. Text-based programming is also more information-dense on the screen so it’s easier to keep references up to different parts of the code. Finally - it’s just a matter of adaptation - the reason keys on your keyboard are in layout they are is because 100+ year old typewriters used to get stuck more often with different layouts. And since text-based programming is an industry standard - I doubt it’ll change anytime soon.

  •  Ikita Ro   ( @Ikita_Ro@beehaw.org ) 
    link
    fedilink
    English
    2
    edit-2
    1 year ago

    I don’t think it’s super well explored yet. I’d imagine the advantage of a UI for coding would be to smooth over odd features/requirements that the programmer would otherwise have to remember to explicitly type in code. Or some level of integration that doesn’t lend itself well to text files. So maybe the first “big one” will come from a specialized use case, yea.

  • There are other ways to structure and edit programs than just a bunch of source files that we manually edit through a text editor. For instance image files as in Smalltalk. I don’t see any reason why a visual representation couldn’t succeed in this regard. The issue, imo, is that text is really nice to work with, and it would require a very nice visual editing experience to beat the text based tools we have today.

  • There already are graphical programming languages that are used in professional environments. The one I’m most familiar with is LabVIEW. In my experience, the biggest hurdle for these types of languages being used beyond teaching the basics of programming is that they go from easy to learn to cumbersome to use rapidly as the complexity of programs you create increases.

  • I would very much like to see a kind of hybrid visual+code language. I could see myself writing Rust or C++ code, having that generate visual bits, and then connecting calls and being able to drag off variable references or whatever.

    I’m a very visual programmer, and I think especially if we think VR might eventually be useful, that abstracting away the “code lives in files” nature of things would be very interesting to me.