|
Josh @ Dreamland
|
|
Reply #121 Posted on: May 15, 2010, 06:55:06 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
COBOL did work fine, then we found something better. Hey, go find something better.
Don't give me "lots and lots" bullshit; I can enumerate every inconsistency with the languages and what's been done about it. There are roughly five. Holding lexed code to determine what type an object is before acting on it isn't one of those inconsistencies.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|
|
Josh @ Dreamland
|
|
Reply #124 Posted on: May 15, 2010, 08:25:19 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
In the case that it is declared as "local int", "local string", or what have you, in a later event, which could be considered bad practice, but it seems asinine to disallow that over the minuscule amount of work taken to support it.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|
Josh @ Dreamland
|
|
Reply #126 Posted on: May 15, 2010, 09:31:15 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
Well, it's an irremovable part of ENIGMA's philosophy. And it's a bit late to fork the project over it. If you don't like it, you don't like ENIGMA, and you probably don't belong here.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
Mith
|
|
Reply #127 Posted on: May 16, 2010, 06:40:54 am |
|
|
Joined: Apr 2010
Posts: 7
|
miky: Being able to have a scripting language in the same source as C++ is really very nice, and in many cases worth the trouble. Just think about it! You can code in your usual GML, and when you find that you need a red-black tree, or you have a loop that you would like to go somewhat faster, you can simply switch over to C++ and use that. Despite the cost of using and mixing 2 languages, people still find it worth it - why else is Lua so popular in game engines*? I can understand why you fear the trouble of mixing them, but I am certain that you can see the advantages if you think about it. And it will also be of great value to Game Maker users, since they can take advantage of C++ with very little effort. In general: This debate seems to have gone off the road. Arguing about the parser when it is already implemented seems futile, especially since it isn't broken. The quality of its design can always be discussed, but as long as there is more pressing problems, and it works, it really seems a bad idea to even discuss it. There is more important issues to focus on. Regarding the culture of discussion, I think Josh has been fair in regards to which design to use. There are open source projects out there that have a strict meritocracy - only the ones who have actually contributed are listened to. If Josh didn't care about others opinions, why have he debated for 9 pages? I can understand why some people might be bitter that he hasn't chosen their solution suggestions, but I don't believe it is because he really only would choose his own solution. I think the division comes from the fact that people feel strongly about choosing the "correct" solution - the scalable, formal, beautiful solution. And choosing that solution is often a very good idea. But ENIGMA has very limited resources, and the fact that Josh compromises with beautiful design when it (1) isn't the most important part of the system (such as the parser or the component/tier system - it is other, much more important factors that will make people use ENIGMA over Game Maker, such as it being open-source, faster, source compatible with C++, cross-platform, etc.) and (2) can save him considerable time (time being an important resource, especially in an ambitious one-man project as ENIGMA), I don't think it is very fair to blame Josh for not choosing the "correct" solution. That is also why I cast my vote for the tier system. Not because it was the "correct" choice, for I really think that the flexible system is more beautiful, but because it is tried and tested elsewhere (Josh mentioned seeing the tier system in other engines), it will get the job done (it fits well with the basic subsystems like sprites, collision, etc.), and it will not take too long to implement. As far as I have understood, choosing the component system would be nice, but not really necessary, and not give much value for work. The only thing that could convince me the component system was better was if someone could figure out how to implement it quickly in ENIGMA and solve the current issues with it. I personally believe that the speed sacrifice is worth the advantages of the component system, but I also respect the philosophy of getting as much speed as possible - this is, after all, a game engine, and speed is one of ENIGMA's main selling points over Game Maker. Finally, since Josh has done nearly all the work on ENIGMA (not forgetting IsmAvatar's work on LGM), I believe he is deserving of at least some respect. Without him ENIGMA wouldn't exist. (*See the bottom part of http://www.satori.org/2009/03/the-engine-survey-general-results/)
|
|
|
Logged
|
|
|
|
freezway
|
|
Reply #128 Posted on: May 16, 2010, 11:57:57 am |
|
|
Joined: Dec 2009
Posts: 220
|
Josh should stop talking in third person
|
|
|
Logged
|
if you drop a cat with buttered toast strapped to its back, which side lands down? joshdreamland: our languages are based on the idea that it's going to end up FUBAR /kick retep998
|
|
|
Mith
|
|
Reply #129 Posted on: May 16, 2010, 01:36:32 pm |
|
|
Joined: Apr 2010
Posts: 7
|
I guess you think I am being overly supportive of Josh and that my post count is too low, and therefore that I must be Josh. Please authenticate my identity by looking at my email in my profile (mithunder@hotmail.com), and compare it with the email of the gmc user "mithunder", who has a high post count with old posts. In case the email cannot be seen on my profile on this forum, send an email to the email of "mithunder" on the gmc, and I will reply, confirming "mith" here is the same as "mithunder" on the gmc.EDIT: Or better yet, look under "interests" at the following link: http://gmc.yoyogames.com/index.php?showuser=26685Anyways, I would like you to refute my arguments. I read the 9 pages, and decided to reply seeing that the debate had not come to any conclusion or agreement, and was becoming futile with mud-throwing. Personally, I think meritocracy is a good model for open source projects, and this thread has not convinced me otherwise. Rusky has good ideas, but I don't believe he appreciates the situation enough. Free-time open source projects have very limited work resources, and it is important to consider that. And while choosing the "correct" situation is often a very good idea, sometimes you must consider implementation time and issues as well.
|
|
« Last Edit: May 16, 2010, 01:49:12 pm by Mith »
|
Logged
|
|
|
|
|
MahFreenAmeh
|
|
Reply #131 Posted on: May 16, 2010, 06:45:52 pm |
|
|
sysadmin
"Web Team" Location: Austin, TX Joined: Apr 2008
Posts: 13
|
|
|
« Last Edit: May 16, 2010, 06:48:47 pm by MahFreenAmeh »
|
Logged
|
sys(tem)admin(istrator) [java,c++,c,javascript,html,css,php,perl,ruby,python,sql] if you've got ideas, let me hear them.
|
|
|
Rusky
|
|
Reply #132 Posted on: May 16, 2010, 07:00:50 pm |
|
|
Joined: Feb 2008
Posts: 954
|
Being able to have a scripting language in the same source as C++ is really very nice, and in many cases worth the trouble. Just think about it! You can code in your usual GML, and when you find that you need a red-black tree, or you have a loop that you would like to go somewhat faster, you can simply switch over to C++ and use that. Despite the cost of using and mixing 2 languages, people still find it worth it - why else is Lua so popular in game engines*? I can understand why you fear the trouble of mixing them, but I am certain that you can see the advantages if you think about it. And it will also be of great value to Game Maker users, since they can take advantage of C++ with very little effort. The point is more that mixing the two languages in the same source causes ugliness, if not real problems. Lua is popular because it integrates well with C, but it doesn't include C semantics the way Josh is doing with EDL. From Lua, you have to call C functions specifically designed for Lua, and from C you have to call Lua through their API. Josh has done a great job integrating GML semantics into C++ with var, but beyond that things get sticky, and he's pretty limited on things like object_event_add or new, EDL-specific features that would be just as nice (or more) as having C++.
|
|
|
Logged
|
|
|
|
Josh @ Dreamland
|
|
Reply #133 Posted on: May 16, 2010, 07:12:02 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
Sticky how? My proposal for object_event_add was V8; Luda believes he could write a faster JIT compiler with the more focused purpose of interpreting GML; problem is the experience factor. Luda's a talented individual; so's serp, and I like to think I am, but I'm not sure how we'd fare against the abilities of V8's team, even with a vastly simpler language. Really, I'm still quite open to suggestions on that matter. I will probably code something that generates the backend of an interpreter for games, and I know exactly how that will be done, but the front end is still completely subject to debate.
I should, in fact, forward two proposals on this forum that are somewhat related to the matter.
Things aren't really sticky with bringing in C++ features, though; we're using a C++ compiler. All I have to do is understand the syntax enough to ignore it; to check that everything in <> is a type or simple value, and that all (t*)<(.*)> are replaced with t(.*) of equal size, and templates are introduced. Then I need a pass to get members of event-declared structures, then one to resolve all "a.b" in light of the new information. It's little more than I have to do to support globalvar (Which will end up as a macro to global var). The only aspect I really have to go out of my way for is the scope resolution operator, ::. But I'll recover.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
polygone
|
|
Reply #134 Posted on: May 16, 2010, 07:45:19 pm |
|
|
Location: England Joined: Mar 2009
Posts: 794
|
Would it not be possible to allow setting a script C++ only or gml only? So then you had a options where compatibility wasn't an issue.
|
|
|
Logged
|
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
|
|
|
|