• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Difference Between Jass and vJass and any other jass out there?

Status
Not open for further replies.
Level 6
Joined
Mar 22, 2009
Messages
276
JASS (Just Another Scripting Syntax) is the text form of GUI in WE. When you converted your trigger into custom text then it is now in jass form.

vJass (I forgot what the v means but its not for Vexorian as I remember) was developed by Vexorian. It is more powerful than jass, it adds more functions or more capability to jass like it can be like an object-oriented programming language. To use vJass you need to intall the JasssNewGenPack or JNGP.

cJass ( c is for the C language ) is the jass that can be scripted in C language form.

There is one thing that these 3 have in common, it is that they are created to make good maps for warcraft!

Well that is what I know about them. You can google about them if you want pardon information.
 
Level 12
Joined
Apr 15, 2008
Messages
1,063
jass is the scripting language blizzard made fo warcraft
vJass is Vexorian's enhancement for jass, it allows you to use object-oriented programming (among others)
cJass is another enhancement, that provides shorter, more convenient ways to write certain commands

both vJass and cJass require a modification for WE. However, they get translated to regular jass upon saving the map (so that warcraft could parse the scripts)

EDIT: you were faster :sad:
Another thing: neither vJass and cJass provide any more functions (since they are only WE enhancements), all they do is provide more comfortable IDE for writing scripts
 
Level 6
Joined
Aug 22, 2008
Messages
123
JASS (Just Another Scripting Syntax) is the text form of GUI in WE. When you converted your trigger into custom text then it is now in jass form.

vJass (I forgot what the v means but its not for Vexorian as I remember) was developed by Vexorian. It is more powerful than jass, it adds more functions or more capability to jass like it can be like an object-oriented programming language. To use vJass you need to intall the JasssNewGenPack or JNGP.

cJass ( c is for the C language ) is the jass that can be scripted in C language form.

There is one thing that these 3 have in common, it is that they are created to make good maps for warcraft!

Well that is what I know about them. You can google about them if you want pardon information.

I've got to set some things right.
Jass is the Wacraft 3 scripting language and contains all functionality Warcraft scripts can have. Any scripts in maps you play are done in Jass.

Knowing how few mappers are able to do proper scripting in Jass using parallel arrays, stacks or proper function names, Vexorian created vJass, which is being converted to normal Jass as well. It contains several basic functionality like structs that makes it easier for newbies to cope with more complex problems and uses another syntax, which makes the more arrogant users proud (see Wc3campaigns), but it never added any advanced possibilites since this required you and all players of your map to hack your Warcraft 3. This is one main point all the hype kiddies do not even know.
cJass is the same as vJass, just uses yet another syntax.
So overall, there is only Jass. vJass, cJass and so on are just being converted for those users, who cannot deal well enough with normal Jass or need some poor syntax changes to enhace their selfesteem.
Some still claim that scripting in vJass was easier than it is in Jass, but that is a simple question of code arrangement.
The main advantage i know from vJass is the free declaration of global variables, though this is no major difference to me. :wink:
 
It depends, do you have any programing knowlage? i'd suggest doing basic jass with JNGP, as it has a syntax highlighter and extended error scripts.

The main thing between GUI and JaSS is that you can make functions, and triggers are variables.

Now this might confuse you at first, i dont have the time to go through it all with you, but i'd suggest reading some tutorials.
 
Ok, takes and returns, well, i'm guessing you know about variables, takes and returns can make it so you're basically passing a value to a function.

example:
JASS:
function testingtakes takes integer i returns nothing
     call BJDebugMsg(I2S(i))
endfunction

function Actions takes nothing returns nothing
     call testingtakes(100)
endfunction
that would display "100" as testinggakes took an integer and then displayed it.
 
Level 10
Joined
Sep 3, 2009
Messages
458
so basically in the first function you declare that it must display an intiger? So it's like since the function you made takes an intiger and displays it, if you put 100 in the parameter, testingtakes will set i = 100, then it'll call BJDebugMsg(I2S(i)). Since i = 100 it will display 100. Basically it looks like:

call BJDebugMsg(I2S(100)) = testingtakes(100)

am I right?
 
yeah.

You can also have functions that take two parametres, but you can only return one thing

like you could have this

JASS:
function testingtakes takes integer i, real r, boolean b returns string s
     local string s
     if b then
          set s = I2S(i)
     else
          set s = R2S(r)
     endif
call BJDebugMsg(s)
return s
endfunction

function Actions takes nothing returns nothing
     local string s = testingtakes(100, 100.00, false)
endfunction
would make "s" 100.00
then would display "100.00"
 
Level 10
Joined
Sep 3, 2009
Messages
458
ok uhm

1.why did you just put b and not test if it's true or false?

2. I'm confused with returns:

Lemme see. You set s as a local string so that it can be used in the function. Then if b is true? Then display the integer else display the real.

What's the "return s" for? And what happens if you put "returns nothing" instead? And in the first example, why didn't you return anything?

Lol so many questions sorry, really curious
 
Ok, returns i'll make it simpler.

JASS:
function testreturns takes boolean b returns integer
local integer i
     if b == true then // 2 ='s means a compairison, if you didn't know.
          set i = 0
     else
          set i = 1
     endif
     return i
endfunction
function actions takes nothing returns nothing
     call BJDebugMsg(I2S(testreturn(true))) //would display "0"
endfunction

you understand?
 
Level 10
Joined
Sep 3, 2009
Messages
458
oh I get it! return i will be the value of testreturn? Ok lemme make a function:

JASS:
function testreturns takes string b returns string
local string s
     if b == "R"
          set s = "b + s" // Dunno it this is how to contantinate
     else
          set s = "S"
     endif
     return s
endfunction
function actions takes nothing returns nothing
     call BJDebugMsg(testreturn("R"))
endfunction

//I don't know how to put strings in parameters

So is this right?

EDIT: I think I got something wrong there i cant set s = b + s, can I?
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,468
The way I see it is that vJass and cJass are glorified Graphical User Interfaces of Jass, as, using the same functionality of any GUI, all of those utilities just translate back into the native language (Jass).

Even though C, C++, Java, etc. are all C, the differences between them are outlandishly more meaningful and complex than Jass/vJass/etc.
 
Level 10
Joined
Sep 3, 2009
Messages
458
So vjass and cjass are in retrospect a GUI that is closer to jass itself but still retains the concept of GUI, which makes it easier for user to use jass. But still it is good to know the foundation which is jass as it is as close to jass as it can be. Cool ^_^

Off-topic: Java is a C!? never knew that!
 
Level 6
Joined
Aug 22, 2008
Messages
123
Java most certainly isn't C, if something, Java is C#.
Also the difference between C, C++ and Java is that they are different languages with not only different syntax (like jass/vJass/cJass), but also work differently on the inside.
And yes, your last post prettu much summarizes the situation here.

I wonder... can't you just google things like that instead of posting spam?
C# and Java are still very different, especially the Java Virtual Machine makes it completely different to C (++/#). In addition, Java is built up "safer" and "cleaner" than C languages have been.
vJass and so on are almost useless since they do not change anything, you cannot compare this to programming languages. :cool:
 
Level 15
Joined
Aug 11, 2009
Messages
1,606
I wonder... can't you just google things like that instead of posting spam?
C# and Java are still very different, especially the Java Virtual Machine makes it completely different to C (++/#). In addition, Java is built up "safer" and "cleaner" than C languages have been.
vJass and so on are almost useless since they do not change anything, you cannot compare this to programming languages. :cool:

Stop being so selfish and giving those retarded answers..why does any one have to use only google in order to learn?

Isn't the forum's purpose to help everybody learn? Nothing constructive is considered as spam as far as i am concerned.

By the way, C++ is way better than java.

EDIT: After taking into consideration this answer..i decided to re-post my point of view again.
Piranha89 said:
http://www.hiveworkshop.com/forums/1553969-post22.html
Keep in mind that a forum is no MSN chat. You may also want to stop trolling like "C is better". You brought nothing new to the thread and in that special case, everyone has his own favourites.

Both C++ and Java are object-oriented languages which means that they both work the same in the inside. The main difference is that Java is actually most used in Internet, and you may say that its an "easier" language to learn.

In the contrary, C++ has much more capabilities, as you are able to program even your own system(like windows)...the language itself has many characteristics of the so called "low-level languages" like assembly.

It's hard to learn and use C++ properly but its worth it.

I am studying those languages latety...(i'm a programer) so i would really like to hear your opinion about this.
 
Last edited:
Level 6
Joined
Aug 22, 2008
Messages
123
Stop being so selfish and giving those retarded answers..why does any one have to use only google in order to learn?

Isn't the forum's purpose to help everybody learn? Nothing constructive is considered as spam as far as i am concerned.

By the way, C++ is way better than java.

EDIT: After taking into consideration this answer..i decided to re-post my point of view again.


Both C++ and Java are object-oriented languages which means that they both work the same in the inside. The main difference is that Java is actually most used in Internet, and you may say that its an "easier" language to learn.

In the contrary, C++ has much more capabilities, as you are able to program even your own system(like windows)...the language itself has many characteristics of the so called "low-level languages" like assembly.

It's hard to learn and use C++ properly but its worth it.

I am studying those languages latety...(i'm a programer) so i would really like to hear your opinion about this.

Well, I myself am studying informatics in the university at the moment, being in my fourth half-year/ semester.
The main differences I know between Java and C++ go here:

C++:
-Procedural language, not object oriented. "Objects" you can create are "structs" that do not basically implement inheritation. Simulated inheritation allows one object to inherit from multiple other objects.

-Registry and memory calculations: You can do almost everything with adresses in your memory and jump to any memory you want to, though this may be risky. This is very similar to assembler programming.

-Compiles to optimize the usage on the running computer. Transfering a compiled program to another PC and/or system may cause problems.

-Very few basic data types, no booleans. You have to use some other ways.

-Less dynamic memory reservation. If you use a 2D array, it's being reserved in the memory as if it was a "square".



Java:
-Objectoriented, everything bases on objects, their methods and attributes and the methods and attributes of their classes. Classes can inherit from one other class only, but also implement multiple static interfaces.

-No adress calculation in the memory, that's why it is called sort of "cleaner" and "safer".

-Generally compiles into bytecode to feed the Java Virtual Machine with it's information. Some of the bytecode is being compiled upon program execution. You can also get compilers that compile in C++'s compiler's ways.

-The JVM allows the usage of Java on every single system and PC with the basic Java utilities and does not really slow down any progress.

-8 basic data types (void does not count, says my prof xD ).

-Dynamic reservation of arrays: Each array is an object. If you create a 2D array, it's an array of objects on first rank. Each of these objects has to be intialized again, reserving another space of memory, but not automatically reserving a "square", which may fail if the memory has no place for a "square".

There are far more differences, but those are the main ones I supposed to be important.:wink:
 
Level 15
Joined
Aug 11, 2009
Messages
1,606
Of course there are booleans..

I also have already told you that programing in C++ kinda looks like assembly, but-this is just hard, its not bad. It gives you much more power to create "stronger" programs.

All high-level programing language can be transfered from one pc to other, at least all of my programs did. I never had a problem with it - low level languages have this problem...cause they are connected with the architecture of the pc and they cannot be moved to another, even if its made by the same company.

I think you have confused C with C++.

Well as you probably know there is not a better programing language than other, the only difference is that each one of them is better at their element.

But generally, there are many differences between them.

Java and C++ look a lot alike, and as i already told you, they work almost the same on the inside, with 1-2 differences.

C++ calls memory registers, something that makes her able to program even systems like "Windows" while Java is better in making Internet Application-that interact with the user.

I could go on for ever...
 
Level 6
Joined
Aug 22, 2008
Messages
123
Of course there are booleans..

I also have already told you that programing in C++ kinda looks like assembly, but-this is just hard, its not bad. It gives you much more power to create "stronger" programs.

All high-level programing language can be transfered from one pc to other, at least all of my programs did. I never had a problem with it - low level languages have this problem...cause they are connected with the architecture of the pc and they cannot be moved to another, even if its made by the same company.

I think you have confused C with C++.

Well as you probably know there is not a better programing language than other, the only difference is that each one of them is better at their element.

But generally, there are many differences between them.

Java and C++ look a lot alike, and as i already told you, they work almost the same on the inside, with 1-2 differences.

C++ calls memory registers, something that makes her able to program even systems like "Windows" while Java is better in making Internet Application-that interact with the user.

I could go on for ever...

Well, if you do not believe me, I could ask my prof to show you that my statements are the way he told me. Of course he won't write anything in here, so I see no point in discussing this any further.
Have a nice day.:wink:
 
Level 15
Joined
Aug 11, 2009
Messages
1,606
Yeah, he is right..if you want to continue this one, just post a visitor messge in my profiler or send me a PM.

By the way..have a look at this.

Name Description Size* Range*
char Character or small integer. 1byte signed: -128 to 127
unsigned: 0 to 255
short int
(short) Short Integer. 2bytes signed: -32768 to 32767
unsigned: 0 to 65535
int Integer. 4bytes signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
long int
(long) Long integer. 4bytes signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
bool Boolean value. It can take one of two values: true or false. 1byte true or false
float Floating point number. 4bytes +/- 3.4e +/- 38 (~7 digits)
double Double precision floating point number. 8bytes +/- 1.7e +/- 308 (~15 digits)
long double Long double precision floating point number. 8bytes +/- 1.7e +/- 308 (~15 digits)
wchar_t Wide character. 2 or 4 bytes 1 wide character

These are the type of variables in C++.
 
Status
Not open for further replies.
Top