ssss
|
|
Reply #15 Posted on: September 15, 2013, 04:26:54 am |
|
|
Joined: Jun 2013
Posts: 24
|
You were talking about python, not c++, so I mentioned lambdas. Multiple inheritance doesnt matter but classes with some kind of inheritance do. You are trying to say that objects in GM are classes and TBH I don't know how parenting works with them. Do GM objects have methods? Do they have inheritance of methods and virtual methods of the subclass can be called by the base class? I'm not really sure that objects are equivalent to classes in other languages. C++ does have literals like for an array {1,2,3,4}, but I don't think ds_map has anything like that. Python does have pointers if you use ctypes or other libraries. Almost everything is a reference in python. But it is different than GML returning ints because the ints in GML have no type information. You don't know if the int is an object or a ds_map. I don't see how no pointers makes a language the best. I assume brainfuck doesn't have pointers, but that doesn't make it a good langauge. You're saying that the biggest waste of time for a programmer is figuring out how pointers work?
Now you say that GML is faster because you have GM and the IDE with it, and in python you don't. I think the GM IDE is great for quick 2d games, and maybe there isnt anything like that in python. You win. But that has nothing at all to do with comparing GML and python as languages. GML is still a shittier langauge than python. If lacking those features doesn't slow you down its because you haven't learned how to program effecively in a real langauge.
|
|
|
Logged
|
|
|
|
|
|
ssss
|
|
Reply #18 Posted on: September 15, 2013, 04:39:54 am |
|
|
Joined: Jun 2013
Posts: 24
|
I mean who wants to do
a=ds_map_create(); ds_map_add(a,"a","A"); ds_map_add(a,"b","B"); ds_map_add(a,"c","C"); when you could do
a={"a":"A","b":"B","c":"C"} which language is shittier? when will yoyo add an easier way to initialize ds_maps and ds_lists? TBH they need at least something like
a=ds_map_create("a","A","b","B","c","C");
|
|
« Last Edit: September 15, 2013, 04:41:25 am by ssss »
|
Logged
|
|
|
|
Goombert
|
|
Reply #19 Posted on: September 15, 2013, 04:46:14 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Wait, can you initialize lists like that in enigger?
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
TheExDeus
|
|
Reply #20 Posted on: September 15, 2013, 02:59:10 pm |
|
|
Joined: Apr 2008
Posts: 1860
|
But you think that somehow lacking certain aspects makes a language worse. That is often times not the case. When you say things like objects not having methods, then you must understand that you don't need them (although you can call user defined events as well as run scripts in other objects and so on). GM is made in a way that all these features (including pointers) are unnecessary and having them would probably be worse. Like having special overload for bools in a vector is the bane of STL implementations and everyone who implemented it now knows that they shouldn't have. But they cannot remove that. The same is for language specific things as well. For example, Python doesn't allow you to use curly brackets and asks for tabbing to make it work (which is acceptable for writing good code, but lack of braces removes all improvements from that) - In my eyes (and a lot of other people) this creates the shitties looking code ever. This is of course subjective (as everything else we just posted here), but what I am trying to convey is that missing features != bad language. If you can do the same thing with the same (or less) lines of code, then it just shows how redundant that feature was. And in GML I can program VERY complex objects very quickly. Something that would require the same amount of time (or more) in Python. Now you say that GML is faster because you have GM and the IDE with it, and in python you don't. But there is no GML without GM. Yes, if I had to write all the code in notepad and then compile, then all the great features would of been for nothing really. The IDE is at least 50% to 70% of the whole thing. If lacking those features doesn't slow you down its because you haven't learned how to program effecively in a real langauge. I am quite proficient in C++ and I don't see how knowing it any better would make me work any faster. Of course I would make less mistakes which would increase my time a little, but not some great "feature" that will somehow reduce 100 lines of code to 5. which language is shittier? when will yoyo add an easier way to initialize ds_maps and ds_lists? It doesn't make any language shittier. The code does forbid curly braces, which makes that "feature" the biggest reason I hate Python. It does make GML more verbose, but that is very rarely a problem. Long functions names (especially for ds_) is sometimes a hassle, but that is not because of language itself. TBH they need at least something like We can add that.
|
|
|
Logged
|
|
|
|
ssss
|
|
Reply #21 Posted on: September 15, 2013, 09:08:58 pm |
|
|
Joined: Jun 2013
Posts: 24
|
but not some great "feature" that will somehow reduce 100 lines of code to 5. But thats my point, how do you initialize a large ds_map without using like 100 lines? Tell me how I would quickly initialize a ds_map instead of doing: a=ds_map_create(); ds_map_add(a,"a","A"); ds_map_add(a,"b","B"); ds_map_add(a,"c","C"); ds_map_add(a,"d","D"); ds_map_add(a,"e","E"); ds_map_add(a,"f","F"); ds_map_add(a,"g","G"); ds_map_add(a,"h","H"); ds_map_add(a,"i","I"); ds_map_add(a,"j","J"); ds_map_add(a,"k","K"); ds_map_add(a,"l","L"); ds_map_add(a,"m","M"); ds_map_add(a,"n","N"); ds_map_add(a,"o","O"); ds_map_add(a,"p","P"); ds_map_add(a,"q","Q"); ds_map_add(a,"r","R"); ds_map_add(a,"s","S"); ds_map_add(a,"t","T"); ds_map_add(a,"u","U"); ds_map_add(a,"v","V"); ds_map_add(a,"w","W"); ds_map_add(a,"x","X"); ds_map_add(a,"y","Y"); ds_map_add(a,"z","Z"); Long functions names (especially for ds_) is sometimes a hassle, but that is not because of language itself. Yes it is because of the language itself. If you didn't have to use ds_map_add to add every element of a ds_map then you wouldnt have to type it 100 times. If they let you do ds_map_add_multiple(map,"a","A","b","B","c","C"); and that would still have nothing to do with the language but at least helps you write code faster. But they could add a ds_map literal like {"a":"A","b":"B","c":"C"} to the languageGML is an bad language until they add stuff like that. But yeah python is goddamn ugly too with requiring tabs.
|
|
|
Logged
|
|
|
|
Goombert
|
|
Reply #22 Posted on: September 16, 2013, 01:08:18 am |
|
|
Location: Cappuccino, CA Joined: Jan 2013
Posts: 2993
|
Nobody answered my question? KTHX fags bai
|
|
|
Logged
|
I think it was Leonardo da Vinci who once said something along the lines of "If you build the robots, they will make games." or something to that effect.
|
|
|
time-killer-games
|
|
Reply #23 Posted on: September 27, 2013, 09:23:39 am |
|
|
"Guest"
|
One thing that I think would make ENIGMA easier to impliment as a compiler for virtually any IDE... There should be a way to download binary console applications for Windows, Mac, and Linux that convert EGM, GM81, GMK and GMX to whichever OS the end user is currently running. As for EGM Support, sense all that format is, is basically a zip, maybe a parameter in the command line could add support for password protected EGMs/ZIPs.
This is useful for getting other people to port or test compilation on their platform without having to give them access to your source code that they could steal. This is also a good idea for creating commercial game templates without giving out the source, due to the password protection. CMD Example:
cmd.exe [input egm] [output exe] [password string <optional>]
Also note, this is something I'm say ENIGMA should really include, not written in GML, but C++ Like the rest of the engine.
|
|
|
Logged
|
|
|
|
|