if a 12 year old can learn Basic and C# anybody can
But that is not for everyone. Some 12 year old's learned assembler (and some 7 year old's as well) - does that mean everyone can? Some people (in my experience most) cannot even install Windows. The average person needs something easy to start with, and GML is by design easier than many other languages. This is actually truer for older people, as a 12 year old could actually grasp new things quite easy, but if a person starts coding when he is 20, then it ends up a lot harder.
you are talking to the person (me) who argues that all programming languages are fundamentally the same.
They are fundamentally the same. I am arguing the same thing. But they are not the same to learn and use. That is why I think learning GML did teach me the fundamentals a lot easier than learning C# (which I sadly will probably end up learning even though I don't want to).
for god sakes it has 1 data type
And that actually makes it more like C++11. Having 1 data type is also extremely important aspect why GM was so easy to learn and use. Yes, it does bring down performance (just like immediate mode drawing), but it does make it more understandable for new users. There is a reason why GM tutorials start with drawing a moving sprite, while C++ tutorials start with "Hello World!" inside a black console. It's because drawing a moving sprite in GM is even easier (to both do and understand) then drawing text in C++.
In fact most code you find is simply calls to existing built-in functions, most of GML is very very low-level
This is a little contradictory because using built-in functions is usually higher-level. But I get your point. This is true for almost 99% of functions in 99% of languages. You think when you draw printf() you do something extremely low-level? It is a premade function and it calls other premade functions. But I also agree (and previously said) that the style GML is structured is quite low-level. And I also think this mix between easy to use and being low-level is why it is so good to learn.
This is the number one thing that you are completely missing and are completely wrong about.
I am not missing anything, because you KEEP AGREEING WITH ME.
Harri it would not be 1 function to make a GUI label, you would still have to call draw set font vs just creating the label object where you want it, setting the font, and letting it be.
I previously didn't use font function also in your label example to just show how easy it is to use one vs the other. If we use font setting it still is 2 functions for GML style and 5 functions for label style.
Even more complex code would be needed for a button such as handling input
And this is exactly what I have been saying for 2 pages now. Yes, in GM you have to do these things yourself and that is why it teaches you a little more. But the best thing is that even though you have to code this manually, it takes only a few lines of code. And if you don't want to repeat code you use scripts. This is what I was saying previously.
there is a reason why every other game engine handles GUI stuff
The reason is because IT IS more optimal. We already discussed this. This label type thing allows better memory management and better rendering (as you can batch all labels once and then render). And it was exactly my point I made previously (in the several posts in which I mentioned GL1/GL3). So you still keep saying the same thing I keep saying.
Basically what it boils down to for me is that you should use a tool suited for what you want to do and your experience level which means that I think GML is a good start.
And I agree. If there wasn't ENIGMA I would still use GM, because I could create everything I need it in. Everything from CS:S HUD editors (
http://css.gamebanana.com/tools/4483 which was create in about 1 week originally. No longer works because CS:S changed and because I used my server for auto-updates which is now offline. Was to lazy to update) to circuit drawing programs (
https://dl.dropboxusercontent.com/u/21117924/22.03.2011_Day30_%28DevDayMaybe13%29.png, which was create in about 13 days). And GML did help me understand C++. I also agree with your bottom-up learning model as that is how I learn all programming languages. I have a project and I program. When I stumble on a problem, I try to fix it (by myself or by google) and that is how I learn new things. While reading a book once could be useful to understand the internals, I don't think that it is a practical way to learn.