[Yr7-10it] Re : .. Programming for all levels
Russell Edwards
edwards.russell.t at edumail.vic.gov.au
Wed Sep 19 10:38:49 EST 2007
On 17/09/2007, at 9:23 PM, Costello, Rob R wrote:
>
> I like the visual drag and drop of GameMaker - although it's a pity it
> doesn't show the corresponding code when you drag in an "icon" - and I
> feel the pure coding side of GM is still quite tricky, a "curly
> bracket"
> language, with events, object level scope etc - compared to the old
> procedural BASIC, its not easy.
I think you're making two disctinctions there about GM (and most
other modern procedural or object-oriented languages) and BASIC
1. It is a "curly bracket" language, i.e. it has proper procedural
control structures with scoped variables, as disctinct from BASIC's
mess of GOTOs
and
2. It is object-oriented and event-driven.
I actually think both of those are a bonus, even for novices.
Granted, #1 can make simple code a little difficult to follow
(although a visual interface with the ability to collapse blocks of
code and replace with a 1-line comment could help with that!), but as
everyone knows, once a program grows to a non-trival level of
complexity, GOTO soup becomes the harder one to understand.
For #2, I wonder if we who cut our teeth on procedural languages are
merely reflecting that fact when we complain that OO/ED is harder to
understand. I think it's actually intrinsically much EASIER to
understand. That is why visual programming environments are even
possible. Try making GameMaker without an OO/ED model! Where OO
gets difficult is in the details like inheritance, templates,
operator overloading, protection, etc etc. These, in my opinion, are
the real reason why so few people succeed when trying to follow the
path of learning C and then C++. They get so bogged down in all the
details that they fail to truly move to an OO paradigm. Languages
like Java make most of these details less messy than C++, while GM,
Scratch etc manage to shelter the user from them completely. Kids
then only really need to understand the object and event model, which
they mostly seem to grasp intuitively with very little need for
instruction.
However, if you wanted to give them the basics of imperative
programming without worrying about objects, events, object level
scope etc, you could always make a GM game with a single object and a
Create event. Put all your code in the create event's actions.
cheers
Russell Edwards
Whittlesea SC
Important - This email and any attachments may be confidential. If received in error, please contact us and delete all copies. Before opening or using attachments check them for viruses and defects. Regardless of any loss, damage or consequence, whether caused by the negligence of the sender or not, resulting directly or indirectly from the use of any attached files our liability is limited to resupplying any affected attachments. Any representations or opinions expressed are those of the individual sender, and not necessarily those of the Department of Education and Early Childhood Development.
More information about the Yr7-10it
mailing list