1. Hey! Guest! The 35th GMC Jam will take place between November 28th, 12:00 UTC - December 2nd, 12:00 UTC. Why not join in! Click here to find out more!
    Dismiss Notice

Does GML coding make you an inferior programmer?

Discussion in 'Off Topic' started by Artwark, Aug 8, 2016.

  1. Artwark

    Artwark Member

    Joined:
    Jul 11, 2016
    Posts:
    351
    To me, as long as you know what to do, GML coding is the most simplified coding I've ever learned. Granted, I still have a lot to learn in this but as far as my intermediate knowledge is around, I think I can safely say that this language is easy to get into.

    That being said, I wonder if learning and using this language will make you feel like you aren't a "Real" programmer who learns C++ and does lots of coding to implement even basic character movement.
     
  2. FrostyCat

    FrostyCat Member

    Joined:
    Jun 26, 2016
    Posts:
    4,607
    Coding in GML doesn't make you an inferior programmer. Coding only in GML makes you an inferior programmer. More generally, coding only in one language, no matter which one it is, makes you an inferior programmer.
     
  3. Paolo Mazzon

    Paolo Mazzon Guest

    C++ does not make you a "real" programmer, GML is just as much programming as C++, its just that C++ is much more difficult to use in parts (Because C was designed to be basically just more readable, convenient assembly). But here is a good counter-question, what is an inferior programmer? Someone who's bad at programming perhaps? I think it's best if you drop all self-consciousness with your programming ability; who cares how good people think you are?
     
  4. Dengar

    Dengar Member

    Joined:
    Jun 21, 2016
    Posts:
    285
    I don't believe it makes you an 'inferior' programmer. a programmer is still a programmer.
    frostycat beat me to it. but well said
     
  5. L0v3

    L0v3 Guest

    Any programming skills is universally applicaple anywhere. I've learned much from GML that I can use in C# and vice versa.
     
  6. Artwark

    Artwark Member

    Joined:
    Jul 11, 2016
    Posts:
    351
    Well I'm not a professional programmer and all as I just do game maker as a hobby thing. I'm in more of a game designer field aspect. I lack in programming skills but GML is making me like programming to some extent.
    Yeah, I guess you're right though. It doesn't really matter what language you learn so long as you get the job done in it.
     
  7. NPT

    NPT Guest

    Inferior to what?
     
    elementbound likes this.
  8. FrostyCat

    FrostyCat Member

    Joined:
    Jun 26, 2016
    Posts:
    4,607
    That's not necessarily true, and I didn't learn that until rather recently.

    Both GML and C# are imperative, structured and based on standard curly-brace syntax. Of course it's easy to learn C# after GML, they have so much in common. It's the same reason why French speakers find it relatively easy to learn Spanish or Italian. But change the language to declarative (Haskell, Erlang, etc.) or non-structured (Assembly, shell/batch scripting to some extent), how well will you adapt?

    I took a programming language analysis course in university exploring syntax and the declarative/imperative divide, with some exercises in Haskell and Prolog. I did just fine with a small handful of others, but a large number of otherwise well-performing students were completely shut down by the paradigm shift. It's the mirror on the wall that shows who genuinely think like a programmer and who are actually just slaves to a single school of thought.
     
    Nocturne, Cantavanda and Mercerenies like this.
  9. Nux

    Nux Member

    Joined:
    Jul 7, 2016
    Posts:
    372
    GML requires just as much abstract and logical thought as any other programming language, the only difference is it's an environment to build games - compared to python which is a scripting language
    Different uses for different languages.
     
    Last edited: Mar 18, 2017
  10. Mercerenies

    Mercerenies Member

    Joined:
    Jun 21, 2016
    Posts:
    127
    Came here to share my opinion, but Frosty pretty much said everything I was going to say. Expand your horizons; don't ever assume you know all you need to know about programming. I read an article a few years back that recommended learning a new language that challenges you every year, to keep your brain fresh and willing to accept new ideas.
     
  11. Cantavanda

    Cantavanda 〜Flower Prince〜

    Joined:
    Jun 23, 2016
    Posts:
    70
    I agree with almost everything said above. But is it inferior or not? Depends on what you want to do. One thing that makes it inferior is that GML is limited to Game Maker only. C++, Javascript or LUA for example are used litirally everywhere, so those are more "versitale", that doesn't mean better or something, just more common. If you want to make websites or OS's, then it is inferior, since you will be limited to GML, and you'll have to learn more languages. But if you want to make apps and games, it is VERY good, and not inferior in any way.
     
    Mobie and ParodyKnaveBob like this.
  12. KurtBlissZ

    KurtBlissZ Member

    Joined:
    Jun 21, 2016
    Posts:
    200
    It depends on what your wanting to do.

    A lot of open source projects, I wish I had the know how to contribute in them but I don't know where to start, I only know GameMaker; I can barely contribute to the Raspberry Pi community.. Now if I wanted to make a game or maybe an app on android, I could do that.
     
  13. MishMash

    MishMash Member

    Joined:
    Jun 20, 2016
    Posts:
    379
    Hah! You think Real men program in C++?? real men write their own program languages + compilers, none of this pre-made language nonsense. Infact.. Real men build their own CPUs with custom instruction sets, because using all this user friendly plug and play CPU sauce makes you weak! To be honest, I am part of an elite group who think the only REAL men left are the ones who go out every morning and mine up the silicon to build their own transistors from dust.

    On a serious note, in my experience, the programming language is less relevant, but rather the experience is what makes you a better programmer. Working in other languages helps you get better, but in a way, understanding design patterns and program design, focusing on data encapsulation, modular design, inheritance systems, components, Model-View-Controller based application design etc; is far more important when it comes to keeping projects clean and succinct. Other languages do help with this understanding, as to an extent, OOP langauges enforce a form of data encapsulation by default.

    Though recently, i've actually gone full-circle, I went through a phase of not liking GML for its limited features, but have grown to like it a lot again, though thats more to do with the way things like resource management and instance creation work in GM (Using object pools/having garbage collection in languages like C# is really awkward for games IMO).

    At the end of the day, the langauge is what enables you to make your game, if you enforce reasonable habits with GM, then its as legitimate as any other language. You can write bad code and great code in any system, though I will say GMs simplicity and more relaxed nature can make it hard to learn good habits in the first place, so.. In short, learn other languages.

    Real programmers learn to make use of the best tools available to them and more importantly use the most relevant tool for the task at hand :)
     
  14. ConsolCWBY

    ConsolCWBY Guest

    Learn this:
    MarioLANG
    Become 1337! :p
    (joking)
    The more you program, the more addicted you will become! Then... nerdom is all you base! :)
    (In other words, I concur with all of the above!)
     
    Last edited by a moderator: Aug 9, 2016
  15. Matthew

    Matthew Guest

    Yes. If you program only in GML, you'll never understand real OOP, or how classes work, or LINQ, or inheritance, or overloading, and you'll lag behind on important design patterns.
     
    slojanko and ConsolCWBY like this.
  16. Mercerenies

    Mercerenies Member

    Joined:
    Jun 21, 2016
    Posts:
    127
    Okay, Matthew, since that's actually a genuine point, I'm going to give it a genuine rebuttal. Most of those are good points, but I have to take issue with LINQ, inheritance, and overloading. Inheritance is available in GML. You can only override 16 times, for the 16 user defined events, but it certainly can be done, and often you only truly need two or three overrides. LINQ is incredibly language-specific to .NET, so it's hardly fair to say you're an inferior programmer for not knowing <specific thing only available in one class of languages>. That would be akin to me saying "I'm a better programmer because you've never used Erlang's Phoenix Framework" to a successful C++ developer.

    Concerning overloading, I am very happy to be noticing a trend in more modern languages against overloading. More recently designed languages seem to be favoring the Python-ism of defining a function once while supporting variable arguments, rather than defining it multiple times under the same name. The "single-definition" idiom is much more straightforward when it comes to higher-order usage, whereas overloading gets very complicated if you want to reference functions in contexts other than calling them. All overloading does is make the function's signature a part of its "identity", something that traditionally only consists of its name and (in some languages) its arity. So IMHO, the costs outweigh the benefits, and I'm happy to see a modern trend away from it.
     
  17. Matthew

    Matthew Guest

    Those are called "generics". You can use them in place of overloading, if you'd like. While LINQ was originally designed for .Net, it's been ported to many other languages, notably that none of them are GML. Much more than "Erlang's phoenix framework".
     
  18. Nux

    Nux Member

    Joined:
    Jul 7, 2016
    Posts:
    372
    Funny, i'm sorry I was told otherwise.
     
  19. Alessio

    Alessio Guest

    Unless you have a "programmer pride", you shouldn't care as long as your goal is to make a game using Game Maker as a tool. I believe so.
    Other people use Clickteam Fusion or Construct 2, which is less programming-focused than Game Maker but are anyway fine tools.
    At the end of the day, what's important is the game, not the programming language you used. Unless programming is your passion and just want to make a game from scratch like Amaya did with Cave Story.
     
  20. Cantavanda

    Cantavanda 〜Flower Prince〜

    Joined:
    Jun 23, 2016
    Posts:
    70
    Japanese is better then GML
     
  21. frog

    frog Guest

    GML is really cool. If you wanted to go learn C++ or C# right now, you'd have to basically start from the basics and learn OOP. That's one thing GML doesn't really deal with. The languages don't really get any harder to program, the basics are the same in every language. Strings, arrays, some kind of event callback system, etc. The difference is when you want to write a big program, or a program that deals with a lot of information, languages that support classes and objects start making a lot more sense than scripting languages like JavaScript, Actionscript and GML. What gets tricky is of course all of the new syntax you'll be required to learn, but then on top of that how to use all of these classes and objects and tricks to make your software work and work well. I wouldn't say "real" programmer, or "fake" programmer. You can take a programmer who is really good with low-level stuff, who can write programs that can fold a 3D model inside out or something... and then you can have a programmer who can write a piece of software like Facebook... and then you can have a programmer who can write a piece of software that can hack into the pentagon. And these people are all doing very different things for very different reasons. All can be considered masters of what they're doing, but the language you use is just a tool and each tool has strengths and weaknesses. The benefit of GML is that it's quick, simple and that it allows you to get right to work making games. For that reason, it's actually better than C++ like Unreal uses, which is a catastrophe of proprietary stuff that just looks like Megatron puked in the editor... it's like, I thought I was making a game.

    Never feel like you're inferior to anyone. If you needed to learn C++ you would learn it, right? Of course. It's just not useful for you for what you're doing, so you're smart enough not to waste time on it just because somebody else wants you to feel bad about yourself. I was there, once. I made graphics for some guy's game and suggested that he use GameMaker next time. He and his buddies all laughed at me. Since then, I have learned... well, just about every programming language to some degree. And I can honestly say, I liked GML a lot. Not a ton of symbols. Very easy to work with. It doesn't make you any smarter to learn other languages. Maybe I shouldn't have pulled that curtain back... the international association of snobbish C++ programmers are going to find me, now.
     
  22. seanm

    seanm Member

    Joined:
    Jun 20, 2016
    Posts:
    332
    Well GM doesn't strictly deal with OOP, but all of the principles are there; They just exist in a different form than C languages.
     
    ConsolCWBY likes this.
  23. Mercerenies

    Mercerenies Member

    Joined:
    Jun 21, 2016
    Posts:
    127
    Sorry, but what you've said there is a total contradiction. "GM doesn't deal with OOP; it just has OOP."

    Most textbooks these days define OOP in terms of polymorphism (doable, albeit in a limited form, with User Events), inheritance (obviously supported in GM), and encapsulation (we have objects with contain variables, don't we?). GM has OOP. It has a class-oriented version of OOP similar to (but not by any means identical to) that of early versions of C++. It just doesn't "look like" modern JAVA/C# OOP, which for some inexplicable reason people take to be the definitive source of "object orientation", so people dismiss it.
     
  24. seanm

    seanm Member

    Joined:
    Jun 20, 2016
    Posts:
    332
    Well Gm doesn't strictly deal with the understood meaning of the word OOP and it's usual structures, but all of the principles are there. They just exist in a different form than the C languages.

    Didn't think I had to spell that out, but you gave a more thorough explanation anyways.
     
  25. frog

    frog Guest

    To my knowledge, and I just reviewed the documents, GML does not support inheritance at all. You also cannot define user types/classes. There is also no notion of properties or privacy in GML. All variables are 100% public read/write access on all object instances. Furthermore, there are no functions except engine defined ones. So you don't have return types, either.

    In a nutshell, beyond scripting games, it is not a terribly useful language. That's when it is good to heed the old addage, 'to a man with a hammer, every problem looks like a nail'. Well, GML is a hammer but proper OOP requires a cordless power tool set. Can you use a hammer to cut lumber? I am sure its doable, somehow. But that doesn't mean that a hammer is just as good as a skillsaw.
     
  26. seanm

    seanm Member

    Joined:
    Jun 20, 2016
    Posts:
    332
    In this case, GM Objects are the classes/objects.
    Private variables are enough to make or break OOP
    Gm supports parents, which is inheritance. Just not really polymorphic methods/functions.
    You can make methods/functions just like any other language.
    Soft typing doesn't define a language.
     
    mariospants and elementbound like this.
  27. Mercerenies

    Mercerenies Member

    Joined:
    Jun 21, 2016
    Posts:
    127
    Private variables are NOT enough to make or break OOP. And I'll demonstrate.
    * Python - 100% public slots; no privacy
    * Javascript - Privacy available in a limited form through local scoping
    * Lua - Same as Javascript
    * Common Lisp Object System - Slots can always be accessed through "with-slots"; inside and outside of implementation methods
    * Go - "Package private" is the most restricted privacy level
    If you make the claim that private variables are necessary for a language to support OOP, you've just contended that Python, Javascript, and Lua, among others, do not support object-oriented programming.

    And GM does have polymorphism, just in a very limited form. It has events, which are specific to the object and can be overridden in child objects. Events, with the 16 user defined events, make a very basic message-passing inheritance system, which is what languages like JAVA use. The fact that events don't take arguments is utterly irrelevant, as the arguments in a call in JAVA/C#/etc have absolutely no bearing on the polymorphic nature of the method. A simple message-passing system is only required to have one argument, and that is the object to whom the message is being passed. GM satisfies this requirement.
     
  28. seanm

    seanm Member

    Joined:
    Jun 20, 2016
    Posts:
    332
    god damnit. I meant are not. but you seem to really want to bust my balls for agreeing with you
     
    Ninety likes this.
  29. Mercerenies

    Mercerenies Member

    Joined:
    Jun 21, 2016
    Posts:
    127
    Sorry, mate. Not trying to offend. I like programming language theory, so I thoroughly enjoy debates about languages. I apologize if I said anything you took to be rude.
     
  30. seanm

    seanm Member

    Joined:
    Jun 20, 2016
    Posts:
    332
    nah I just expected you to be able to understand my poorly worded posts lol. i goofed not you. no worries.

    Edit: what i mean is. I'm too tired for this lol, I was upset with myself not you, youre providing great information
     
  31. Amazing, the first response was 100% spot on.
     
  32. Storyteller

    Storyteller Member

    Joined:
    Jul 19, 2016
    Posts:
    251
  33. 11clock

    11clock Member

    Joined:
    Jun 25, 2016
    Posts:
    180
    Yes it does, if GML is the only language you know. This is because GML can only be used in one specific software, making it very limited.

    If you want to be a good programmer, you need to be more flexible. Pick up more robust languages like Java and C#.
     
  34. David Richard

    David Richard Member

    Joined:
    Jun 20, 2016
    Posts:
    194
    Will knowing more programming languages make you more popular, gain more money? I don't even think that this is a legit question. The question is, what do you do with what you know? Do you program webpages in GML? Do you create 3D games in HTML? Do you use VB.NET to create applications that work on linux?

    If with the knowledge you have, you can go far in life then go for it!

    A blind person that becomes famous because he only knows how to play the piano but play it well, will we say that he's inferior because he can ONLY play the piano? NO, he just did the best he could with what he had. There's no superior and inferior programmers, there's just programmers that do their best with what they know.
     
    RichHopefulComposer likes this.
  35. Changgi

    Changgi Member

    Joined:
    Oct 20, 2016
    Posts:
    45
    What I have experienced is that people who aren't GM users look down on GM saying if you want a professional programming language you'd learn C++ or something, whereas internally GML users look down on drag and drop users.
     
  36. gmx0

    gmx0 Member

    Joined:
    Jul 10, 2016
    Posts:
    58
    An "inferior" programmer is one who can't use his choice of language to create what he wants out of it.
     
  37. Probably the only worry i'd have with gml is that it can make you a sloppy programmer in terms of syntax, but only if you're shifting between languages all the time. Since gml let's you skip things like brackets and semi-colons you can get used to skipping them all the time, then you switch over to something like javascript and suddenly you find yourself backtracking to correct things.

    But i've always viewed programming as a 'needs must' thing. Unless programming is a passion for you you only need to learn what you need to learn in order to complete the intended project. If all you intend to make are simple games in game maker, then just knowing gml is fine.
     
  38. bml

    bml Member

    Joined:
    Mar 13, 2017
    Posts:
    29
    Do you care about making games or being a strong programmer?

    For certain types of games, and most especially for solo developers, GML is a superior choice and you can make high quality games quickly. Making games should be the primary goal of a game developer. No one cares about how much code you wrote if you never release. I had a conversation about this yesterday where I work. We interview people constantly and one of the first interviews is writing code. The candidate has an hour to solve three problems and we tell them the type of problems in advance. We warn them that they are time constrained. We suggest they use a scripting language, but they are free to use any language they want. After several hundred interviews, no one that has chosen C++/C has passed. I don't think we've passed any Java or C# interviewers either. Part of being a great programer is about making the best tradeoffs for the problem you are trying to solve. If you are trying to make games, unless you have a really strong reason to use C++ such as performance demands, virtual reality, low level stuff, library dependencies, etc... it's a poor choice.

    As for GML making you an inferior programmer? If that's all you know, then yes. You can write complex and well designed code in GML. You can think algorithms and data structures. But for most game development the challenging parts are in a few niches and your toolbox is limited and so is the problem set that you deal with. The algorithms would be the same in C++, but you will have more implementation options and need to understand more low level details. The main advantage of C++ would be knowing a language that is used all around the world. Google doesn't hire GML programmers, but a good C++ developer is gold. Getting to "good" as a C++ developer takes a lot of effort and your understanding needs to expand beyond game development problems.

    I like to use Codingame to push my programming skills and my game development skills at the same time. Either the problems or the competitions. Competitions are fun as a way of gauging your skills. The last competition I did was writing the AI for multi-unit multi-base combat and everyone's AI fought each other. The results were ranked and you could make changes and improvements over several days. Of course GML isn't an option so you would have to learn something new and it might be fun to implement some of the same problems in different languages just to see the difference. There are lots of similar sites out there. Good luck!
     
    Ninety likes this.
  39. mariospants

    mariospants Member

    Joined:
    Jun 21, 2016
    Posts:
    94
    If you can do something amazing in Basic, that makes you an amazing/superior programmer. Your ability to problem-solve defines how good a programmer you are, not the language you use. Well, that's my opinion, at least!
     
  40. frog

    frog Guest

    GML is really a scripting language, similar to JavaScript. It lacks strong typing, user defined types and all sorts of other things that we don't really need to get into for the purposes of this discussion. Many of the higher-level, good practice stuff you need to be a good programmer aren't around in GML. So, if GML is all you know, you're not a very good programmer in terms of overall ability and knowledge. However, that doesn't mean that you are intellectually inferior or that you couldn't grasp those higher level concepts, just that you haven't be asked to so far. It would probably take the average JavaScript/scripting language coder 3 years to get a solid grasp of the higher level concepts like decoupling, for example, the purposes for a lot of that stuff isn't obvious until you've spent some time trying to piece together a larger piece of software.

    That all being said, ain't nothing wrong with just scripting some games.
     
  41. brokenjava

    brokenjava Guest

    I would extend this to; an inferior programmer does not know what tools to use in the most applicable circumstance. Fighting an engine/framework/language beyond it's intended purpose is foolhardy. Possible but not always helpful. Sometimes as a programmer I forget that not only does code matter but design choices and architecture. GML in my opinion is not a general purpose language such as C#, JAVA or c for that matter, which in turn makes it "inferior" or "superior" depends on what you care about. But to the original question "Does GML coding make you an inferior programmer?" null.
     
  42. Float3r88

    Float3r88 Member

    Joined:
    Oct 15, 2019
    Posts:
    0
    honestly drag and drop "programmers" are the real joke.
    Like all the kids of this generation that use scratch and ONLY scratch.

    And most of the time these kids don't even teach themselves scratch, but actually waste their parents money on an $1000 "tutor".
     
  43. Nocturne

    Nocturne Friendly Tyrant Forum Staff Admin

    Joined:
    Apr 13, 2016
    Posts:
    6,977
    Tell that to Eric Ruth... His games are really good and he made them all with Drag N Drop in GameMaker... How many games have you made with your elitist "programmer" attitude? ;)

    http://ericruthgames.weebly.com/games.html

    Seriously, who CARES how a game is made as long it's made and people are expressing themselves and happy (and making other people happy too!)?

    PS: I know that page is old and most of the links don't work, but it's a great example of someone that is an artist with no "coding skillz" who made great games using a very limited toolset. Where there's a will, there's a way!
     
    MissingNo. likes this.
  44. Mert

    Mert Member

    Joined:
    Jul 20, 2016
    Posts:
    412
    No, and it never did!
     
  45. Lord KJWilliams

    Lord KJWilliams Member

    Joined:
    Jul 2, 2018
    Posts:
    120
    The first programming language I learned , and hate is BASIC, that is, Commodore Business Machines BASIC. I learned programming in BASIC when I had a Commodore PET 2001 Series, with only a tape drive ( floppy drive existed but were a luxury item ), later with Commodore 64, and finally with Amiga BASIC ( which is a license of Microsoft's BASIC ). I got fed up with that language. Well first I have say that in a programming environment of where cut, paste,copy, and delete do not exist is a pain, and I would have to say where everything is listed with line numbers is a pain ( except for Amiga BASIC ). It took me several years to forget most of the BASIC language from Commodore Business Machines, to phase in C programming. Then everything became easier. In my opinion C makes a very good beginners language in procedural programming. I extend this hate to Visual BASIC as well, which is a Frankenstein language of borrowed concepts from other languages mashed together.

    Now GML is a great programming language for designing games, but you could use it for creating applications that are not game based.

    The famous saying , " Its not what the airplane does , its what the pilot does with the airplane " , is true for programming. I was looking at all the graphical functions of GML one day, and thought I could use the language to do sophisticated animation that I could record on my movavi screen recorder to make movies with. It has nothing to do with making a game, but it is a use of the language. I thought GML would be better than programming my graphics using POV-ray.
     
    MissingNo. likes this.
  46. HayManMarc

    HayManMarc Member

    Joined:
    Jun 21, 2016
    Posts:
    925
    "Does GML coding make you an inferior programmer?"

    No. GML has nothing to do with it.
     
    RichHopefulComposer likes this.
  47. Bearman_18

    Bearman_18 Member

    Joined:
    Jan 24, 2018
    Posts:
    180
    We all know that skill in programming can only be defined as the ability to make an engine do exactly what you want it to. Like an elephant in marble, a game is just a bug with all the unwanted effects chiseled out.
     
  48. zendraw

    zendraw Member

    Joined:
    Jun 20, 2016
    Posts:
    1,373
    being a good programmer has somthing to do with creativity, its problem solving, the language is just the tool. gml doesnt make one inferior, idiots that use the easy way, and coding in stupid ways is what makes one inferior. generally how you use it is what you are. a stupid person will use it like a stupid person.

    this question is also stupid, its like asking am i a serial killer becouse i use a knife to cut my bread...
     
    Lord KJWilliams likes this.
  49. RichHopefulComposer

    RichHopefulComposer Member

    Joined:
    Jun 20, 2016
    Posts:
    1,384
    Right. We were just born this way, hahah! ;)
     
    Niels, Nocturne and HayManMarc like this.
  50. Niels

    Niels Member

    Joined:
    Jun 22, 2016
    Posts:
    828
    In a few years we are all using visual scripting, so it won't matter ;)
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice