• 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.

why not wurst?

why you no wurst?


  • Total voters
    16
Status
Not open for further replies.
Level 6
Joined
Jul 30, 2013
Messages
282
its very hard in reality to migrate existing maps to use it, especially if you already use 1 or more pre-processors. and you don't really make brand new maps at this point in time.

oh and .. update the poll :p
 
Level 21
Joined
Jul 6, 2014
Messages
6,790
Well,ill go with vjass is everything i need, i love it! since i have much more experience in it and find it less complicated
 
I already have everything I want in Wc3 with Jassnewgen and vJass.
I've been working with it and now pretty much know everything apart from a few scripts that I might look up on sometime.
It's also easier to advertise systems/spells with vJass considering it is known as the widely used language in the community for Wc3.

I might check it out sometime later though for a possible replacement(/upgrade?) with my map developing.

It's not easy to compete with a language already widely used in such a late stage of the games history.
 
Wurst doesn't give you control over absolutely everything ; ). It also doesn't follow the JASS paradigm : (.

Already showed an example where Wurst performs in O(n) and vJASS performs in O(1) : ).

If the next pointer of a linked list is also used for the recycler stack, then all nodes on that linked list can be deallocated in O(1).


To solve the vJASS extensive script and map migration problem, create a vJASS to Wurst translator. This means that you'll have to expand some features to handle some current compatibility issues.

To solve my problem, allow users to override allocation code
 
I like Wurst...
The reason why I'm not moving over, though, is that vJass works fine for me (and my real-world game-related applications without advanced magic mumbo-jumbo that nobody really cares about). Since Newgen v2.0 fixed the LUA Object Merger, I don't even need the compiletime functions of Wurst anymore.

What you guys experience is the problem of establishing a new standard in a stagnating or pragmatic market.
It's the reason why Bluetooth never really kicked off or why we still have the horrible ancient MIDI standard in music hardware industry, even though USB is superior in every way imaginable:
The old system does everything the new system does and the advantages of the new system only matter to a very limited userbase. The perceived (I'm aware that Wurst offers more advantages than most people think) advantages of migrating to the new standard are negligible compared to the resource opportunity loss of learning a new language or even worse: learning a new workflow.


So, in short, this is an excerpt of my thinking process when I deal with vJass-related problems:
- Hey, a problem... meh, this would be easy and cleaner to do in Wurst
- But I'd have to open Eclipse to do it...
- Also, I'm not that experienced with Wurst ...
- Never mind then... I'll stick with vJass for now
 
Level 10
Joined
Sep 19, 2011
Messages
527
Nestharus said:
Wurst doesn't give you control over absolutely everything ; ).
uhmm, less things to worry about?

Nestharus said:
It also doesn't follow the JASS paradigm : (.
i don't see why this is a problem xD

Nestharus said:
Already showed an example where Wurst performs in O(n) and vJASS performs in O(1) : ).

If the next pointer of a linked list is also used for the recycler stack, then all nodes on that linked list can be deallocated in O(1).
i don't think this is a flaw of wurst but from the package

Nestharus said:
To solve my problem, allow users to override allocation code
you can make your construct private and create an static method for allocation
 
Last edited:
I couldn't find the GUI option in the poll, might want to check on that and fix it. =)

Why wurst in the first place? It's the same type of reasoning as SC2 and that is problematic. It's advanced, looks too different from JASS as well why bother when there's far more basically everything/anything for GUI and JASS/VJASS. It's just another scripting syntax that doesn't really matter except for like 10 people. Do you see anyone using Zinc or Cjass or any of the others? Maybe XGM, but otherwise I doubt it.

Point is your a decade late. Still it is worth spending a few minutes into it to check wurst out so don't be fooled everyone. You might like it, just it'll require more work then your normal syntax's already require. GUI requires a lot of clicking, JASS requires a lot of cluttering and VJASS requires a lot of checking. Since Wurst isn't better in any way except for viewing..... It's just another way to mod WC3 and at least it made it further then the others that fell behind. I'll say one thing... It has much less stuff for it and even less people willing to help you with it.

Edit: It also requires an extra add-on to use it.

Stuff like that doesn't kick off without a lot of help from a community.
 
Level 6
Joined
Jul 30, 2013
Messages
282
@Dat you sound like you realyl dislike Wurst for some reason.. care to explain?

"Do you see anyone using Zinc or Cjass or any of the others? Maybe XGM, but otherwise I doubt it."

I use cjass, it really saves a lot of effort. + vjass macros are useless pieces of crap you cant even use them inline.., cjass macros are a lot more flexible.

cjass has lambdas(most people don't even know this), so you can write your (preferable only short for readability) callbacks in-line.

and for loops (the for e in iterable style ones)

about zinc.. zinc is really vjass with a different syntax, nothing more that is why few people use it, it adds little power and it came later = disadvantaged from the start.

"Edit: It also requires an extra add-on to use it." -- so does vjass(JassHelper oh and theres 2 incompatible syntaxes how nice..) so you are disqualified.

"You might like it, just it'll require more work then your normal syntax's already require. GUI requires a lot of clicking, JASS requires a lot of cluttering and VJASS requires a lot of checking. Since Wurst isn't better in any way except for viewing..... "
ehh.. where do i start..
"You might like it, just it'll require more work then your normal syntax's already require."-- in exactly what way? it is definitely a lot more powerful in that you can express more with less.. so it cant be cognitive load.. so .. typing? nope lots shorter too... u cant read indent based languages?? you don't indent your code ??? i don't ever want to read your code then..

"Since Wurst isn't better in any way except for viewing..... " --I strongly disagree with "its not better in any other way that for viewing" but also i think you strongly underestimate the importance of the viewing experience. in any project where you are not solo (i'm on one of those war3 map teams where there's enuff people that coordination is actually a thing of it self cuz of team size) readability is immensely important. the worst thing you can do to a project is to generate hard to understand code, and if a syntax can help with that i see that as a value in itself!
 
Everything converts to JASS so it doesn't matter. I would rather know how to make the best most efficient script of the syntax I am working with then rely on a translator I don't fully know. That's just how I like it. Now it's different if we're talking about machine language since everything converts to binary in the end for computer languages since that isn't able to be read easily by human eyes.

I don't dislike any of the scripting syntax's, just wanted someone to provide some info so I didn't have too. Thank you =)
It's nice to have more then JASS since it allows people to choose how they want to mod WC3 and maybe they can learn Cjass or wurst easier then jass/gui or vjass. Point is that VJass is a global WC3 scripting language and it already does what is asked of it. You didn't have to add the extra bit in your reply though. Nothing is stronger then JASS in wc3 is my point. Each scripting language has their advantages and dis-advantages while VJass has nearly no dis-advantages. Also what does Eclipse have to offer for your editor besides Wurst?

One of the worst things for a programmer/scripter is being a lazy one. This is of course my own opinion as well.

Edit: The way you typed that leads me to not wanting to read your code. I think auto-indenting would be nice for any language.

I don't use VJASS even except for generating lots of data for a CSS system or something and it's hacked/edited editor functions.
 
Level 20
Joined
Jul 14, 2011
Messages
877
You can still write Wurst inside the editor, but it isnt exactly the same. This, for example, works:
Wurst:
package Test
    function say()
        print("Hello")
    endfunction
init
    print("Hi")
    say()
endinit
endpackage
You dont actually need to indent it, so you dont have to worry about that, I guess.
 
Still using GUI because I'm more comfortable with it and find it faster to code in most cases.

The reduced performance with all the unnecessary function calls in GUI is largely irrelevant with modern computers.

I often have to code in a strange way due to having to use triggers instead of functions, but I always manage to solve the problems I encounter.
 
Level 6
Joined
Jul 30, 2013
Messages
282
The reduced performance with all the unnecessary function calls in GUI is largely irrelevant with modern computers.
i tend to agree. for most use cases performance is not even in the top 10 of concerns :)

sidenote: a good optimiser should be able to inline the useless swap-style BJs and get the cost down to 0. (jasshelper does this? it should..)

no locals or functions scare me away from GUI tho. makes it too much an effort to write clean code. but good luck :)
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
That's just how I like it. Now it's different if we're talking about machine language since everything converts to binary in the end for computer languages since that isn't able to be read easily by human eyes.

not true. Jass in fact is only ran by machine that is representable in machine code, but Jass itself does not get converted to binary.

Also, check Java, Php, Javascript, Html and pretty much any language nowadays, none of them are actually compiled(I know Java has JIT), they are all interpreted.

Each scripting language has their advantages and dis-advantages while VJass has nearly no dis-advantages. Also what does Eclipse have to offer for your editor besides Wurst?

You would be surprised how many bugs/disadvantages there are in JassHelper.

Also, it gives you automatic dynamic highlightning.
 
Level 6
Joined
Jul 30, 2013
Messages
282
not true. Jass in fact is only ran by machine that is representable in machine code, but Jass itself does not get converted to binary.

Also, check Java, Php, Javascript, Html and pretty much any language nowadays, none of them are actually compiled(I know Java has JIT), they are all interpreted.

  • interpreted/compiled is not a language feature its an implementation detail
  • a language can have both interpreted and compiled implementations.
  • it is easy to make an interpreter thus the first implementation of a language is likely to be interpreted
  • compilation often times does not mean what you think it means. for example all java code has to be compiled to class files before they are run.
  • ..but the compilation output is not native x86 machine code, it is JVM bytecode which then gets interpreted.
  • ....... unless the JIT kicks in (which compiles a tiny bit of code to actual machine code, in which case java is now simultaneously interpreted and compiled at the same time (nice ;) )
  • jass2 has an internal bytecode interpretation last i heard (the return bug kind of revealed that. btw anybpdy got any good materials on that? i might wanna be writing my own soon..)

and in particular i find issue with:
"none of them are actually compiled"

Ehm HTML?! id hardly even call that a programming language..
but ok. im sick of that conversation so fine you got me and be happy..

Java.. is statically typed and thus there are numerous examples of it being compiled to native x86 machine code.
(tho the expensive part is dynamic dispatch not interpretation so the performance gains tend not to be spectacular enough to merit wide adoption)

now php and python.. those are are quite dynamic indeed and pay a hefty performance penalty.
tho.. most users tend to value their time more than cpu cycles so they tend to live with it.

Sometimes a project comes along that promises that they can use their favorite language while doing crazy performance intensive things .. and that gets a LOT of attention..

exhibit a: https://en.wikipedia.org/wiki/HipHop_for_PHP#History_Before_HHVM

also of note: (altho these rely on JIT a lot, so it might not fit your definition of compilation)
http://hhvm.com/
http://pypy.org/
 
Level 23
Joined
Apr 16, 2012
Messages
4,041
well he said "everything" is compiled into native code, and Ive given 8 or more proofs of that being a lie. I dont say Java or Python cant be JITed, but more often than not they arent.

But yeah...I misused the word compile, I meant compiled to native code, but obviously Java is still compiled, but not directly to native code(JIT happens during runtime afaik)
 
Status
Not open for further replies.
Top