If we're going to have drag-and-drop programming, why not do dataflow, which is where it really comes into its own? Of course if you want to churn out code monkeys for conventional languages, this is great, but if you want to expand people's minds, not so much.
There is a big issue with teaching to code and that is if you want it to scale and have teachers introduce kids to coding, you have to make sure that the material taught is very in line with core requirements. Computer science and coding curriculum is not set in stone yet, but where it's going covers the most common language constructs of today, like loops, conditionals and procedural coding. It is a stretch to show how learning to create dataflow programs maps to procedural understanding and algorithms. Moreover, there's very few general purpose dataflow environments that are widely accepted in computer science, and so learning dataflow won't necessarily ease the transition for students to later learn modern programming languages.
TL;DR For a layperson, the association between dataflow and 'real coding' is very weak. For a programmer on the other hand, the association may be less weak, but the skill may nonetheless not be applicable to most real world applications.
> For a layperson, the association between dataflow and 'real coding' is very weak.
Excel is basically a dataflow. You can avoid talking about loops with maps, that can be understood immediately with excel tables.
Something like Excel that does not divide so strongly between cells and VBA should be ideal. Resolver One was very interesting.
That's the approach that I think it's the best: Excel is right now how people that need sort-of programming but don't program bridge the gap. It's huge. It's everywhere. And it's _VISUAL_.
Perhaps a simplified Excel for educational purposes is the ideal way to expose people to programming, formal thinking, systems thinking, functional definitions, etc. And, when they jump to real-life Excel, and get culture shock, perhaps they keep using that original program that they were taught.
This, and Unix pipes is basically dataflow, so there's two useful tools laypeople will be able to easily access and work with if they can grok dataflow. "Real coding" just isn't terribly relevant to laypeople.
Do you have any thoughts about how you would implement dataflow programming in Snap? I know I'd be excited to see Snap hooked into some of the really interesting streaming data work we're doing at MIOsoft (beyond just the storage of projects).