HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

[List] What can you do with Jass that can't be done in GUI?

08-16-2009, 01:51 PM#1
Cheezeman
I'm not sure if this belongs to this section, but I couldn't find any relevant forum for it

Hey!


So... I'm trying to make a list.
It's basically a list of things you can do in Jass which can't be done in GUI.
I know that GUI is bad because of leaks, BJ functions and a stupid structure (not 'structs', how the code is built), but what can you do in Jass that GUI isn't capable of?
Right now I have this:

- You can't have OOP design (this says it all pretty much)
- You can't hook natives
- You can't make a SETUP section that is useful
- You can't decide your code the way you want
- You can't use several events in a trigger window (which leads to different actions)
- You can't get any handle's Id
- You can't issue an order by id
- You an't declare local variables
- You can't destroy triggers
- Certain functions / types aren't available at all: GetLocalPlayer(), CreateDestructableZ, LightningZ, trackables and trackable related functions, etc.
- You can't clean leaks
- You can't have OOP design (this says it all pretty much)
- You can't hook natives
- You can't inject stuff in your code
- You can't make a SETUP section that is useful, the code can't be divided the way you want
- No debug mode (no way to make an action debug-only)
- You can't declare constants (faster, non-changable variables)
- Many must-have systems are not available

Since GUI is very wide, but still very limiting, it's kinda hard to figure out stuff that can't be done in GUI.
That's why I need your help.
Post something that either GUI can't do at all, or that GUI can't do without alot of effort. Reputation will be added to whichever person adds a reasonable object (though most of you guys probably don't care about it).


Thanks on behalf
- Cheezeman
08-16-2009, 01:54 PM#2
Rising_Dusk
GUI = UserNewb-Friendly, Yet Highly Inefficient JASS
Quote:
Originally Posted by Cheezeman
- You can't make boolean expressions
- You can't use timers
You don't need boolexprs in GUI because the game creates them for you. And yes, you can use timers in GUI, they are just called 'Countdown Timers' instead.
Quote:
Originally Posted by Cheezeman
- You can't use several events in a trigger window (which leads to different actions)
This leads into what I will say below.

Anything can be done in either. Heck, you can even call JASS directly in GUI with the 'Custom Script' line. It's just so much easier to do nigh-on all things in JASS that's the difference.
08-16-2009, 02:01 PM#3
Cheezeman
Well, most of the expressions are null, right? So that means none at all, or did you mean something else?
And well, ok I'll remove timers.

However I don't accept the Custom Script as a GUI function. It's Jass, not GUI that you're typing.
08-16-2009, 03:11 PM#4
Themerion
- You cannot declare local variables in GUI.

- You can't declare globals anywhere you want in GUI (you can in vJASS). GUI users will eventually have a rather long global variable list.

- You cannot declare libraries and dependencies in GUI (also vJASS exclusive).

- You cannot destroy triggers in GUI

- You cannot declare functions, and thus cannot pass variables (unless you use globals for it, which in the long run, gets really ugly and hard to read).

- You cannot just type mathematical expressions. You have to click through every fucking dialog (Arithmetic, Unit - Unit Level Of Ability() , Aritmethic, blahblah...).
08-16-2009, 03:17 PM#5
moyack
Jass allows you to simplify your code and it's faster to write. For me that's enough reason to learn it.
08-16-2009, 03:19 PM#6
Cheezeman
Thanks, list updated.
08-16-2009, 03:49 PM#7
MaD[Lion]
the only reason id use jass over GUI is not wat they cant or can do.... It is that gui is really painfull to work with in huge systems and codes.
So dont compare gui to jass as in wat they can or cant, compare their workflowability. Jass make it so much more easier to read and to edit/change parts of ur map. Gui is really hard when u want complex systems.
Normal mappers wont need jass at all cus their maps are event/action base, and does not need any fancy effects...
08-16-2009, 06:37 PM#8
D1000
You can´t use Z for lightnings
08-16-2009, 06:55 PM#9
Viikuna-
You cant remove leaks. It requires custom script, which is closer to Jass than GUI at least IMO.
08-16-2009, 10:13 PM#10
Cheezeman
Quote:
Originally Posted by Viikuna-
You cant remove leaks. It requires custom script, which is closer to Jass than GUI at least IMO.
Indeed.

Edit: Can't give you rep, you helped me on that organization thread not too long ago.
08-16-2009, 11:02 PM#11
Bobo_The_Kodo
Quote:
Originally Posted by The Topic
[list]What can you do with Jass that can't be done in GUI?
- Make annoying repetitive threads about Jass vs GUI
08-16-2009, 11:33 PM#12
Earth-Fury
Quote:
Originally Posted by Bobo_The_Kodo
- Make annoying repetitive threads about Jass vs GUI
We need MindWorX to add a "CreateUselessDiscussionThread(whatSite)" native to RtC.
08-16-2009, 11:39 PM#13
Cheezeman
Don't get me wrong, this isn't a discussion Jass vs GUI.
I'm just making a list to aid me in a proejct I'm making, it's not like I'm asking which one is better.
It's "What can be done in Jass but not GUI", not "How is Jass superior to GUI?"
08-17-2009, 12:52 AM#14
Earth-Fury
Quote:
Originally Posted by Cheezeman
Don't get me wrong, this isn't a discussion Jass vs GUI.
If that's true, then discussions of why it was awesome that Germany got it's ass kicked in WW2 don't involve the holocaust.

Quote:
Originally Posted by Cheezeman
I'm just making a list to aid me in a proejct I'm making, it's not like I'm asking which one is better.
That's exactly what you asked. You just didn't ask it so directly.

Quote:
Originally Posted by Cheezeman
It's "What can be done in Jass but not GUI", not "How is Jass superior to GUI?"

JASS is superior to GUI in every way but one: You have to actually understand what you're doing before you can start doing it. Really, I would personally call that one in JASS' favour as well.

Anyone who argues otherwise really has their head up their ass.

As to why this topic is stupid and useless: The differences can be summed up very shortly:

JASS gives you the full API and the full flexibility of the language, as well as the extensions provided by vJASS. GUI provides some of the API and a limited subset of the language constructs. GUI can not utilize the extensions provided by vJASS.

Any argument for usability in GUI's favour went out the door as soon as Jass Shop Pro provided a full, built-in, searchable function list. (Of course, such arguments hold even less weight now, considering we have TESH.)

And finally, compiling a list of all the little differences is as stupid an endeavour as comparing a pile of shit to a wedding cake.
08-17-2009, 01:07 PM#15
Cheezeman
I think I've got enough items in this list.
I'd like to thank everyone once again who contributed to it, it really helped me.