This is particularly true in the measurement and automation fields, where engineers are often required to develop a test, measurement or automation application to accomplish a certain objective.
In many cases it is extremely difficult for a user to be able to create various computer programs and distribute these programs among devices in a distributed system.