[geeks] Introductory programming language?

Jonathan Patschke jp at celestrion.net
Wed Aug 31 13:40:04 CDT 2011


On Tue, 30 Aug 2011, Mouse wrote:

> My sister has just expressed an interest in learning some programming.

What does she want to do with it?

If she just wants to learn programming for fun, I'd recommend something
like Processing (http://processing.org/), which implements a C-like
language for doing easy graphics, sound, and user-interaction.  People
have done some amazingly beautiful things in it, and the language doesn't
have a lot of the minutiae that makes C the brick wall that initially is.
For doing Real Work, it has a strong leaning towards signal/image
processing instead of text.

However, if she has some specific tasks in mind, that colors the
recommendation a bit.  Perl is still good for text processing, and
ActivePerl (http://www.activestate.com/activeperl/downloads) is a
mostly-reasonable environment (especially when paired with a real text
editor like Notepad++ or gVim).  Perl lends itself towards bad habits,
though, unless you run the interpreter in strict mode with warnings and
taint turned on.  Even then it's still pretty easy to get lazy.

If she's looking to automate her work, Microsoft's implementation of
ECMAscript (JScript) running inside the Windows Scripting Host isn't that
great, but it's better than VBscript, and all the tools come with the OS.
The Windows scripting engine can be extended with other languages like
Tcl, Python, and Ruby, provided you install the interpreters for those
languages.

I'd strongly recommend against Ruby, which I think teaches extremely poor
habits.  The language is very rich and powerful; however, a lot of the
Ruby code I've seen written by people for whom it was an early language
doesn't seem to understand the difference in complexity of swinging around
integers versus globs of XML.  This is great if you have to swing around
globs of XML, but it doesn't encourage thinking about a sleeker solution.

Likewise, I'd suggest against Java for the same reasons.  I love the
language and use it quite a bit, but it's an awful choice for a first
language.

Lua's a pretty language, but I can't see how you'd actually get it to do
anything useful outside of some sort of sandbox environment.  Maybe if she
gets bored with Processing, she can look at Lua with the Love engine
(http://love2d.org/) bolted on.

If she's musically-inclined, Supercollider (http://supercollider.sf.net)
is tons of fun, even if the syntax is atrocious.

-- 
Jonathan Patschke |
Elgin, TX         | "He who is contented is rich." -- Lao Tzu
USA               |


More information about the geeks mailing list