I use ArcGIS model builder sometimes which is a block and arrow model.  It seems to encourage people to think in a more functional, and less procedural manner.  With procedural code it is easy for inexperienced people to get bogged down in endless if statements and managing state.  This is a bad idea when the underlying operations you want to perform are more like maths operations and better used directly.