Hacker News new | past | comments | ask | show | jobs | submit login

My brain just seems to prefer having a tool to reach for with a clear purpose. For me, availability of a thing that does what I want is generally the difference between being able to do it or not. I've tried learning to code on my own, but I always hit a "now what?" situation since the available tools for the things I make are already better than I have any interest in improving on. I'm not a programmer by interest and don't foresee ever being one by trade.

I wrote some words on the topic: https://kyefox.com/2022/08/05/learn-to-code-or-dont/

Node editors like Blender's are the best thing for me: you get all the tools, but they're composable with other tools. Your hammer can be a screwdriver. Worst case, I need a new tool no one's figured out how to make with nodes, but odds are someone already wrote that code as a plugin. Looping back to the "now what" issue: it already exists in a state beyond anything I could get up the motivation to improve on.




Thanks for this comment, I find that a really interesting perspective. I'm the exact opposite -- I'm comfortable with code, and always find node editors really awkward to use (but I definitely feel I'm missing something because they're undeniably super productive in many situations).


They're super productive when you're unfamiliar with the subject matter, do it once only or can't code at all.

Anyone can watch a couple of videos, launch Blender, start with a cube and work it into a chair in UI. Coding that for just one chair will take almost anyone more time.

Now if you need to do this to make 10 slightly different chairs where changes need to be made early on in the process, code will win even with first timers.


with stuff like 3d modelling code you're kinda skipping straight to some of the more hardcore coding. 3d transformations and algorithms are no joke, thats university and master's degree level maths. Don't feel bad if you don't get it, a huge number of professional programmers wouldn't either. I write a lot of software myself close to the metal as a robotics engineer and ive tinkered with blender code but id definately need a lot of practise to feel comfortable doing that without glueing together tools


Totally. 3D geometry is hard and when you're coding there are a bunch of different ways a minor error can mean absolutely nothing appears on the screen. Just learning about those different failure modes takes a while.

The other thing I find (but maybe this is the same with node-based approaches too!) is that there are a bunch of arbitrary coin-flip choices you have to make when doing 3D (e.g. left-handed versus right-handed coordinates). At a fundamental level it doesn't matter which choice you make, but your decisions have to be consistent, otherwise things can get flipped around, or often just vanish entirely. The sneakiest problem is when you unknowingly make two wrong choices, and they mostly cancel out except for some weird edge cases that happen to exercise the exposed code path.


Well creating a node and hooking it up to other nods is most probabily something like this under the hood:

  pd_node = PointDistributeNode(type = PDType.RANDON, seed=149)
  scaleRandomizerNode.geometry_input.connect(pdNode.geometry_output)
So far it's perfectly represented by node editor.

How about creating a dynamic number of point distribution nodes and adding them all together? Trivial in code, most likely impossible in node editor.

The most flexible UI is a good programming language, anything else comes with flexibility compromises in favour of something else.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: