As a preface, I am and have been a full time software developer as my profession; i’ve been programming for 17 years, and ive worked in some professional capacity for 8. I’ve had various positions at a variety of companies, some as a senior or major tech lead where I had large responsibilities over production code. So, I know what i’m talking about.
All of my professional coding has been text based, and nearly all of my personal projects as well (💜 rust). You can check my github if you wish to confirm.
But when I sometimes am „forced“ to work with node based programming systems (think comfyui, ue blueprint, unity shadergraph, resonite protoflux) I actually don’t find it that offensive. In fact I usually enjoy it. Sure, the learning curve is a bit steep for someone used to text based programming, and it involves a lot of using the mouse (which i know some vim user friends of mine would be very upset about) but once you get the hang of it, you can wire up full or basically nearly fully feature complete programs in just as much time as you could write them in a text based editor.
Most node based systems are purely expressional (comfy, shadergraph), and this is where I think node based programming really shines. It’s basically a system of coding fully turing complete, fully pure functional code. Sure, it can be a bit limited if it involves manipulating state, and performing loops is sometimes a hassle. But for certain applications, it’s entirely sufficient, and it’s super intuitive imo.
Some systems do involve some form of execution order (blueprint, protoflux). While this does bring node based programming „in line“ with the imperative & state based functionality of full on textual programming languages, I feel like it can be a little underspecified at times in terms of what you might want to do. I don’t believe this is a fundamental failing of node based programming however, and really I think it’s a problem that will be sorted out over time as different systems produce different solutions.
I used to all the time, and sometimes still do, hear people decrying visual programming languages as „baby’s first code“, only used by kids, script kiddies, and low code business associates who think they can get „real work“ done without a proper language. But honestly, for my money? node based programming is kinda the shit. I love it. Especially in more functional contexts, where its scope is well specified and intuitive. Being able to organize your code along an entire second dimension is actually insane for mental clarity in a lot of situations (and an optional third for protoflux), and being able to „visualize“ the program flow as a flowchart, directly in the window, is amazing for mental fluency. Not to mention, you almost never have to worry about syntax errors.
I think visual programming gets a bad rap because of the early days where languages like scratch were popular, and because of all the „low/no-code“ app development platforms that were popular in the late 2010s (which all sucked, trust me, i’ve had to work with a few of them). But node based programming honestly and genuinely seems like a viable and promising path forward for software development. I almost would hazard to say it might eventually largely displace textual programming in the far future, once effective syntax for state handling and imperative execution becomes more solidified.
submitted by /u/DynaBeast
[link] [comments]