ID:122855
 
This issue has been marked as a duplicate of id:110166
Applies to:DM Language
Status: Duplicate

This issue has been marked as a duplicate of id:110166
Well it will be a big under-taking & people need to think about the possible syntax & everything but we need to be able to make use of people's computers...

Lots of people with newer computers regardless of whether they got a low-end or high-end gaming pc have at least a dual core computer...

There are computers with 2,4,6,8,12 cores & such but these computers have a lower speed/core than normal single-core computers, my 4 core has a considerable lower speed/core than my single-core computer but the total speed is about 2.5x times higher in total...(I usually can host BYOND games better from my single-core computer if I close out a lot of the other programs on the computer that use up the single cores processing power, about 50% better...)

I have been using C++ for a while & can do similar with background workers & such & it's a more powerful language obviously, as much as im aware, it's what BYOND is made with, so obviously it has more in it than BYOND has made use of.

BYOND is about ease of programming & convenience though because a lot of things are done for you(networking, user authentication, all the back-end for icon/sound processing, etc..)

While I could use the more powerful C++ I want to stick to BYOND because it's a lot less hassle than moving over to C++ & having to code all the networking, security, user authentication, music/sound processing...and all the graphical related programming.

Also BYOND has a website for advertising your game & even just the ability to have it hosted off BYOND for a small fee(byond membership) is just great...moving to C++ would be as big an under-taking as multi-threading is for BYOND to implement...

---Anyways people can discuss the possible syntax, the feasibility of this in the future, BYOND 5.0, 6.0, etc... for example...the big updates like 5.0 & 6.0 though obviously since this is a big job...

--So syntax, and the possible time-frame such as maybe in BYOND 5.0 or as far off as BYOND 6.0 is what needs to be discussed...time-frame for the BYOND staff to decide, syntax is for the people who use DM to decide what they think would be the best way to make use of it, and then the BYOND staff to decide how feasible an implementation using that syntax would be.
I couldn't find it on the tracker, I know it was on the regular forms too back before BYOND had the feature tracker & you posted on the forums, thanks for the link to the one on the feature tracker...

---Some possible syntax might be...

threads(new datum/type)
UI(default)
Custom1
Custom2
etc...
those just naming threads then under procs you can use thread="name" to define a thread other than the ui thread to run on...certain things like in C++ may have problems being done on the background thread which could bring up errors such as command not accessible from a background thread...then you could call another proc to do the action(s) from that proc for action(s) not supported in another thread..which maybe stuff like anything having to do with the interface...
BYOND doesn't necessarily need multi-threading to make use of multi-core CPUs, but it could use a speed boost. This forum post contains some numbers comparing DM's performance against Python and Java.

One of DM's strong points is that developers don't have to worry about threading/concurrency issues. I'd only open that can of worms if it's transparent to the developer.
I know it could definitely use a speed boost, but the strong points for me is seen a little different than others...Being able to make use of multi-core is good, obviously users don't need to make use of it even...

BYOND can do & already does run different things in seperate threads but it doesn't have be transparent to make easy & good use of multi-core...

In C++ it's just about as easy as adding the background worker with a line of code, linking up the dowork event & put in the code for w/e you want, like AI & it runs just fine...

BYOND could probably add in new threads when calling procs & everything if they wanted to or maybe verbs code called from somewhere else, etc... but I think it's more of they are wary of using any multi-core stuff in the program because their afraid of the same kind of race conditions & aren't wanting to take the time to learn everything & start up such a large project, not that they don't want to do something like this..that's how I feel at least.
You couldn't find it on the tracker because you didn't search closed issues.