While this statement may be true in general, the reality is the Auduino platform, from a software perspective, is a platform for hobbyists. Anyone trying to build a serious product using the platform is plagued with many challenges. The Arduino IDE is virtually useless when it comes to debugging application - it has no capability of supporting real time debugging tools such as ICE (In Circuit Emulators), no way to perform single stepping, real-time variable read/modify/write, application profiling, run/stop etc etc.
The libraries themselves are the arduino’s greatest strength and its greatest weakness. Greatest strength because of the contribution from a large eco system spanning manufacturers to hobbyists. It is it’s greatest weakness is because a lot of libraries are written by people that just wanted something quick and simple. As a consequence a large selection of libraries lack any type of error detection and recovery and the implementation of library functions are inconsistent. For example, some libraries are hard coded to only work with hardware serial ports and others only with software ports. Some using the serial port functions directly whereas others use stream.
Using the Arduino platform to develop large or complex application is very time consuming and very very expensive. This is why for this class of applications, industrial users do not use the Arduino IDE and spend a lot of time rewriting libraries.
I think the Arduino platform is great for building simple proof of concepts.