• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Is it really GUI our enemy?

Status
Not open for further replies.
Level 10
Joined
Sep 19, 2011
Messages
527
The past days I was thinking about GUI :ogre_icwydt:. I was thinking if it is really that bad and if it helps in anything and I found some pretty answers.

First, we all know the contras of GUI, but what about its pros? :ogre_hurrhurr:

I found these:

1. More people uses GUI than JASS. That means, that you will find more people that helps you in your project :).
2. Sometimes it's easier and faster to work than JASS.

Not many, but they are very important.

Keep in mind that GUI is a tool, and it is only useful if you use it on the correct cases, such as spells, or anything that isn't too complicated (creep spawns, resurrections, etc.).

If you know JASS, you probably do everything with it but, should you? :ogre_datass:. Probably the same thing can be done in GUI with a little bit less of effort/time.

Remember, GUI is a tool, and is there to be used :thumbs_up:

You also should consider of using cJASS (to avoid leaks/bjs/etc.).

Have a nice day :).
Greetings.
 
Last edited:
Level 23
Joined
Apr 16, 2012
Messages
4,041
Warning: My Opinion:

anything more complex than like 5 lines of GUI can most likely be done with Jass/vJass faster than with GUI
also code generated by GUI is highly unoptimized and uses BJs all the time

and no I have nothing against GUI even tho I dont personally use it for more then just finding some function(SetCinematicScene) or finding strings for models and effects

also if you have knowledge of vJass, you most likely wont use GUI for spells because that is also less efficient and most likely slower for bigger spells than vJass with RegisterPlayerUnitEvent or RegisterSpellEffect libraries
 
I'm in opinion very most things a normal warcraft 3 mapper wants to create, he can use GUI for it. (and few of custom scripts)

Is it best/most efficient way? Definitly not. I'm sure about that, that vJASS can make things more simple..

But me personally, I'm a GUI-user... and I don't feel hard to learn vJASS for more effieciency, because at last I only create maps for fun and not for efficiency.
_____________

My opinion only, greetings :wwink:
 
GUI is not our enemy. I'm fine with users using it. However, I like the dynamics and the systematic approach that vJASS easily allows.

Also, when you are trying to do something as simple as indexing/setting an array, there is so much clicking involved. It is tiresome.

Ruke said:
If you know JASS, you probably do everything with it but, should you? . Probably the same thing can be done in GUI with a little bit less of effort/time.

Are you sure? I actually tried to make a system for someone in GUI. I actually never finished it--it became too complicated for me to do in GUI. It would've been a lot, lot easier to write in vJASS because of my need for timers and particular storage methods (linked lists). And try making a cinematic (without using TriggerSleepAction) in GUI. Enjoy the headache.

I wouldn't really recommend JASS to someone for efficiency. IMO, that was never its main lure. I couldn't care less about saving some microseconds. It lets you have easier access to natives, and it is fun (in my opinion).

Why did I learn JASS? A long time ago, you had to learn JASS to achieve MUI. The indexing methods we know now were not used--people actually submitted GUI spells without them being MUI. For JASS, you would use KaTTaNa's handle vars. I suppose that incentive has faded with all these new GUI methods to get MUI (and hashtables). ;P

And I see your point: you're not arguing against JASS, you're just saying that people should use whatever they're more familiar with, and you're validating the purpose of GUI. That is fine. But I don't really see the point of the thread? What warranted this? I can agree that there may be users pushing JASS for the wrong reasons, but the way you state it--it is as if they should never move on from GUI. I don't agree with that. If someone wants to learn JASS, I think they should try coding things in JASS--even if they are unfamiliar with it compared to GUI.

And what about that promotion of cjass? It just seems random. Avoid leaks? BJ's? How does it help with that any more than vJASS (just curious, I haven't done anything with cJASS in a while).
 
Level 17
Joined
Jul 17, 2011
Messages
1,863
there are no pros to gui, the only thing its useful for is to find out the jass syntax of some native lets not forget that after all wc3 is a computer program and you need some knowledge about programming in order to make your projects good if you are using gui then you probably dont know basic things like calling functions etc.. now before you say there are some really good systems out there that are made in gui, yes there are but they rely heavily on custom scripts thus if you want to make any project good you should use jass and probably learn a few tricks theres just no way around it..
 
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.
 
Level 10
Joined
Sep 19, 2011
Messages
527
@PurgeandFire,
The point is, GUI is a tool, use it where it can be useful (as any tool).

You're not going to use GUI for a "system", you could, but you shouldn't. Why?, because it would not be productive, and the idea is that, being productive.

I mentioned cJASS, because they have a great feature called "define", which can replace something to other thing (so, bjs to no-bjs, and so on).

@gorillabull, I mentioned some of the pros of GUI...
@nes, for what you're saying, you didn't read the topic...
 
2. Sometimes it's easier and faster to work than JASS.

Back in the day, I used to host speed-mapping contests. We'd draw a random theme from a collection and everyone would have one hour to build a map as fast as possible. I can say from experience that JASS is strictly faster for development than GUI.
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
Forgetting any point of performance/features/yada yada, I find it a whole lot faster to write text than click many boxes.
This is mostly noticeable when you try to chain things (e.g. conditions), when if you want to suddenly add or remove something, you need to pretty much delete what you did and redo it all, clicking on boxes tens of times.

This is what I felt right away when I first learned Jass after a very long time of using GUI, so I believe I am pretty objective on the matter.

Another point is that you can learn Jass in a single day, so why not simply give it a try and see for yourself what you prefer?
Find something (e.g. a spell) that you want to make, and go for it!

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.

That made me laugh for about a second, but then I remembered that you are serious.
 
Level 19
Joined
Mar 18, 2012
Messages
1,716
Most of my arguments are already stated above, so I'm not going to repeat them.

2. Sometimes it's easier and faster to work than JASS.
But not than vJass. Never ever. Using these predesigned code blocks seem fast for beginners, but in reality it is disproportional slow.

It is also nearly impossible to successfully debug GUI.

GUI also produces a hell of chaos in your map the more triggers you have, since every global variable requires a unique name udg_TRY_ToFindMe :).

For me GUI is fine as easy start in wc3 modding. Many users, like me have zero programming background and for those GUI may be just really nice and handy. But sticking to it would be the biggest mistake one can make. It feels like playing with lego-duplo instead of real lego :)
 
If you know JASS, you probably do everything with it but, should you? . Probably the same thing can be done in GUI with a little bit less of effort/time.

This is not a general truth... I for one works faster typing things than clicking things which is why I normally don't use GUI... so you see, I use JASS/vJASS even for simple things not because I know it but because I work faster on it...

also, the computers that I use seem to accept text input faster than mouse clicks too... so both me and my computer work faster when typing than clicking...

so basically, the arguments for using GUI doesn't work on my case...

and yeah, more people use GUI, but I find more useful people using JASS... when it comes to help, quality is better than quantity... what's the use of having a huge support-base if most of them are in your skill level anyways (meaning they can't help you actually)???

I'd prefer the company of 2 pros than a company of 10 noobs like me...
 
Level 10
Joined
Sep 19, 2011
Messages
527
Back in the day, I used to host speed-mapping contests. We'd draw a random theme from a collection and everyone would have one hour to build a map as fast as possible. I can say from experience that JASS is strictly faster for development than GUI.

In all cases?

and yeah, more people use GUI, but I find more useful people using JASS... when it comes to help, quality is better than quantity... what's the use of having a huge support-base if most of them are in your skill level anyways (meaning they can't help you actually)???

I'd prefer the company of 2 pros than a company of 10 noobs like me...

Person using GUI != noob xD
 
Last edited:
@PurgeandFire,
The point is, GUI is a tool, use it where it can be useful (as any tool).

Yes. GUI is a tool. My question was: who said it wasn't? I was just curious whether there was some particular discrimination or something on the hive that prompted you to make this thread. :p

I mentioned cJASS, because they have a great feature called "define", which can replace something to other thing (so, bjs to no-bjs, and so on).

Yes, if there is anything that cJASS has that is a leg-up of over vJASS, it is the defines feature. It is quite useful. It just seemed weird to mention it in a thread about GUI (with only one sentence).
 
Level 10
Joined
Sep 19, 2011
Messages
527
Yes. GUI is a tool. My question was: who said it wasn't? I was just curious whether there was some particular discrimination or something on the hive that prompted you to make this thread. :p

Nobody, but I encountered myself doing things in JASS that could took me less in GUI and I didn't do it with it just because. Besides, I can feel the hatred to "GUI" people in Hive' atmosphere :p
 
Level 15
Joined
Feb 15, 2006
Messages
851
GUI tends to be inefficient. GUI makes development slow. Clicking is slower than writing. GUI is a tool but a limited one too.

Because most people use it, it doesn't mean it's better. Most people use it because it's the first thing they get when they start triggering.

I think this kind of discussion just promote the easy (and lazy) thinking and doesn't promote to open to alternatives. Using JASS gives you all the possibilities, and gives you total control over you do in a map. Actually vJASS is the real interface which help us to make more complex things in JASS.
 
Level 22
Joined
Sep 24, 2005
Messages
4,821
I'm not sure GUI made it easier, when I tried to make a creep respawn using GUI triggers, I got really confused with all the menu's selectable options. The variable editor wasn't very helpful either, all the variables were packed in one window. It really didn't make it easier.

But for respawning heroes on an AoS map, GUI is okay, only a few clicks.

Besides, I can feel the hatred to "GUI" people in Hive' atmosphere :p
A lot of people here use GUI, how would that be possible...
 
Well just want to post here because you guys are likely scaring GUI'ers, I didn't bother to read all the hate on GUI however I am usually a full GUI'er and when it can't do the job I will use CS or JASS, VJASS is *almost* never unless I need to get it done quick and the system is already there ready to DL. Btw with the new system for GUI someone made whoever complained about udg_findme will be pretty much fixed. Though it is trading some milliseconds of speed for speed of completion.

It's there and it should be used just like JASS and all its syntax's. Besides its faster for me to click boxes because I don't type properly therefore it hurts less. The only things I have never been able to do is stuff that involved over 100 units in a system in GUI or spell. I found workarounds for everything else except I kind of do prefer the JASS version of moving units. ( I don't like using instant-cast spells =) )

Point is Wc3 is one of the best games that has one of the BEST GUI's in any game I have seen yet so.... Yeah. Nuff from me, have fun hating. Just posting for them GUI'ers. =)

EDIT: Though wouldn't you guys rather like some epic/awesome JASS pro's rather then (any number over 50)80% of hive at your skill-level?

EDIT2: I would like to see VJASS or even JASS remake some of the more intense games which I haven't seen since 2008. Think you guys got limited thanks to blizzard.
 
vJass is only a precompiler like GUI anyway.

Just that writing vJass is alot more flexible than clicking to make GUI.

Getting the features of Jass that GUI haven't got requires a thew clicks and typing with GUI.
If you are already using vJass\Jass you can have these features without the amount of clicking and able to have full control over the compiled script.
 
Imo, GUI is lacking on different points such as the compilation (i'm pretty sure it's possible to provide more optimized code with GUI, if you modify the precompiler/create a new one) and some of its limits (lack of local variables, no 'real' functions, etc...).

But GUI's strenght is all in simplicity. It is way more beginner-friendly than jass and easy to understand. It also let less place for errors (syntax, not ending a loop or an if then else, etc...). It also doesn't restrict you to using only GUI lines as you can use custom script (even if it's way less flexible than coding it in jass directly) which can complete some of the lacks.
 
Level 26
Joined
Aug 18, 2009
Messages
4,097
GUI is closer to the other mechanics of the editor. You can select preplaced objects or pick OE objects without investigating elsewhere for the raws. It grants some additional info on how the API works. In GUI, you are less likely to have syntax issues, trigger critical errors and face deep-nested problems simply because you stay closer to native wc3 and it forces some basic, simplifying paradigms like variables have to be inited, triggers are static, loops have to have a cancel condition. The editor generates some extra stuff it does not display to you, which is why some links are missing how things work.

I think the better question is if a hybrid form can be advantageous. Like the eclipse plugin for Wurst realizes a neat tree structure view and it sounds positive if you could practically introduce buttons and options to alternatively build your code from language components. Same plugin has a live syntax checker, saving time and frustration. As said, referencing code-external data like editor placements, object editor, gameplay constants and whatever needs to be easier, form vivid references.
 
Speed isn't problem (usually), but, you must agree, GUI is ugly.

How many times you lost in huge lists of actions, different but
linked triggers and those horrible index-like spells or whatever,
needed, because of freaking MUI.

Jass can be documented nicely, everything can be pointed out
using comments and you can always code it the way you like,
where in GUI you need to fallow same template over and over
again.
 
Level 10
Joined
Sep 19, 2011
Messages
527
How many times you lost in huge lists of actions, different but
linked triggers

divide it xD.

those horrible index-like spells or whatever,
needed, because of freaking MUI.

take a look: http://www.hiveworkshop.com/forums/spells-569/mui-242000/

Jass can be documented nicely, everything can be pointed out
using comments

as gui

where in GUI you need to fallow same template over and over
again.

uhmm, i don't see that as a problem.
 
Level 23
Joined
Apr 16, 2012
Messages
4,041

hmm...lets see

  • guiexample
    • Events
      • Map initialization
    • Conditions
    • Actions
      • -------- this command will create unit when map is initializing, the unit will be footman --------
      • -------- and his owner will be Player 1 - Red --------
      • -------- he will be standing at Position [0, 0], whcih is middle of the map --------
      • Unit - Create 1 Footman for Player 1 (Red) at (Center of (Playable map area)) facing Default building facing degrees
      • -------- --------
      • -------- the next command will kill the unit that was last created --------
      • -------- which happenes to be the footman we just created --------
      • Unit - Kill (Last created unit)
vs

JASS:
function Trig_guiexample_Actions takes nothing returns nothing
    // this command will create unit when map is initializing, the unit will be footman
    // and his owner will be Player 1 - Red
    // he will be standing at Position [0, 0], whcih is middle of the map
    call CreateNUnitsAtLoc( 1, 'hfoo', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING )
    
    // the next command will kill the unit that was last created
    // which happenes to be the footman we just created
    call KillUnit( GetLastCreatedUnit() )
endfunction

for simpificity, I just converted it and pasted

vJass at least highlights different types of text(comments vs functions vs variables etc) so you can differentiate them
 

Chaosy

Tutorial Reviewer
Level 40
Joined
Jun 9, 2011
Messages
13,219
I like GUI more than JASS. However I cant deny the following.
1. GUI very limited if you dont use custom scripts.
2. its much slower to use if youre used to coding.
3. less effective (doesnt mater if you got a good computer but still)

GUI is just much easier but as said not as good as pure code

tbh I see GUI as a more noob friendly way to code. It is also more more relaxing. less brain activity = win :D
 
Status
Not open for further replies.
Top