If not BASIC, then what would be the programming language of choice for the beginner?
Ideas accepted from all.
--- "D. Hageman" dhageman@dracken.com wrote:
I know a couple of weeks ago I posted a message recommended a person not learn REALBasic for their first language. I still believe in this very much, but we do apparently have a couple of people on this list that work with REALBasic.
.
And I always thought: the very simplest words Must be enough. When I say what things are like Everyone's heart must be torn to shreds. That you'll go down if you don't stand up for yourself Surely you see that.
-- Bertolt Brecht
__________________________________ Yahoo! Messenger Show us what our next emoticon should look like. Join the fun. http://www.advision.webevents.yahoo.com/emoticontest
On Thu, 2005-03-31 at 11:39 -0800, Leo Mauler wrote:
If not BASIC, then what would be the programming language of choice for the beginner?
Ideas accepted from all.
One of the two popular object oriented, interpreted scripting languages: Python or Ruby.
Python is nice and clean but not always internally consistent -- lots of docs are available though; Ruby is amazingly internally consistent to the point that some really beautiful behavior can emerge from simple syntax.
You should start with a scripting language because of the ease with which variable typing is handled and the simplicity of getting the thing you write to run (no compiling and linking). Stay away from Perl because its more complex behavior like OOP is visually an after-thought.
If you were looking to go hardcore, start with the Smalltalk-80 implementation called Squeak or even crazier, start with LISP.
If you want to try the new kid on the block, download and play with Mono but good luck finding a non-Windows introduction to C#.
Do not start with Java, C++, C, etc. You'll just get frustrated by "here are the rules but here is a massive list of exceptions to them." We don't want you to run away from programming because of these idiosyncrasies.
Obviously, though, you'll eventually need to look at one of the languages used in common practice: Java or C.
I believe Jason is right about Python being a good beginner language, and contrary to Jonathan mischaracterization of Python as an "obscure niche language" Python is catching on as a very mainstream language. To wit:
Evidence that Python is advancing into the enterprise http://programming.newsforge.com/article.pl?sid=05/03/29/0747230
Python is used by Hollywood, at Google, extending the Gimp, Mailman MLM, the Plone CMS, GIS systems, and Nokia phones. That's a hell of a niche.
As for using it as a first language, see these online books:
How to Think Like a Computer Scientist: Learning with Python http://www.greenteapress.com/thinkpython/ The online version: http://www.ibiblio.org/obp/thinkCSpy/
Teaching With Python http://mcsp.wartburg.edu/zelle/python/
I'm teaching my kids to program, and after we study some concepts without letting the language get in the way, we'll start out with Python, using the "Think Like" book above. Then, when we have Python fairly well in hand, we will move on to PHP, another "niche" scripting language that's used on more websites than any other language in the world, including Java.
My $.02, Jim
Jason Clinton wrote:
On Thu, 2005-03-31 at 11:39 -0800, Leo Mauler wrote:
If not BASIC, then what would be the programming language of choice for the beginner?
Ideas accepted from all.
One of the two popular object oriented, interpreted scripting languages: Python or Ruby.
Python is nice and clean but not always internally consistent -- lots of docs are available though; Ruby is amazingly internally consistent to the point that some really beautiful behavior can emerge from simple syntax.
You should start with a scripting language because of the ease with which variable typing is handled and the simplicity of getting the thing you write to run (no compiling and linking). Stay away from Perl because its more complex behavior like OOP is visually an after-thought.
On Thursday 31 March 2005 01:39 pm, Leo Mauler wrote:
If not BASIC, then what would be the programming language of choice for the beginner?
I agree with Jason that a good grounding in shell scripting is the place to start. From there, branch out into a good understanding of awk and sed.
After that, I wouldn't endorse his recommendation of obscure niche languages like Python and Ruby. I frankly think those will prove to be relative dead ends, because sysadmins are only willing to maintain a certain limited number of languages on any given system.
A very useful next step might be to learn PHP, and how to integrate HTML with MySQL using PHP. Running a webserver is a fairly common task, which will inevitably get you into PHP, and if you can fix the many broken PHP scripts available, so much the better.
Next I would recommend perl because it is such a useful language, and there's a lot of example code around to learn from. It wasn't really designed for software development, but like RPG for extracting, sorting, and reporting. (Program(able?) Extraction and Reporting Language, after all). Like Bash, sed, and awk it can do things that you might actually want to do with your computer for yourself.
After that, if you're serious, there's no excuse not to get into one of the various C flavors. People have been writing code for PC's in C now for a couple of decades, and it doesn't look like someone's going to suddenly sweep it all away with some new fad. If you understand C, you'll understand most of the OS coding projects that are around today.
Assembler is cool. We used to have a saying in the Big Iron days "I can't means I don't know enough assembler". Still, it tends to be platform specific, and rather than put the effort into it I'd work on mastering your chosen C flavor(s). System370 Assembler is pretty useless when you're coding for a PC.
(Yes, I know there's an emulator available.)
Jonathan Hutchins wrote:
People have been writing code for PC's in C now for a couple of decades, and it doesn't look like someone's going to suddenly sweep it all away with some new fad. If you understand C, you'll understand most of the OS coding projects that are around today.
Would you say the same about COBOL? COBOL still runs the world. There are still major projects being developed in COBOL. People have been coding in COBOL for 45 years. It's probably just a niche because Jonathan doesn't use it anymore. :-)
there were some good things said by people who had learned to program in Simula as a first language, that I found when i was researching coroutines for Damian Conway a few years ago. Apparently people whose first PL is Simula find later algol descendents clumsy.
http://www.item.ntnu.no/~pyse/simula/ appears to be a good introduction, as is googling for simula coroutine
On Thursday 31 March 2005 10:00 pm, Jim Herrmann wrote:
Jonathan Hutchins wrote:
People have been writing code for PC's in C now for a couple of decades, and it doesn't look like someone's going to suddenly sweep it all away with some new fad. If you understand C, you'll understand most of the OS coding projects that are around today.
Would you say the same about COBOL?
Yes, but while C is the language of choice on PC's, which are the platform of choice for new directions in computing, COBOL is a legacy language that is mostly used on older, existing installations as opposed to new development. There will continue to be a place for COBOL programs for many years to come, and it's probably not a bad career move to learn it.
On the other hand, you're not likely to get into a programming career where you get to do anything new and interesting in COBOL, while you are likely to if you know C and some of it's variants. COBOL's coding practices are pretty much obsolete when it comes to modern computer platforms, while C is used for everything from microdevices to computers like Blue Gene.
As far as Ruby and Python go: My first programming language was APL. It's an amazing application of symbolic logic that can reduce a three-page BASIC program to three lines of code (split into three lines mostly for readability). Entire multi-million-dollar, multi-story computing centers were built around the hardware that was specially designed to run it (IBM's 360/370 series). One of the first portable comuters was built to run it.
How many people are programming in APL today?
(Besides APL, I speak BASIC, Fortran77, COBOL, RPG II, System 370 Assembler, and a few other choice, obsolete nuggets. Which is one reason I'm a sysadmin, not a coder.)
On Thu, 31 Mar 2005 11:39:34 -0800 (PST) Leo Mauler webgiant@yahoo.com wrote:
If not BASIC, then what would be the programming language of choice for the beginner?
Ideas accepted from all.
Instead of replying to parts of different peoples message, I'm just going to throw my two cents in.
I think it is a big mistake to start with a scripting language. I would strongly suggest learning enough C to understand compilation, runtime linking of libraries, basic memory management and pointers.
Then I'd go learn and use on a day-to-day basis a more natural language like Perl or Python.
My reason for this is, it's twice as hard to learn the other direction.
It's like learning shorthand and then 2 years later learning to write English.
--------------------------------- Frank Wiles frank@wiles.org http://www.wiles.org ---------------------------------
I always get in trouble when people ask me what computer class their kid should take... I always tell them the kid should learn to type first... ...brig
On Thu, 2005-03-31 at 11:39 -0800, Leo Mauler wrote:
If not BASIC, then what would be the programming language of choice for the beginner?
Ideas accepted from all.
--- "D. Hageman" dhageman@dracken.com wrote:
I know a couple of weeks ago I posted a message recommended a person not learn REALBasic for their first language. I still believe in this very much, but we do apparently have a couple of people on this list that work with REALBasic.
.
And I always thought: the very simplest words Must be enough. When I say what things are like Everyone's heart must be torn to shreds. That you'll go down if you don't stand up for yourself Surely you see that.
-- Bertolt Brecht
__________________________________ Yahoo! Messenger Show us what our next emoticon should look like. Join the fun. http://www.advision.webevents.yahoo.com/emoticontest _______________________________________________ Kclug mailing list Kclug@kclug.org http://kclug.org/mailman/listinfo/kclug