It always turns out that the difficulty of "setting up a basic [hello world application]" is entirely unrelated to the essential complexity of the problem space and attracting a broader range of new users is later viewed as a valuable advance.
It always turns out that the difficulty of "setting up a basic [hello world application]" is entirely unrelated to the essential complexity of the problem space and attracting a broader range of new users is later viewed as a valuable advance.
A fluent Python developer that doesn't understand basic ML concepts can easily use something like Scikit to code and build "wrong" models. By "basic concepts" I mean standard tasks like data preparation for specific algorithms, sampling, evaluation methods, testing for bias, or just generally how to properly execute most ML tasks like the ones prescribed by something like CRISP-DM.
Someone with basic coding skills - e.g. knows SQL and some imperative programming - but with a solid understanding of ML tasks, and how to execute them properly, probably has a better chance of coming up with better results than the former, using something like IBM Modeller or RapidMiner.
Note that I'm not saying that a drag and drop tool is superior; you could build a flow-based GUI for Scikit, so a tool like this is always, at most, an interface to some code libraries (Scikit, in this example). Having full access to the actual lib, or just better libs, is likely to be less constraining, and more apt for more sophisticated approaches.
But beyond that, I’m going to use the grown up tools to build real things (and get paid for doing so).
I'm a fan of plain text and source control myself.