And all I read here is 'blah blah blah instant this blah blah satisfaction that'.
I, like many others on this board, started out with BASIC (In 1991, I was 11) - the instant feedback and gratification of seeing something I wrote was what kept me going, interested and pushing forward with my knowledge. I tried a couple of times to learn C but it was just boring cruft, I had no interest in it and I was getting good results with BASIC and 68K Assembly so didn't bother to learn it.
If, when I was 11, someone had sat me down in front of the system you were describing... well, frankly chances are this board would be missing one of the best program solvers/coders on here (yes, egotistical but frankly its true
) because when you are young you want that feedback.
Now, not everyone is going to go on in their own time and learn the guts of a computer, how things work from the ground up and pick up other languages - maybe they play around in their Python box for a bit while it interests them and you know what that is just fine.
Not everyone needs to know the ins and outs of a system, just being able to solve a problem using something like Python, or indeed access to the skill set that using it would develop, would be useful. But for some people exposure to this might well flip on a switch which causes them to go out and learn more, push the boundaries and generally experience a subject they would have otherwise missed out on because no one said 'hey, want to try this?'.
(Which is something I only had because we had a BBC Micro at home, my dad could code a little BASIC as he was interested in technology and I happened to have a friend who could code in BASIC.)
The idea isn't to turn out fully qualified C engineers who could write you the next doom; the idea is to expand the skill set of people in general and given those interested exposure to something else.
To draw upon the exposure to music example people have thrown around; going your route would be like asking people to start off with a stave of music and a harp to see if they liked music. Where as the better choice would be to start them with something simple like a Xylophone or keyboard and let them play around a bit, teach them some music theory and see how they like the subject... kinda like how I was introduced to it.
(Amusingly I have a GCSE in Music but no qualification in anything directly computer programming related until I got my degree in Software Engineering. There was an A-Level in computing but as I was already taking Electronics, Maths and Biology they wouldn't let me do that too, which is a shame on reflection as I recall writing someone's assignment for it in about 5 minutes during a maths lesson once... oh well)
yeah, I started off also with BASIC, generally with QBASIC.
the quick feedback was generally an advantage, as one could edit some stuff, and hit a key, and run it.
VS + C# sort of offers a similar experience (though IntelliSense is sort of a love/hate thing, like autocomplete is nice but I also like the ability to
just type some crap without autocomplete expanding things to random crap and/or grabbing the cursor, so more generally prefer editors that use something like TAB-complete instead).
things like ability to edit code during debugging, ... can also be nice.
for C and C++, the need to go through an often long/slow rebuild process is kind of a drawback, but its advantages lie in other areas. for people new to programming, this itself is likely to be a bit of a disadvantage (though partly offset by the advantage that if using an IDE, at least probably their apps will be small enough that they wont be subjected to a several-minute rebuild cycle...).
how I originally moved over to C was mostly by messing with the Wolf3D and Doom source, and by the time I started getting a little better there was the Quake and later Quake 2 source to mess with (then I started messing a lot more with 3D via OpenGL, ...), ... (but, GPL meant I would later have to drop most of this code).
still mostly using C though, mostly at this point due to most of my tools being mostly C specific (the code is somewhat "tooled up", for better or for worse, sort of like Obj-C but without so much nasty-looking syntax). the second-place language is my script-language.
technically my engine also includes its own built-in code editor and can do "F5 to execute", but this is rarely used as the UI kind of sucks (it is sort-of part-way between something like QBasic and something like ViM), and it executes inside the console as well (FWIW, the console buffer is loosely comparable to text-mode graphics hardware, and it is possible for "programs" running in the console to hook into various events, ...). (I actually debated between this and using ANSI / VT100 control codes, which my console code also uses to some extent). its UI badness though still leaves it generally preferable to use a "real" text-editor, and then just do a ';load("whatever");' command from the console to reload it, or just use ";whatever" commands (";" prefix is magic), which immediately evaluate code fragments (not good for non-trivial code though, given nearly everything has to be typed into a single console command, *1).
ironically though, most of the script-code still ends up merged into the various engine DLLs at build-time though (generally post-link, a tool goes and shoves all the script-code/... into the DLL). (note: it is not compiled to native code at this stage, this part typically happens incrementally at run-time).
*1: note: turns out to be fairly useless for (standard) C, given how the language works. C turns out to make a pretty poor script language and is not well suited to interactive entry, and otherwise extensions and variations from the standard would be needed to increase suitability (though most code could probably still work, people can get into fights over the edge-cases, and strictly speaking, things like Ch and CINT aren't C).
but, yeah, in any case, immediate feedback is probably more useful in keeping peoples' interest...
the more painful or awkward it is made, the more likely they are to be scared off or loose interest and do something else...
Edited by cr88192, 03 March 2013 - 03:06 PM.