Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

IDEs, shader editors, game design languages like Blueprint, LabVIEW are examples of mainstream tooling that aren't purely text based.


True, but I don’t think there’s a general purpose programming language whose tooling expresses source code as visual flows of data, that people would use in place of Go, Python etc.


It's not purely graphical, but MATLAB with Simulink definitely qualifies as both mainstream and general purpose from my perspective. A feature equivalent FOSS alternative would be nice though...


I've never dabbled with MATLAB or Simulink before (and I don't think I have the background to do so, at least for Simulink!) but I did just skim some of the tutorial videos.

What stood out to me was the instant feedback that's provided when the pipeline was modified; you can immediately see the ramifications of your actions.


That is exactly how LabVIEW and Blueprint are used.


But they're still specialised tools which work well in their respective domains. You wouldn't build a web API with LabVIEW.


I promise I'm not trying to pick on you here, but LabVIEW actually offers a module specifically for building web-based interfaces for your equipment (http://www.ni.com/en-us/shop/select/labview-nxg-web-module).

I'll agree that graphical languages don't seem to have caught on for general purpose programming, but some reasonably powerful ones certainly exist at this point.

Speculating as to why, I admit I have no intention of picking up a graphical language for my next project. Partly it's familiarity (I don't know what I'm missing), partly it's learning curve (expending effort when my current tools already work), and there's definitely concern about the ecosystem (manually writing bindings is never fun). There are also existing tools whose functionality overlaps to some extent - I've seen (and briefly played with) tools for some languages that will create flow diagrams from your source code. It seems like graphic-centric languages exist, but only gain widespread adoption for specific tasks that are frustrating or tedious to address without them.


When I had to suffer through LabVIEW (2009ish) my notion was that it LabVIEW-the-language might have potential to be a decent language, and that it was a shame that the only possible IDE for it (LabVIEW-the-program) was so horrible. The expensive license can't be helping mindshare, either.

(Now, that was long enough ago that I forget most of my specific opinions, and many of them are probably now outdated.)


Haha dw I'm more than happy to be proven wrong.

> I've seen (and briefly played with) tools for some languages that will create flow diagrams from your source code.

Could you share what those tools were?


I believe I was primarily using Architexa (https://github.com/i3labs/architexa), but it was a number of years ago when I was working exclusively in Java.

JetBrains also provides a few diagramming plugins, but I've never used them.

I haven't yet come across tooling that does the same for C, C++, or D. This response inspired me to take a look though, and I did find something for Python (https://stackoverflow.com/questions/45238329). Thinking about it, the instrumentation approach taken there might actually work fairly well for most systems languages assuming you don't have any dead (or rarely called) code. Graphviz could be combined with the "-finstrument-functions" GCC flag and a few supporting data structures. Templated code would be tricky to deal with though.

Edit: Just came across CppDepend (https://www.cppdepend.com/). It's proprietary, but appears to be incredibly powerful at first glance. See its dependency analysis in particular (https://www.cppdepend.com/dependenciesview).


No you would build it with Biztalk or OutSystems.


You mean like Scratch?

Everybody thinks they want that until they try it on a real non-toy problem.

https://en.m.wikipedia.org/wiki/Intentional_programming


As someone that also has a background in digital circuits tooling, I think that the problem is the spaghetti codding that usually leads to monoliths.

While on text based languages, lack of modularity is kind of hidden and only jumps at you when you try to actually change anything, on visual languages it jumps right at you when you open a project.

Ideally, anything that requires panning or zooming, should be packed into their own little reusable building block, instead many try to package as much as they can into a single screen.


> While on text based languages, lack of modularity is kind of hidden and only jumps at you when you try to actually change anything, on visual languages it jumps right at you when you open a project.

I've worked on some projects using Node RED (https://nodered.org/) and have found this to be very true. It's painfully obvious that you're in for a fun ride when the code is literally spaghetti.


No, not Scratch :P

I think programmers should be trusted to write code as text, but the IDE should in some way help visualise how data flows through the system.

Intentional programming seems interesting. Reminds me a little of BDD frameworks like Cucumber (https://cucumber.io/docs)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: