It's practically impossible to do some things in GUI. GUI is very limited, very difficult to use, and annoying as hell. Every time I have used it, I have quit within a couple of minutes out of extreme frustration. It's a horrible tool.
Never mind efficiency, it's garbage. For one, it has special types that don't really exist for integers. If you want to work with just integers, too bad, you can't. I'm not talking math, I'm talking GetUnitTypeId, GetItemTypeId, you need a special bs variable type for each of those because GUI is garbage -.-.
Not only that, but it has no scoping. If you have a couple of resources in your map, gl finding any variables. The list of variables will just get longer and longer and longer. Wanna make a high quality map? Too bad, GUI won't let you.
It has no functions. If you want to do anything, you have to copy the code
everywhere. That is horrible. Not only that, but it has no locals. Want recursion? You have to code a stack yourself, and gl doing that in GUI. It doesn't even have proper loops. GUI? Get real, its' one of the worst programming tools I have ever seen. Actually, it is the worst.
I am slowly working on a good GUI tool in Java that does allow for all of the things I mentioned + lets you manage everything nicely >.>, but I don't even know if I want to continue it.
Anyways, let's get real. GUI isn't useful, it's garbage. The only time it is useful is when you are a total noob and have no idea what you are doing. Once you have even a little bit of competency, GUI ceases to be a useful thing. This is the reason why I don't know if I want to continue that Java project, it simply isn't worth the effort to make.
If you are a GUI user, you get absolutely no respect from me. I don't like to support GUI, I don't like to have anything to do with it, and I sure as hell don't like to read it. It's more time consuming to read a script in GUI because it's all written out like huge sentences. It's more time consuming to deal with variables in GUI. It's more time consuming to make anything in GUI. In the time that it'd take me to write a 1 liner in GUI, I would have already written the 5 lines necessary for it in vJASS. Then again, I'm a fast typer, but that just proves how useless GUI is. Not to mention, I've memorized almost all of the natives and their arguments. JassNewGenPack also has intellisense.
GUI? Get serious. The only thing that it's useful for is to aid people that have no will to actually learn how to code. They can use the crippling tool on their own. I have no sympathy.
It's not even like it's that difficult to learn JASS. There are only 3 structures... vJASS only adds 2 more. You can learn 5 structures -.-. I've taught people the fundamentals of programming in a few minutes in live sessions, people that have always struggled with learning how to code. Yea, one of the major problems is how coding is taught. The traditional approach that the majority of university's use is horrible >.>.
Of course, for those that are just doing it as a side hobby and really don't care, then I suppose GUI is ok

. You won't be able to make anything substantial, but hey, it's just a bs hobby that doesn't mean anything =). I'm personally aiming to go pro.
Anyways, those are my thoughts on the matter.