S
Storyteller
Guest
So, ^GML (pronounced Power GML, instead of GML++, or GML#).
You know you want it. A better GML. A lot of threads here talk about other languages, missing features (myself included), even having these usable alongside GML, or replacing it.
The Dev team has been explicit, and the user community resounds 'GML forever!'. Okay, great, keep GML forever. I would wager its just too tightly bundled into the core of GM to extract. So, leave it as is. Keep it there, that's cool too. What about the very vocal and significant group of users who want some common things?
This thread is to discuss openly, just what a new version of GML should have, what features, syntax changes or options it should include. If we raise GML to the next level, we get GML raised to its power, hence GML^. (catchy right?).
Let's start with how possible this all might be. I direct your attention to the Preferences Editor in GMS2:
Here you can see "Languages" and you might say 'hey, that is for localization, like Spanish or English or French', but no, you can see 'GML' listed as the only entry. What does this imply, that there may be hooks in place for future expansion into other languages, such as Javascript, C++, LUA or I dare say, GML 2.0, GML++ or even, ^GML, as that is what this thread is all about. ( I really do not care what its called, I just want a more comfortable, flexible and powerful scripting language).
So, it may be possible, that this type of functionality will be included in a future release of GMS2 (or 3 or 4 or X).
Now, how important is it. GML is just fine you say, well, for some people it is, and for others Drag & Drop is just fine, and for others still, they may find using a native language from scratch is what they need. I think, with the repeated threads asking for a handful of very specific features, of wanting other capabilities, there is yet another tier of users, GML power users. They still want to use GMS2, but they want more from the scripting language. GM, and GML were built originally for beginners, which is why Drag & Drop is popular. GML takes that to a slightly higher level and allows you to script things that are too cumbersome or complex to arrange using icons. However, over the years, GML has had a lot of 'extras' added to it, that were made to work and not really in any kind if 'industry standard' way. They were tacked on to GML and made to fit its paradigms.
^GML aims to correct this. It is an opportunity for the developers and the community to break free of GML and its shortcomings and implement things in a more intuitive, or standard way. To open up certain aspects that are too difficult or constrained in the current system.
GML should be an option for everyone, this '^GML' would simply be a more modern iteration of that language. Like how C# is on version 6 or seven of itself, C became C++ and BASIC had a slew of dialects and became VB.
So, what is this thread for? All of this sounds nice but it is up to the devs to implement it.
This thread's for YOU!
Please post your ideas for what the next iteration of GML should look like, what features should it have? What are your 'top 5' requests? What language should it be most similar to? And, what features of the current GML should remain?
I will be monitoring this thread over the next couple of months. In two weeks, I will be going through this thread and compiling a poll on survey monkey or similar with the most requested features. You will be able to then vote on and rank those features. That poll will be open for two weeks. So mid-April, I will make a poll based on this thread. At the end of April, that poll will be closed and we can all discuss the results of that poll.
Thank you, I hope this is a positive discussion. Please refrain from arguing in here. Discussion is good, but blatant language wars or name-calling is a no-go. Try to post say, your top 1-5 features. If you like someone else's post, use the like option. It will help with the future poll.
To the Devs and forum staff: I am aware this may be a complete run around. It may actually give you guys some feedback and market research. Any light you can shed on this subject as we go, would be appreciated. What is hoped, is that this thread gives us a healthy outlet for discussion of a potential new iteration of GML, or even what might be included in GML itself. Im sure this has been tried before, but with the new release, lets give it a shot.
So, I'd like to open the discussion with my top 5 features I think ^GML should have:
so to discuss each one.
1. Structs. - 'nuff said.
2. functions and classes. This is fairly self evident.
3. events in code. like onStep or onCreate. this will lead to more readable, concise code IMO
4. typing would be nice. there is a whole section in the manual on Data Type, that are all just 'vars'. Mind you this can be a purely syntax feature, the compiler need not know, but the syntax checker could look for these to help when you program.
5. scoping: the use of no keyword for variables, and var for local scopes is backwards. its really odd to scope something down this way, much less a generic term like 'var'. Local would be good, or private. var is a bit too informal. So adding public, local or private, static etc would help a bit with know the scope and access of variables as you read your code (much less someone else's) and assist with structured code and debugging.
So those are my top 5. What features would you like to see in ^GML ?
You know you want it. A better GML. A lot of threads here talk about other languages, missing features (myself included), even having these usable alongside GML, or replacing it.
The Dev team has been explicit, and the user community resounds 'GML forever!'. Okay, great, keep GML forever. I would wager its just too tightly bundled into the core of GM to extract. So, leave it as is. Keep it there, that's cool too. What about the very vocal and significant group of users who want some common things?
This thread is to discuss openly, just what a new version of GML should have, what features, syntax changes or options it should include. If we raise GML to the next level, we get GML raised to its power, hence GML^. (catchy right?).
Let's start with how possible this all might be. I direct your attention to the Preferences Editor in GMS2:
Here you can see "Languages" and you might say 'hey, that is for localization, like Spanish or English or French', but no, you can see 'GML' listed as the only entry. What does this imply, that there may be hooks in place for future expansion into other languages, such as Javascript, C++, LUA or I dare say, GML 2.0, GML++ or even, ^GML, as that is what this thread is all about. ( I really do not care what its called, I just want a more comfortable, flexible and powerful scripting language).
So, it may be possible, that this type of functionality will be included in a future release of GMS2 (or 3 or 4 or X).
Now, how important is it. GML is just fine you say, well, for some people it is, and for others Drag & Drop is just fine, and for others still, they may find using a native language from scratch is what they need. I think, with the repeated threads asking for a handful of very specific features, of wanting other capabilities, there is yet another tier of users, GML power users. They still want to use GMS2, but they want more from the scripting language. GM, and GML were built originally for beginners, which is why Drag & Drop is popular. GML takes that to a slightly higher level and allows you to script things that are too cumbersome or complex to arrange using icons. However, over the years, GML has had a lot of 'extras' added to it, that were made to work and not really in any kind if 'industry standard' way. They were tacked on to GML and made to fit its paradigms.
^GML aims to correct this. It is an opportunity for the developers and the community to break free of GML and its shortcomings and implement things in a more intuitive, or standard way. To open up certain aspects that are too difficult or constrained in the current system.
GML should be an option for everyone, this '^GML' would simply be a more modern iteration of that language. Like how C# is on version 6 or seven of itself, C became C++ and BASIC had a slew of dialects and became VB.
So, what is this thread for? All of this sounds nice but it is up to the devs to implement it.
This thread's for YOU!
Please post your ideas for what the next iteration of GML should look like, what features should it have? What are your 'top 5' requests? What language should it be most similar to? And, what features of the current GML should remain?
I will be monitoring this thread over the next couple of months. In two weeks, I will be going through this thread and compiling a poll on survey monkey or similar with the most requested features. You will be able to then vote on and rank those features. That poll will be open for two weeks. So mid-April, I will make a poll based on this thread. At the end of April, that poll will be closed and we can all discuss the results of that poll.
Thank you, I hope this is a positive discussion. Please refrain from arguing in here. Discussion is good, but blatant language wars or name-calling is a no-go. Try to post say, your top 1-5 features. If you like someone else's post, use the like option. It will help with the future poll.
To the Devs and forum staff: I am aware this may be a complete run around. It may actually give you guys some feedback and market research. Any light you can shed on this subject as we go, would be appreciated. What is hoped, is that this thread gives us a healthy outlet for discussion of a potential new iteration of GML, or even what might be included in GML itself. Im sure this has been tried before, but with the new release, lets give it a shot.
So, I'd like to open the discussion with my top 5 features I think ^GML should have:
- Structs (and classes)
- proper functions, ie, classes with callable methods and normal argument structure
- events in code
- actual variable types, like Int, Float, etc. ie formal typing
- better scoping and protection keywords, like private, local, static, public etc
so to discuss each one.
1. Structs. - 'nuff said.
2. functions and classes. This is fairly self evident.
3. events in code. like onStep or onCreate. this will lead to more readable, concise code IMO
4. typing would be nice. there is a whole section in the manual on Data Type, that are all just 'vars'. Mind you this can be a purely syntax feature, the compiler need not know, but the syntax checker could look for these to help when you program.
5. scoping: the use of no keyword for variables, and var for local scopes is backwards. its really odd to scope something down this way, much less a generic term like 'var'. Local would be good, or private. var is a bit too informal. So adding public, local or private, static etc would help a bit with know the scope and access of variables as you read your code (much less someone else's) and assist with structured code and debugging.
So those are my top 5. What features would you like to see in ^GML ?