HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Differences of JASS and GUI

12-28-2006, 09:58 PM#1
darkwulfv
Well, I've been wondering what the true differences between JASS and GUI are. Not so much as faster codes, no useless BJ's etc., but more so what does JASS allow that GUI doesn't? (And I mean true GUI, not some GUI with custom script).
12-28-2006, 10:36 PM#2
Av3n
Custom Functions

-Av3n
12-28-2006, 10:46 PM#3
Thunder_Eye
(more) Advanced scripting, cleaning memory leaks
12-28-2006, 11:13 PM#4
rulerofiron99
True, without the Custom Script function in GUI, it would be pretty much a lag fest. (with the types of cinematic triggers i make... think 200 point var leaks per second for 50 units for 9 seconds, this trigger being used about 60 times)
12-28-2006, 11:27 PM#5
PipeDream
You can do anything in GUI that you can do in JASS. However, there are a lot of things that are either enormously inconvenient or anyone who thinks GUI is convenient won't do research in. The first things that come to mind are:
- O(1) editing
- Local state
- Inlining conditions such as if/then/else for local state
12-29-2006, 06:57 AM#6
Chocobo
Quote:
Originally Posted by PipeDream
You can do anything in GUI that you can do in JASS. However, there are a lot of things that are either enormously inconvenient or anyone who thinks GUI is convenient won't do research in. The first things that come to mind are:
- O(1) editing
- Local state
- Inlining conditions such as if/then/else for local state

For sure you can do anything in GUI IF you modify some files to have the Graphical User Interface in its whole form (meaning with all functions listed).

JASS stills better against GUI because you can do whatever you want (As said in QUOTE, Inlining, Local Statements and Locals Declaration), and you can also use functions that are not listened in GUI (Like : GetLocationZ(point), ForGroup(..), DestroyGroup(group), local <exp> <state>.....)
12-29-2006, 07:55 AM#7
rulerofiron99
Let's also keep noobs in mind, GUI is a heck of a lot easier to learn, because all you are basically doing is choosing a function from a large list.

I mean, it's not like any random noob is actually going to spend a lot of time studying JASS before they make their first crap map...
12-29-2006, 08:12 AM#8
The)TideHunter(
You cant write a function in GUI, as you are writing it in the action section of a trigger if you use Custom Script: .
12-29-2006, 09:20 AM#9
Thunder_Eye
meh I dont agree with pipe, lots of functions that are needed for small things arent avaible in GUI, like GetLocationZ,PlayAnimationByIndex. And most importmant of all, locals! (well could be replicated by making 1 trigger and 1 variable for each unit, but meh..)
12-29-2006, 09:22 AM#10
Captain Griffen
Quote:
Originally Posted by rulerofiron99
Let's also keep noobs in mind, GUI is a heck of a lot easier to learn, because all you are basically doing is choosing a function from a large list.

I picked up JASS in a few hours, proficient within a week, due to my minor programming experience. Really, it is not a heck of a lot easier to learn if you already know a programming langauge. Learning your first programming language isn't too hard, either.

Really, the amount of time you save by being able to do JASS (which is quicker to write out than clicking boxes) means it is faster to just learn JASS from the start or very early on. Wish I'd done that.
12-29-2006, 12:29 PM#11
Vexorian
ditto.

GUI doesn't come with official custom functions support, but you can always use triggers for them and pass arguments as variables.

You could even simulate an stack with arrays and stuff.

Of course the effort is terrible.

Just modifying a text message action with a lot of concatenation in GUI is a enough of nightmare to stay away from it,
12-29-2006, 02:02 PM#12
Fireeye
I think the biggest differences are the following. (And they are the reasons why i use JASS )
1. You can modify the loops so i don't run more than needed.
E.g. let's say we have item-types stored in an var with array, when we use gui the loop will be runned till the end while you can say in jass exitwhen xxx == the var and i won't be looped again.
2. You can call another function with JASS what isn't possbile in JASS, of course you can run triggers but not with the takes or returns action, so you need a build around with global variables which takes space.
3. You can use elseif commands, which can make triggers much easier too read cause you don't have to use somethin like this
Trigger:
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Then - Actions
Collapse Else - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Then - Actions
Collapse Else - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Then - Actions
Collapse Else - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
If - Conditions
Then - Actions
Else - Actions
4. and so on: Everything the others already said, locals, cleaning memory leaks, custom functions, non-GUI options, etc.