4 ms·
To me, Factorio looks more like dataflow programming (https://en.wikipedia.org/wiki/Dataflow_programming https://en.wikipedia.org/wiki/Dataflow_programming) muc
by SuchAnonMuchWow 6y ago
To me, Factorio looks more like dataflow programming (https://en.wikipedia.org/wiki/Dataflow_programming https://en.wikipedia.org/wiki/Dataflow_programming) much more than functional programming, but I guess people see much more similitude with what they are used to.
- gggtt 6y agoDataflow, Pipelines, Signal Processing block diagrams, Functional programming, Flow-Based programming, Blender/Unreal Shader Graphs, The Grid in Bitwig, PureData/Max, VHDL, MATLAB Simulink, Node Red, Microservices, Tensorflow/Pytorch compute graphs, Houdini, Animation/behaviour graphs Unreal Blueprints, ... There are so many things that we describe as a graph of boxes with inputs & outputs that we can indeed draw many parallels see many similarities between them. I think it's quite interesting to think about this diversity of tools and try to analyse what's common and what isn't between them (some are stateless others aren't, some have the notion of "time" and some have not, some are closer to state machines while other closer to mathematical functions, etc.) and it gives a lot of inspiration about new/alternative programming models & architectures
- sali0 6y agoThis (boxes with inputs and outputs) is how I reason about almost everything in life as well. I have been told this is what is called "systems thinking". Your comment is spot on.
- munk-a 6y agoProgramming paradigms are all very much different sides of the same n-sided coin. One thing that's quite interesting to me about Factorio is how intelligent components like inserters are - they refuse to accept materials that their destination won't accept so one parallel in Factorio that isn't going to be matched by most views of functional programming is that you have an input of {{Gear, Gear, Iron Plate, Wire, Wire, Turret, Assembler, CPU}, {Coal, Coal, Coal, Wooden Chest, Ammo, Wire}} and an Assembler with Inserter setup to build Inserters - given that belt state prior to execution then you will apply that function and end up with a belt state like: {{Gear, Wire, Wire, Turret, Assembler}, {Coal, Coal, Coal, Wooden Chest, Ammo, Wire}} and a produced Inserter. Factorio is incredibly resilient to mistakes which is a bit odd in that style of game - normally bad input in an assembly line game like that will result in a system freeze but Factorio just shrugs and keeps on keeping on.