HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Is OOP is possible in either JASS or vJASS?

09-08-2008, 10:45 PM#1
TheDefiled
I'm starting to move into the more advanced areas of coding JASS, and I was wondering if it's possible to use OOP in JASS. Any insight in the subject is appreciated.

TheDefiled
09-08-2008, 11:59 PM#2
Captain Griffen
Read the JASShelper manual. Heck, get it bookmarked.
09-09-2008, 07:42 AM#3
Jazradel
The entire point of vJass is to add OOP.
09-09-2008, 12:33 PM#4
Vexorian
Is it?
09-09-2008, 02:11 PM#5
Toadcop
ofc no...
to add possibility to declare global vars B-)
09-10-2008, 05:36 AM#6
Jazradel
I thought it was. I know it has other stuff in it, but it seems secondary to the OOP stuff.

It's not true OOP btw, just faked using globals.
09-10-2008, 01:47 PM#7
Alevice
I thought vJass was all about textmacros
09-10-2008, 03:38 PM#8
PitzerMike
I believe it's all about lazyness.
09-10-2008, 03:52 PM#9
Flame_Phoenix
Don't listen to this some them... JASS can not have OOP, however Vexorian did a great job trying to add to it. One of the objectives of vJASS is try making this language more OOP, however, know that neither JASS or vJASS will ever be truth and real 100% OOP.
Also, vJASS makes life a lot easier, if you guys don't like it then beat it, and don't say people who use it are lazy, because it is thx to vJASS that this community has so many super spells and codes.
In my point of view, vJASS can never be reduced merely to some function it has. vJASS is a lot more than dynamic arrays, textmacros and even free global declaration. vJASS came to stay, and every time Vexorian releases a new version, it gets better and better.

In the end, I advise vJASS to every one.
09-10-2008, 06:27 PM#10
Alevice
Dude, you missed the point... but yeah, you explained it clearly to the OP, so no sarcasm towards you for now.
09-10-2008, 08:53 PM#11
Captain Griffen
vJASS has OOP. Just because it is compiled to a language that doesn't means nothing. It isn't a fully OO language, though.
09-10-2008, 09:02 PM#12
Vexorian
Everything depends on the definition of OOP you use.

For example, there is no true inheritance in vJass, and there aren't things like abstract or protected, besides of a couple of other things that are very broken in OOP... In many ways vJass does things different, this is the reason I chose the keyword struct for those things.

True OOP is perfectly compilable to Jass, but I am not the sort of guy that would like to do that.

vJass' primary objective is to make code easier to share. The second is to actually allow data structures, something that is awfully missing/hard in normal Jass.

--
Hmnn http://www.iwriteiam.nl/AoP_OOCH.html The beginning of that article explains what I wanted to say in this post better. The rest is well... an article, notice I don't necessarily agree with it.

To explain vJass, I just keep taking ideas I like from other languages and ideas I have that could be nice to have.