As a "real programmer", I believe the sweet spot for a game making tool is one that makes the simple things as simple as possible, and in the rare case that this is not sufficient, provides unrestricted access to a powerful programming language.
My favourite tools in this regard at the moment are Unreal Engine 4 and Construct2, which both strike that balance perfectly IMO. The Blueprint system in UE4 is extremely intuitive and efficient, while being able to extend it with C++ guarantees that there are literally no limits to what can be done with it. The only downside of UE4 is that it's too complex and heavy for some kinds of games.
That's why I've chosen Construct2 as an alternative for lightweight games, as the event system and smart UI are fantastic for quick prototyping and game logic, while JavaScript is a solid language under the hood (especially since the export is always HTML5, so no extra glue is required).
GameMaker didn't appeal to me at all, because its drag and drop UI is not very well thought out (nor powerful), and the scripting language is nothing to write home about either. It works, but that's about it. I don't use C2 because it's "good enough", but because I genuinely believe that for a certain type of game it is a best of breed tool. I cannot say that about GameMaker.
Even if you don't know how to program in C++ or JavaScript (yet), you can always hire somebody to fill in missing pieces if required. In the long run, I'd say it's more fruitful to have a tool that makes the 90% of your workload as easy as possible, especially if you don't intend to specialise on being a programmer.
HTML5 may be a limitation on mobile at the moment, but it seems to be improving rapidly and should be a non-issue fairly soon. Especially for the kind of games that Construct2 excels at, and for anything with more complex requirements (and/or three dimensions), I would recommend Unreal Engine 4 anyway.