Discussion New Language - Discussion

lep

Active Member
Reaction score
8
Anyway, I wanted to ask a few questions before I started making the layout of the language.
What kind of language (and features) do you want?
I can add any kind of feature you guys want, provided it's possible, and I can find a way to make it (efficiently, of course).

Oh, i want parametric polymorhpie, typeclasses, patternmatching, pattern guards, higher order functions, lambdas and function currying.

Good Luck.

P.s.: no fucking switch-statement.
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
@ToolTipError :
Wth do you want mean ?

Lyerae said:
I want to do "classes", which are basically like vJASS structs, but use a global hashtable (which will have some huge, odd name to prevent it from being used accidentally. (okay, not that huge, but something people wouldn't use normally.)) instead of arrays. What do you guys think about that?
Seems fine but the user must choice it, mostly because of the 256 limit of hashtable, and the rest for the speed freak.
 

tooltiperror

Super Moderator
Reaction score
231
Troll Brain, it would be like making player groups, unit groups, but for all variable types. Sort of like a data base. [ljass] function PoolSpecialAffect takes effect whichEffect, pool whichPool, returns nothing[/ljass] It would sort of auto-add it to an array, but without numbers.
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
Troll Brain, it would be like making player groups, unit groups, but for all variable types. Sort of like a data base. [ljass] function PoolSpecialAffect takes effect whichEffect, pool whichPool, returns nothing[/ljass] It would sort of auto-add it to an array, but without numbers.

It still doesn't make sense for me.
I don't see how a such thing could be useful, a concrete example ?
 

tooltiperror

Super Moderator
Reaction score
231
JASS:
scope example initializer init

     globals
         private effect pool allEffects
         private   unit pool allUnits
         private location pool allLocations
     endglobals

     private function actions takes nothing returns nothing
          call AddSpecialEffectLoc(lalala) //I`m not on NewGen, ignore it, just imagine I entered something to create an effect
          call PoolSpecialEffect(allEffects,"lastcreatedeffect") // This will add the last created effect to the pool or database
          call TriggerSleepActon(234.00) // !!!!TSA (Just throwing in some timing.)
          call DestroyPool(allEffects) // Deletes all effects, kills all units, or whatever it has to do to destroy everything in the pool
          call EmptyPool(allEffects) // Deletes all effects ever made from someone casting a spell, or it may just remove them all from the pool?

          //create some unit here
          call PoolUnit(allUnits,"lastcreatedunit") // Adds the last created unit to the pool/database
          call DestroyPool(allUnits) // It will delete all the units in the pool, since it`s a unit pool, and not an effect pool

          set examplelocation = Location(somex,somey)
          call PoolLocation(allLocations,examplelocation) // Adds the location to a pool
          call DestroyPool(allLocations) // Removes all locations from the pool, no destruction, I guess.
     endfunction

     function init takes nothing returns nothing
         local trigger trig = CreateTrigger()
         call TriggerRegisterAnyUnitEventBJ(trig,EVENT_PLAYER_UNIT_SPELL_EFFECT)
         call TriggerAddAction(trig,function actions)
     endfunction
 endscope
 

GetTriggerUnit-

DogEntrepreneur
Reaction score
129
In my mind, libraries, scopes and structs should be replaced with classes (still using "uses/needs/requires").

If you want to make the interface with WinAPI (without Qt or wXwidgets) I could help you on it. I've been working on how to make a WinAPI interface with .rc files.

-------

Also if you make it with Java, it will be portable without having to do the code again. The interfaces in Java are a piece of cake and also, Java is slower than C/C++ but, we're not doing a game so it's speed won't change anything.

-------

Whatever the coding language will be, what do you think of doing a dynamic error pointer, such as Eclipse or Netbeans does?
 

Kenny

Back for now.
Reaction score
202
Libraries should stay, classes would be cool, and scopes shouldn't exist.

The 'pools' being talked about just seem like a system someone would make, not something that should be added to a new 'language'.

If you could implement most of the features of vJASS, just with less bugs, and maybe some of the other things that people seem to go crazy over in cJASS (talking about defines and stuff), I'd be pretty damn happy, and would definately consider using the language.

If you can keep things simple (a little simpler than vJASS) and effective (possibly more efficient), then you are definately on the right track. After all, even if you just remade vJASS but better, that alone would be a good reason to use it.

Edit:

Wishful thinking:

- It would be totally an absolutely incredible if you were able to have a compiler for mac at some stage. Not necessarily for world editor, just something that tells me that what I have written will save if I copy it over.
- A new TESH/Horus would be kick ass, even though this is something completely separate.
 

GetTriggerUnit-

DogEntrepreneur
Reaction score
129
When I code vJass, one of the thing that pisses me the most are call/set keywords. I always forget them since no other language uses these and once I get back to another language, I put them :mad:. vJass without these would already be awesome.

It's easy to check if it's a call or a variable set. brackets. ()
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
Imho "scopes" are perfect for personal codes, it's kinda boring to requires needed common libraries for triggered spells, in example.
 

Kenny

Back for now.
Reaction score
202
Scopes just seem redudant. Libraries have all the functionality and more.

Want to make it have requirements? Sure! Just add some on the end.

Don't want to? Just leave them out.

Libraries allow you too both, people are just comfortable with scopes now after being 'told' long ago that scopes could be used for spells, while libraries are for systems.

Interface would be cleaner without scopes. Don't want unnecessary things.
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
Scopes just seem redudant. Libraries have all the functionality and more.

Want to make it have requirements? Sure! Just add some on the end.

Don't want to? Just leave them out.

Libraries allow you too both, people are just comfortable with scopes now after being 'told' long ago that scopes could be used for spells, while libraries are for systems.

Interface would be cleaner without scopes. Don't want unnecessary things.

If libraries which are never required by an other one are placed the last in the script then it would be fine, but that's actually not the case with vJass.

But on a second though, yes scopes shouldn't exist but libraries should be handled like i say.
 

Kenny

Back for now.
Reaction score
202
Yes, libraries should indeed be handled differently. Which is something to look into. ;)
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
Hmm wait ...
No it's still different to "scope" the common libraries must still be required at least one time by an other one.
Yes i know i can make a library which requires all used libraries but it's still annoying.
 

tooltiperror

Super Moderator
Reaction score
231
Why not rename libraries so we don`t completely copy vJASS? I`m thinking we should do something more interesting, like this, or we could do some .J type thing.

JASS:

 AIDS.J
 endAIDS


Or something else more Turing-Like.

JASS:

 start AIDS
 end AIDS


I really want to see libraries ending with their names.
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
Libraries are staying, though I think I like the the name "namespace" in stead of library.

Pools? I'm not quite sure what you mean on those.
On the topic of building this in Java, honestly, I don't like Java. Thouh I've been considering Python if I can find a cross-platform way to compile the parser.

Also, I'm considering adding a "hash" keyword for structs/classes, which automatically stores the information in a hashtable instead of an array, though it would do this automatically if needed.
 

tooltiperror

Super Moderator
Reaction score
231
Howabout extensions?

Code:
.L   --> Library
.S  --> Struct

JASS:

 AIDS.L
   UNIT.S
   endUNIT
 endAIDS
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
That looks like it would make the syntax messy.
 

tooltiperror

Super Moderator
Reaction score
231
Possibly.

We could also do it like this.

JASS:
.
 AIDS.LIB
 AIDS.END
 

Lyerae

I keep popping up on this site from time to time.
Reaction score
105
Hmm. Interesting, but it still has the possibility of making the syntax messy...
It's definitely worth looking into though.
 

tooltiperror

Super Moderator
Reaction score
231
JASS:


 `aids.lib
 `aids.end

 *aids.lib
 *aids.end

 &aids.lib
 &&aids.lib

 ^aids.lib^
 ^^aids.lib^^

 (aids.lib<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile    :)" loading="lazy" data-shortname=":)" />
 <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile    :)" loading="lazy" data-shortname=":)" />aids.end)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top