Slashdot Mirror


Why Johnny Can't Code

GoCanes writes "Salon has an article named 'Why Johnny Can't Code,' an interesting examination of the dearth of line programming languages available today. At first I wanted to read this and say aha, here's a simple line oriented language that's available through open source, but after reading the article I couldn't find any. And being an old fart, I remember the days spent with edlin and basic."

686 comments

  1. Kids today...... :-) by BWJones · · Score: 4, Interesting

    I have been thinking it is due to a few reasons. First off, it seems that math education is sorely lacking in many college students. We are waaaay off the mark here with lots of remedial work being necessary for entering college students and this is having a major effect on peoples ability to develop algorithms. The next major reason is lack of communication skills and writing skills. When I was a grade school kid learning BASIC, we had it drilled into our heads that we had to comment our code and explain exactly what it is that we were planning. This was done to help us learn how to think through a problem, but also to get us to help communicate what it is that we were trying to do with our code. Finally, it seems that many students have gotten lazy and are simply looking for an easy way out and not wanting to code line by line.

    --
    Visit Jonesblog and say hello.
  2. Robot Wars by StonePiano · · Score: 1

    I started on the Apple ][ with Robot Wars. I loved programming those robots so much, that I later wrote my own port of it for Windows. I still have it out there for free with it's own BotBasic language. It still gets some hits and positive comments from punters.

    1. Re:Robot Wars by MadMorf · · Score: 1

      Wow.
      I did exactly the same thing for DOS, but my code has disappeared over the years...

      I called my Bot Language MRPL, MadMorf's Robot Programming Language.

    2. Re:Robot Wars by Gorath99 · · Score: 1

      For those who prefer java, here's an open source version, initially developed by IBM. Pretty cool stuff. Had fun with it as a machine learning project in university.

    3. Re:Robot Wars by Cctoide · · Score: 1

      You might want to know that BotWars refuses to install on 64 bit Windows, or at least, InstallShield does...

      --
      "Let's face it, it's a good story. Accuracy would kill it."
    4. Re:Robot Wars by StonePiano · · Score: 1

      Hey sorry bud. As it happens, I'm not really going to do anything about it. In fact, I haven't even run a Windows machine for years now. I run Linux. I just thought of my old program and checked the site was still there. It's un-maintained. I expect there are other maintained projects that would be better for you now.

  3. passworded article by muftak · · Score: 4, Insightful

    Please provide a URL that does not require signing up to crap.

    1. Re:passworded article by remembertomorrow · · Score: 4, Funny

      This article should be called "Why Johnny Can't Read Online Articles". :|

      --
      Registered Linux user #421033
    2. Re:passworded article by GreyPoopon · · Score: 2, Informative
      Please provide a URL that does not require signing up to crap.
      It doesn't. It just requires watching an advertisement for access for the day. You don't have to provide any information about yourself.
      --

      GreyPoopon
      --
      Why is it I can write insightful comments but can't come up with a clever signature?

    3. Re:passworded article by Mprx · · Score: 5, Informative

      Visit http://www.salon.com/news/cookie756.html to get the cookie first.

    4. Re:passworded article by Anonymous Coward · · Score: 0
      It doesn't. It just requires watching an advertisement for access for the day. You don't have to provide any information about yourself.

      And that is better how? If either flash isn't installed or cookies are disabled, you don't get access - and I, for one, have neither.
    5. Re:passworded article by GreyPoopon · · Score: 1
      And that is better how?
      Erm, you aren't providing them with personally identifying information or an email address than they can spam? Or at least you aren't having to come up with "fake" information and register a one-time-use email address on hotmail or yahoo.

      If either flash isn't installed or cookies are disabled, you don't get access - and I, for one, have neither.
      I'm not sure what happens without Flash, but you can always use Firefox and set cookies to expire when you close your browser.
      --

      GreyPoopon
      --
      Why is it I can write insightful comments but can't come up with a clever signature?

    6. Re:passworded article by Anonymous Coward · · Score: 0

      here you go.

    7. Re:passworded article by Anonymous Coward · · Score: 0

      And even with this link you can't move on to the next page without being forced to watch an ad. That sort of shit is why I haven't bothered with salon.com for a loooong time...

    8. Re:passworded article by TheQuantumShift · · Score: 1
      Weird, but the first thing my eye was drawn to on the page was:

      Click on the sponsor logo:
      click here to read this article and all of Salon for free

      In aproximately 24ish point font...

      Still, clicking through two ads is obnoxious, but not as bad as creating yet another "account" for no reason.

      --

      Shift happens. Fire it up.
    9. Re:passworded article by DaveV1.0 · · Score: 1

      I have cookies disabled, and I do not have flash installed and I read the entire article with no problem.

      I believe you are having PEBKAC issue due to an ID10T error.

      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
    10. Re:passworded article by dolmen.fr · · Score: 1
      Still, clicking through two ads is obnoxious, but not as bad as creating yet another "account" for no reason.
      However, as the sponsor logo is adblock-ed, I can't click on it. I gave up.
    11. Re:passworded article by defaria · · Score: 1

      Hmmm... I have adblock plus and I see no sponsor logos to click on!

  4. you did not look hard enough by shareme · · Score: 1

    Obviously with 25% of CS classes using this simple line computer languag eyou did nto look hard enough.. See D Knuth's homepage for details..

    --
    Fred Grott(aka shareme) http://mobilebytes.wordpress.com
  5. Desktop Applets by RAMMS+EIN · · Score: 5, Interesting

    I submitted the same story, and also made the following comment elsewhere:

    It is worth noting that Microsoft ships Visual Basic for Applications
    with most of their software (at least they did when last I checked), and
    OS X and many Linux distros ship Python.

    Having said that, I agree that the world has changed and getting started
    with programming isn't as natural as it used to be. Part of the reason
    for that is that our expectations have changed, but languages haven't
    really caught up. Nowadays, we expect programs to present us with fancy
    GUI widgets. If all a program does is print some text to the terminal
    and read some input from it, we don't feel we've written a real program.
    However, in the majority of programming language, creating these fancy
    GUI widgets is much more difficult than doing terminal I/O. Thus, either
    the rewards are less, or the barrier to entry is higher.

    On the other hand, there is HTML, which makes it very easy to create
    user interfaces, but the user interfaces are somewhat limited and adding
    in program logic can be very tedious.

    Fortunately, software vendors are not sitting still. Konfabulator, Apple
    Dashboard, gDesklets, Oprera Widgets, KDE's Dashboard, and Mozilla's XUL
    (which is supported natively in Mozilla browsers, in Opera and MSIE
    through plugins, while native support is being added to Konqueror and
    Safari) are all ways to make it easy to create visually appealing
    programs and add functionality to them. They are all based around the
    concept of creating the user interface in XML, then using a scripting
    language to implement the behavior. Indeed, this makes creating GUI
    software easy enough that beginning computer users can do it.

    I think these widgets are the future, especially once they will be
    treated like full applications that live on the same desktop (last time
    I checked, Apple Dashboard actually was a separate desktop from the one
    that contains the "real" programs).

    --
    Please correct me if I got my facts wrong.
    1. Re:Desktop Applets by Evil+Shabazz · · Score: 1

      Actually, at the risk of promoting Microsoft software, Visual Studio 2005 makes using simple windows controls and putting together simple windowed apps pretty darn easy. I'm not sure it could get much more simple without having to attach the Playskool name to it... ;)

      --
      Down with the career politician! SUPPORT TERM LIMITS
    2. Re:Desktop Applets by RAMMS+EIN · · Score: 1

      ``Visual Studio 2005 makes using simple windows controls and putting together simple windowed apps pretty darn easy''

      By coding or by drag and drop? You want it to be coding, because that gives people a closer feel to how the computer actually works. Better understanding leads to better programming. I've used a few interface builders, and while I recognize their merits, it's not obvious to me what code gets put in what files behind the scenes, and I find that a great loss.

      --
      Please correct me if I got my facts wrong.
    3. Re:Desktop Applets by Shaper_pmp · · Score: 4, Insightful

      Don't forget Javascript. Javascript is the new BASIC.

      Back in the day we'd write BASIC, then graduate to C/C++ for the "proper" coding.

      These days kids learn HTML, then Javascript to make the HTML do interesting things. Then they pick up PHP or Java (or VB if they're unlucky) and from there Perl, Ruby, Python, whatever.

      The most popular "beginners" language is always the most powerful one with the lowest barrier to entry. Anything that you can pick up quickly and do cool stuff with provides the essential satisfaction feedback that keeps you progressing and getting better.

      HTML provides the "oooh, pretties" before you even learn do any actual programming, and Javascript introduces you to loops/conditionals and even OOP if you want. PHP/VB then add in database integration and stricter efficiency requirements (not to mention often the added complication of stateless programming), and by the time you can program competently in them you're well on the way to becoming a full-fledged Developer.

      I have a great hope for dashboard widgets - it's exactly the kind of low-barrier-to-entry, high-return-on-time-invested platform that makes it interesting to learners, and because it's Javascript it's even starting them off on the kind of language that's the most useful to learn[1].

      [1] Not to knock VB, but if you learn BASIC or VB you can basically program in... BASIC or VB. Learn Javascript and you've got a leg-up on the syntax of C, C++, Java, Perl, PHP, Ruby, etc, etc, etc, etc, etc.

      --
      Everything in moderation, including moderation itself
    4. Re:Desktop Applets by Weedlekin · · Score: 1

      And the Express editions which are specifically targeted at those learning to program can be downloaded free of charge. An interesting alternative (again on Windows, but not from MS) is ethosBASIC, a games-oriented BASIC with some good beginner tutorials and plenty of examples. Commercial, but costs no more than a game ($40), and kids would I think find it a very much more entertaining way of learning to program than a line-oriented language running in a CLI.

      Those who prefer Macs might find METAL Basic interesting. It's free, has plenty of graphics and sound capabilities, and works on both Classic and OS X.

      --
      I'm not going to change your sheets again, Mr. Hastings.
    5. Re:Desktop Applets by Lauritz · · Score: 1

      Exactly. Further everybody have the runtime on their desktop and access the distribution medium (flaky tape drives need not apply). Sure you can do some advanced stuff in a browser, but you can also do some really simple stuff and that's the point.

    6. Re:Desktop Applets by Hast · · Score: 1

      Modern languages do make GUIs kind of hard. But OTOH they make it a lot easier to do all sorts of things which were just not possible in BASIC. Such as network/WWW access.

      I skimmed the article but I really wanted to smack him. No-one ships BASIC today because BASIC fucking sucks. As has already been pointed out pretty much any modern scripting language outclasses BASIC on all accounts except perhaps that it's not the first thing you see on the command line.

      I'd say that it's a lot easier to play around with computers today than when I was a kid. Sure you could do the really simple stuff back then but if you wanted to do something interesting (sound, graphics etc) then it got really hard, really fast.

    7. Re:Desktop Applets by Bandman · · Score: 1

      I've always maintained that anyone who could color could write a VB app.

      Not a //good// VB app, but anyway.

    8. Re:Desktop Applets by Twylite · · Score: 1

      At the ever-present risk of starting a religious war ;) ... Tcl

      GUI hello world app:

      pack [button .c -text "Hello, world!" -command exit]

      GUI hello name app:

      label .l -text "What is your name?"
      entry .e -textvariable name
      button .b -text "Okay" -command { puts "Hello, $name" }
      pack .l .e .b

      Tcl can load its scripts from a file, or execute them interactively, making it a wonderful environment in which to play around.

      I believe Python has similar qualities, although I have barely worked with it.

      --
      i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
    9. Re:Desktop Applets by Doctor+Faustus · · Score: 1

      Not to knock VB, but if you learn BASIC or VB you can basically program in... BASIC or VB. Learn Javascript and you've got a leg-up on the syntax of C, C++, Java, Perl, PHP, Ruby

      Do you really think the syntax is that important? I would say that Java is much more like VB (even pre .Net VB) than it is like C++.

    10. Re:Desktop Applets by westlake · · Score: 1
      These days kids learn HTML, then Javascript to make the HTML do interesting things. Then they pick up PHP or Java (or VB if they're unlucky) and from there Perl, Ruby, Python, whatever.

      In this neck of the woods, mayybe.
      In the world beyond Slashdot? In middle school? In junior high? I don't think so. Zip. Nada. Nothing would be closer to the truth.

    11. Re:Desktop Applets by Anomylous+Howard · · Score: 1
      HTML provides the "oooh, pretties" before you even learn do any actual programming, and Javascript introduces you to loops/conditionals and even OOP if you want.

      But is any of this as fun as seeing some pixels bounce around the screen based on your algorithm formula:

      100 X_pos = X_pos + X_vel
      110 Y_pos = Y_pos + Y_vel
      120 REM Bounce off the wall?
      130 if (X_pos == X_max) or (X_pos == X_min) then X_vel = X_vel * -1
      140 if (Y_pos == Y_max) or (Y_pos == Y_min) then Y_vel = Y_vel * -1
      150 Graph it...
      160 GOTO 100
      Then after you get tired of watching the bouncing ball, you add color, paddles, for pong, or a gun to shoot at your bouncing target. Easy access to this kind od instant gratification is what made me the geek I am today. Some how, I don't think tying a web page to a database would have been as exciting.

      Yeah, BASIC sucked. and I quickly out grew it, but it was fun wjile it lasted! I've done a lot of interesting development work, but nothing has been as fun as writing my first graphical tic-tac-toe program in BASIC. (God, I'm old!)

    12. Re:Desktop Applets by Doctor+Memory · · Score: 1

      Uh huh. But how does it do that? "Daddy, what's a layout manager?" "Daddy, why do I have to put a dot there?" "Daddy, why do I have to put a square brackets here, but curly braces there?" "Why do I have to use a dollar sign on name here, but not there?"

      TCL may have a place (I've used it, but I always wash my hands real well afterwards), but I wouldn't suggest it as a teaching language.

      --
      Just junk food for thought...
    13. Re:Desktop Applets by SanityInAnarchy · · Score: 1

      Yeah, and your comment had absolutely zero point.

      It was the Slashdotters of yesterday who were playing with BASIC anyway. The same kind of kids who today start with HTML and Javascript. And by the way, almost every kid I know who's at all into MySpace -- and that's a lot -- have at some point made some attempt to "learn some codes", which apparently means learn some HTML and JavaScript.

      They may only be using it to turn their page into hideous colors and flashy lights, but it's a start.

      --
      Don't thank God, thank a doctor!
    14. Re:Desktop Applets by SanityInAnarchy · · Score: 1

      These days, kids get this from video games. Since each game has its own commandline interface, usually separate and distinct from its scripting language, it's not very powerful, but you still see kids admining a counterstrike server (or whatever) playing with sv_gravity, friction, and other fun things before they just admin_slay each other.

      --
      Don't thank God, thank a doctor!
    15. Re:Desktop Applets by Shaper_pmp · · Score: 1

      Erm... most kids weren't playing with BASIC, either.

      It was the nerds and geeks that were playing with BASIC - everyone else was out playing football and climbing trees.

      Now the geeks and nerds are learning Javascript, and everyone else is still out playing football and climbing trees.

      --
      Everything in moderation, including moderation itself
    16. Re:Desktop Applets by Shaper_pmp · · Score: 1

      I think syntax is less important for your first language, as everything's new to you.

      I think it's vitally important for your second or third language, as at that stage people are thinking in their language of choice. Lacking a proper frame of reference they also tend to think they're pretty good programmers, and assume "different" == "shit"[1]. Similar syntax allows you to learn the language more easily, and to start to appreciate what it does well that your first language doesn't[2].

      I think it's almost completely irrelevant after your fourth or fifth language, since by then you should be thinking in abstracts and the language only lets you express the ideas, not formulate them in the first place.

      Wildly different syntax when learning your second or third language increases the chance that you'll give up and decide the "new" language is just crap, simply because you haven't understood how doing things differently can often be an improvement.

      I don't think it's co-incidence that most of the C/C++/Perl/Ruby/Python/shellscripters I know can program in multiple languages and (holy wars aside) are generally accepting of new ones. In contrast, most of the VB programmers I know know VB (sometimes BASIC), and that's about it.

      They also tend to believe firmly that VB is the best tool for everything from web development to arcade machine emulation, whereas the brackets-and-braces crowd I know tend first to consider the task, then choose a language to suit it. At the very least they seem to be aware of their chosen language's limitations, even if they don't enjoy admitting them to other people.

      "I would say that Java is much more like VB (even pre .Net VB) than it is like C++."

      The syntax of Java is blatantly that of C++ - it was even (IIRC) deliberately modelled on it. The Java libraries are pretty much like the .NET libraries, which are in turn somewhat like the old VB libraries, I'll grant you, as is the whole garbage-collection, runtime-library/bytecode interpreter requirement - the "feel" of the language is quite similar.

      However, it's just occurred to me... I've always considered Java the most VB-like of the brackets-and-braces languages... and thinking back over the Java developers I've known it's also got the most VB-like following ("Java is the answer to everything", inelegant language leading to inelegant code, a tendancy to think in Java instead of thinking in abstract and expressing in Java, etc). Hmmm... ;-)

      It's also interesting to note that from BASIC->VB->VB.NET, the whole evolution of the "BASIC" family of languages has been tending ever-more in the direction that C/C++/Javascript/Java/Perl/PHP/etc were already going - dropping line-numbers, incorporating OOP, losing GOTOs (Ruby aside ;-), etc.

      VB has been getting more and more credibility the closer it moves to the B&B languages, until with VB.NET and C#, it's now semantically equivalent to one. In contrast, there's a direct and obvious direction from C right up to the present day. I don't think this is coincidence.

      Of course, you could argue that even the B&B languages are now starting to tend in a slightly Lispy direction, but I don't (yet) know Lisp so I'm not qualified to comment.

      [1] When all you've got is a hammer...

      [2] Which leads straight on to the thought that "maybe my first language wasn't the best after all", which leads straight on to the thought that "what I'm comfortable with" != "the best tool for the job"... which cultivates an open mind and a willingness to try out new languages.

      --
      Everything in moderation, including moderation itself
    17. Re:Desktop Applets by Shaper_pmp · · Score: 1

      Good point. This is probably the only place that Javascript/HTML fall down when compared to BASIC - they're very good for teaching networking, graphic design, stateless programming and database interaction, but they're almost completely missing any kind of easy real-time or graphics-intensive capability.

      Well, until SVG becomes mainstream, at least - I'm sure then you'll start to see Tetris and Doom implemented pretty quickly. ;-)

      (And as an aside, I once implemented a playable game of Pong in Javascript/HTML - it would have been about 1997, or thereabouts.

      This was before layers or CSS, so the ball was a large mostly-blank graphic with a tiny ball in the middle, in a central HTML frame. The paddles were graphics in left- and right-hand frames (one controlled with the mouse, one by pressing keys).

      All "movement" was done in Javascript by using timers to programatically scrolling the appropriate frame up/down/left/right, and the scoring/collision detection was done with some really hairy JS that compared the scrolled positions of the various frames along with a hardcoded paddle-length value, and determined if the "ball" had hit the edge of the frame without the paddle being level with it (in its respective frame).

      Hey, I never said it was pretty, but damn was I proud I managed to do it... ;-)

      --
      Everything in moderation, including moderation itself
    18. Re:Desktop Applets by Doctor+Faustus · · Score: 1

      They also tend to believe firmly that VB is the best tool for everything from web development to arcade machine emulation, whereas the brackets-and-braces crowd I know tend first to consider the task, then choose a language to suit it.
      I think that's more of a function of the corporate information systems (IS) environment more than the language. For internal IS work, most companies with less than a few dozen programmers pretty much use SQL and one application language (or maybe one they're moving from and one they're moving to), to avoid having systems that only one or two people can maintain. That would also be why you're seeing the same thing with Java; it's really big for internal IS work.

      Wildly different syntax when learning your second or third language increases the chance that you'll give up and decide the "new" language is just crap, simply because you haven't understood how doing things differently can often be an improvement.
      I guess I can see that, although I'm not happy about the new syntax being C's, which I really don't like. (Maybe that comes from starting with Pascal? I did like C's syntax when I first learned it, but I type faster now.) That would also be an argument against starting with Python, which a lot of colleges are doing these days.

    19. Re:Desktop Applets by Shaper_pmp · · Score: 1

      I think that's more of a function of the corporate information systems (IS) environment more than the language... That would also be why you're seeing the same thing with Java; it's really big for internal IS work.

      Ah, but is that cause or effect?

      It's a fine distinction, but you end up wondering where you draw the distinction between "the languages that get used mostly in those kind of corporate cultures" and "the culture of the language".

      Cultures are made by the people in them - you may suggest Java and VB only have those kind of cultures because they're mostly used in those kind of companies, but then "the culture of X" is mostly made up by the people who use X, in this case corporate drones.

      I honestly don't know whether the Java/VB cultures are caused by some kind of brain-damage caused directly by the languages (and that's what makes them attractive to the corporate mentality), or whether the culture is caused by the languages mostly appealing to the kinds of people with that mindset anyway.

      Either way, given the languages we use are the tools we use to think, I'd say causation or correlation are both good reasons to keep well away from them... ;-)

      --
      Everything in moderation, including moderation itself
  6. Absolute nonsense by realnowhereman · · Score: 4, Informative

    What a load of rubbish.

    apt-get install \
          bash \
          python \
          gambas2 \
          kturtle \
          fp-compiler fp-units-base \
          php5-cli


    The reason children don't code (if that is even true, as it's a completely unsubstantiated assertion) is because they don't want to.

    I started programming when I was ten, and I did it by hand-converting Z80 assembly language to machine code and then used BASIC poke commands to write them into memory. I had to work hard to scrape a C compiler from somewhere and that was heaven.

    Today it is a million times easier to write a program if you wanted to. Blame ease-of-use culture; blame video games; blame stupid parents; but blaming the lack of access to programming languages is ridiculous to say the least.

    --
    Carpe Daemon
    1. Re:Absolute nonsense by whyloginwhysubscribe · · Score: 2, Interesting

      Exactly - and it's 100 times easier to do lots of other things as well - make music, videos, web pages... There will always be kids programming in their bedrooms - and good luck to them, they keep me on my toes because I know they're going to be fighting me for my job in a few years to come!

    2. Re:Absolute nonsense by dsginter · · Score: 1

      The reason children don't code (if that is even true, as it's a completely unsubstantiated assertion) is because they don't want to.

      Exactly.

      Yesteryear, it was possible to write a simple GOTO loop in QBASIC and coax some perceived functionality out of the box. Now, computer games and software in general is so advanced that kids can't correlate a simple repeating "HELLO WORLD!" loop into anything that they might enjoy.

      What we need is a simple line-oriented language with some advanced graphics capabilities. When kids can take digital pictures and easily glue them onto a spinning OpenGL cube, then we'll start seeing them get sucked into computer science again ("sucked" is a good word to describe how I ended up here - it wasn't really a choice).

      --
      More
    3. Re:Absolute nonsense by Anonymous Coward · · Score: 0
      10 PRINT "HI JOHNNY!"
      20 GOTO 10
      This is what a lot of orinary kids first programs looked like in the Atari 400/800, Vic-20, Apple ][ times. All you had to do was turn the machine on and there it was: "READY." Super-simple. Learned in a matter of minutes. Line-by-line error correction. There were also listings in magazines you could type in and play with, and while typing get a good grasp of what the program was doing. This is late 70's, early 80s stuff. Playing around with the built-in BASIC interpreter was my first encounter with computer programming and what got me started. Learning to actually properly code is another thing entirely, getting a person interested enough to learn this is the first step.

    4. Re:Absolute nonsense by cruachan · · Score: 5, Insightful

      I don't think it's because the barrier to entry is too high, rather the barrier to do something cool is in the stratosphere. Think about it - back in the 80's when you first started playing around with code creating your own version of pong was pretty dam cool. Actually even getting the machine to draw a few boxes on the screen in different colours was cool. True there was a learning curve and it was quite steep if you'd never coded before, but it wasn't that far from bottom to top.

      Nowdays cool is Half-Life 2 type graphics. And I suppose the nearest to drawing a few boxes on the screen is coding DirectX/OpenGL shaders to do cool things on a few objects. The learning curve is still as steep, but think of all the stuff you need to know before getting something interesting done - it's a much longer way from bottom to top and you consequently need more determination to get there.

      I think you'll now find many of the kids who would have previously cut code now working on mods for games. Maybe that will sprout creativity in a way that the article suggests, but it is difficult to see what.

    5. Re:Absolute nonsense by DeeDob · · Score: 3, Insightful

      None of the language you listed is as easy as the old BASIC, which you could access directly from the command line on most computers.

      Nowadays most languages requires downloads (java, php), installation procedures (java, php, visual basic), having to learn development tools as well as the language itself (visual basic), a compiler (C, visual basic, java) and whatnots...

      Those that don't require complex set-ups require the knowledge of another language to work properly (vbscript, javascript require HTML/CSS knowledge).

      Other even need a server set-up properly before you can use them (PHP, ASP).

      Even something like Python needs additional package set-up. Python documentation is also not the easiest to find (beginner books and easy tutorials are rare).

    6. Re:Absolute nonsense by jimstapleton · · Score: 1

      My thoughts exactly - I saw that article and I'm thinking, with a little help from the parent, why can't the kids go use Python or PHP?? They are easy to install on any OS (I could use portupgrade in my BSD box, or download the installers in my Windows machine), and we have something that is pretty darn good. Actually, in my oppinion, I found those easier to use than the earlier basic. With a little looking at the libraries available, a tech savvy parent can get all the ease of use out of them, for the child, as well. Caveat: Not every machine has these languages, and they are not as ubiquitous as BASIC was, so the children won't get all of the media, unless they plan to learn 2 or 3 languages, and without parents with basic tech skills, they may not even be able to get these installed. Still, it's not a bad idea.

      --
      34486853790
      Connection too slow for X forwarding? Try "ssh -CX user@host"
    7. Re:Absolute nonsense by Anonymous Coward · · Score: 0
      I started programming when I was ten, and I did it by hand-converting Z80 assembly language to machine code and then used BASIC poke commands to write them into memory. I had to work hard to scrape a C compiler from somewhere and that was heaven.
      But did you have to do it uphill both ways in a blizzard?
    8. Re:Absolute nonsense by nwbvt · · Score: 2, Insightful

      He did mention other languages like Python or C++, and discards them. I'm not sure why exactly, but apparently he doesn't think they are any good for beginners (I think he is mostly just nostalgic for his programming days in which he used BASIC).

      I would actually say there are plenty of kids who learn programming these days. Yes, they are doing it using more modern languages that have not been rendered obsolete, but that doesn't mean they are not learning valuable skills.

      And I call bullshit on his assertion that learning BASIC is the CS equivalent to a med student learning chemistry. Those basic fundemental skills are learned when the student takes a computer engineering course (which I believe most universities require) and learns how logic gates work and writes programs in assembly. Those are the fundemental building blocks of our modern computers. Learning BASIC is closer to a med student learning outdated theories on medicine. Interesting from the historical perspective, but not essential for their education.

      Lets please institute a rule and stop posting articles from Salon. Whenever someone does, the article is nothing but elitist bullshit with a lot of ads.

      --
      Mathematics is made of 50 percent formulas, 50 percent proofs, and 50 percent imagination.
    9. Re:Absolute nonsense by NorthWestFLNative · · Score: 2, Informative

      Have you looked at http://www.kidsprogramminglanguage.com/? It has a simple syntax along with advanced graphics. It was designed to be used in classrooms to teach kids how to program.

    10. Re:Absolute nonsense by helifex · · Score: 4, Informative

      On Windows... Right click on the desktop and create a new text file. Rename the text file to hello.vbs, then right click and choose edit. Enter the text 'msgbox "Hello world!"' and save it. Double click on the icon. The only thing that could make it easier was if they had added "vbs file" as a new document template. I don't think it's lack of availability that's the problem...

    11. Re:Absolute nonsense by njh · · Score: 2, Insightful

      I think the truth is simpler than this. I think there are roughly the same number of new programmers born now, per capita, as were born 20 years ago. It's just that 20 years ago, only the programming types would have had a computer.

    12. Re:Absolute nonsense by jimshatt · · Score: 1

      I think the problem isn't availability, or lack thereof. BASIC was THE language to code in back then. It was the only language I knew of and it was already on the computer.
      What we need is one language (of the many, many available and easy-to-program-in languages) emerging as the de facto standard programming language for kids (or anyone that wants to learn how to program).
      BTW, I know of one language that is available on (almost) all computers: JavaScript. Just fire up your favorite browser.

    13. Re:Absolute nonsense by Lumpy · · Score: 1


      Today it is a million times easier to write a program if you wanted to. Blame ease-of-use culture; blame video games; blame stupid parents; but blaming the lack of access to programming languages is ridiculous to say the least.


      I agree, but the problem is that most kids never get to be exposed to a real OS that not only allows playing but encorages it. They are stuck with Windows at home and thus cant program without parents spending thousands on the IDE and other items. Linux on the other hand is ready-to-go but scares the living bejeesus out of the parents. so johnny is stuck. Either learn on his own and fine where he can pirate and steal what he needs for programming in Windows.. (I know you can get GCC and other things for windows but it's not easy in any way and is not obvious where to get it or that they exist) Face it windows is HOSTILE to the do it yourself and tinker types.

      final problem.. None of you uber programmers are willing to mentor. Have you started or volunteered to teach a programming users group? how about a once a month class at a local school?

      How many of your towns have a LUG that is bearly running? are you there helping?

      Most kids' parents are not smart technically. It's just a fact of life that sales, marketing, managers, CEO's, foundry workers, window washers, gas station attendants, and presidents of countries are clueless and even scared of computer technology. So these kids will not get exposure or encouragement from home to persue and look into it.

      Finally, back in the 80's there were cool magazines for computing platforms that had easy and advanced programming examples, today all magazines on programming are dry and crappy, no kid has any interest... Hell I cant stand reading Dobbs anymore as dry and redundant as it is now.

      --
      Do not look at laser with remaining good eye.
    14. Re:Absolute nonsense by Tanuki64 · · Score: 1
      The reason children don't code (if that is even true, as it's a completely unsubstantiated assertion) is because they don't want to.
      I don't think this really is true. When I was a kid there were many journals, which contained game code, which I had to type in manually. Some of those games were actually quite good. Very often the same journals explained the program code. It was relatively easy to modify it and see the results. When I had no joystick, I changed them to use the keyboard. Wasn't always easy at first, but I wanted to play those games. I very much doubt that I would have bothered to learn a programming language and invest even half of that time, when all I had were books, which started with an example of how to write 'Hello world'. I do think that the problem today is, that the starting steps to do something meaningful got much higher. Sure, you can do with Python or Perl the same you could do with BASIC twenty years ago. In theory. If you already can code. But even if all computers still shipped with BASIC, it would not be the same. The do-it-yourself coding culture got lost and therefore practically all of the important literature vanished. Do you know a weekly or even monthly journal, which actually teaches you how to paint a green line across the screen? Twenty years ago I could have named a dozend without even thinking. Today? None.
    15. Re:Absolute nonsense by Chelloveck · · Score: 3, Interesting
      I don't think it's because the barrier to entry is too high, rather the barrier to do something cool is in the stratosphere. Think about it - back in the 80's when you first started playing around with code creating your own version of pong was pretty dam cool. Actually even getting the machine to draw a few boxes on the screen in different colours was cool. True there was a learning curve and it was quite steep if you'd never coded before, but it wasn't that far from bottom to top.

      The same is true of electronics. In my college days (mid-80s) it was cool to wire up a circuit to make and LED blink, or a flash bulb fire. If you were really into it you could scrounge a HeNe laser tube and build yourself something really cool. These days, all that stuff is available for cheap. Blinking LEDs are literally given away free with breakfast cereal. Laser pointers are less than $10 and come with a variety of lenses to make images on the wall. The cool stuff is no longer easy, and the easy stuff is no longer cool.

      I think it's just a sign of the technology maturing. The technology for its own sake is no longer interesting. Both programming and electronics are just means to an end. Now the cool stuff is making that technology do something. Yeah, there's a higher barrier to entry, but it's not insurmountable. Back then you had to program a game from scratch; now you can take an existing game and mod it. Back then getting a motor to turn was neat; now, you can build robots without worrying about the piddly stuff. I think there's still plenty of room for exploration and creativity, but it won't be the same as when my generation were kids. My kids' generation will take the basics that we laid down and build upon them, making whole new cool things. No, it's not the same as it was. It's better.

      --
      Chelloveck
      I give up on debugging. From now on, SIGSEGV is a feature.
    16. Re:Absolute nonsense by Tim+Browse · · Score: 1

      I started programming when I was ten, and I did it by hand-converting Z80 assembly language to machine code and then used BASIC poke commands to write them into memory. I had to work hard to scrape a C compiler from somewhere and that was heaven.

      And remember all the weird variations of BASIC? One for every machine, it seemed like. You'd get halfway through typing in some cool-looking program from a magazine listing, and go "INKEY$? What the hell is INKEY$? My computer doesn't know that!"

      Kids these days, etc. We had 7167 bytes free on startup and liked it!

    17. Re:Absolute nonsense by g2devi · · Score: 1

      > I started programming when I was ten, and I did it by hand-converting Z80 assembly
      > language

      I doubt that's when you *first* tried programming. Since you're old school, I'm willing to bet that you started programming the way most programmers did, by typing the following program:

      10 print "Hello World"
      20 goto 10

      The barrier to entry was trivial and you likely got excited that you were able to get the computer to do something and *slowly* advanced from there to more advanced programs that did something useful.

      On Linux, it's just as easy as the old days (no apt-gets required). Pull up a command prompt and type:

      while [ -z "" ] ; do
              echo 'Hello World'
      done

      That's the equivalent program to the old "Goto 10" program. The main problem isn't that languages aren't available, it's that expectations have increased and the belief that you have to get it perfect the first time or you're not cut out for it.

      Newbies are no long satisfied with useless programs that teach you the foundations or finding flaws in their work, so they get frustrated when they see the source code of things like the Linux kernel and realize that they have no idea what it's doing. So programming seems out of reach. Unfortunately, those "useless" fundamentals are needed in much the same way as learning the scales is needed if you want to play an instrument.

    18. Re:Absolute nonsense by orasio · · Score: 1
      for i in `seq 1 10`; do echo $i HELLO; done
    19. Re:Absolute nonsense by Lars+Clausen · · Score: 1

      Surely you mean

          while true; do
              echo 'Hello, world!'
          done

      [ -z "" ] is just overkill.

      What's missing from bash(/zsh etc) programming is easy graphics. I have yet to see /usr/bin/draw that makes lines on the terminal. Shell languages have everything else, including a very direct interface.

      -Lars

    20. Re:Absolute nonsense by realnowhereman · · Score: 1
      Sure, you can do with Python or Perl the same you could do with BASIC twenty years ago


      Which is exactly my point. The article was blaming lack of access in modern times, for the reason that children don't code. That assertion is blatently untrue.

      The problem is (and has always been) one of motivation. Sufficiently interested children will not be stopped. Making interested children is what the article should have been about.
      --
      Carpe Daemon
    21. Re:Absolute nonsense by mennucc1 · · Score: 1

      "Nowdays cool is Half-Life 2 type graphics. And I suppose the nearest to drawing a few boxes on the screen is coding DirectX/OpenGL shaders to do cool things on a few objects."
      My best choice for teaching to a kid would be Python. In that case, PyOpenGL (the Python - OpenGL binding ) would really save your day; you may introduce basilar Python; then pick one simple code examples from PyOpenGL , and try what happens when you change the code here and there.... (yes, this looks more "a hacking class" than a "coding class"... but it is more fun).
      What may be hard about using OpenGL is that you need to master 3D geometry in your mind. I dont think that would be OK for a 10 year old kid.

    22. Re:Absolute nonsense by Anonymous Coward · · Score: 0
      Bah, no need to call an external program like seq if you're using bash:
      for ((i=1; i <= 10; i++)); do echo "$i HELLO"; done
    23. Re:Absolute nonsense by c · · Score: 2, Insightful

      the barrier to do something cool is in the stratosphere

      I was thinking that, myself, but I'm actually convinced otherwise. The barrier is quite high, if by "something cool" you mean games and graphics.

      However, there's still an obscenely huge amount of useful, interesting things which can be accomplished by small amounts of little scripts... All these internet-based APIs out there (Google, Flickr, etc) provide a low barrier of entry for some degree of "cool".

      I think the real problem is a lack of motivation. In the good old days, you hacked on computers because, quite frankly, there probably wasn't that much else to do. Now, computers do (WAG) 99% of what the average kid expects/wants/needs.

      c.

      --
      Log in or piss off.
    24. Re:Absolute nonsense by MrTufty · · Score: 1

      Thousands of pounds for a Windows IDE? I call bullshit on you. There's dozens of free alternatives, even from Microsoft themselves. Such as these - http://msdn.microsoft.com/vstudio/express/

      You can also download the C++ compiler and tools for free from MS as well. Granted it's maybe not an open-source alternative, but I'll leave that to other people better informed - myself, I'll use the best (and most widely used) tools for the job, regardless of who publishes them.

      If kids are interested in games specifically there's also the XNA Game Studio Express line, which I've used myself and is very nice indeed.

      I don't unfortunately know anyone who's just getting into programming for the first time and needs some extra encouragement, but be sure that if I did I'd give them whatever help and advice they needed. The simple fact is, some people can do it and some people can't. Oddly enough some people are put off by the perceived complexity of the code, other people (such as myself the first time) find it addictive.

    25. Re:Absolute nonsense by houghi · · Score: 1
      apt-get install \
                  bash \
                  python \
                  gambas2 \
                  kturtle \
                  fp-compiler fp-units-base \
                  php5-cli


      Don't you have something I can click on?
      --
      Don't fight for your country, if your country does not fight for you.
    26. Re:Absolute nonsense by Lumpy · · Score: 1

      so how many kids have you told this? as that information is not easily nor readily available. and certianly no kid is going to know that. Microsoft is doing a dis-service by not posting that link at the top of every page on MSDN or when you go to their site for VS. first thing should be "FREE STUFF"

      but no they hide it which is a shame. I did not even know that that from MSFT existed because they intentionally hide it. (yes not advertising it is the same as hiding it.)

      and I mentioned the OSS stuff, but again. someone interested cant find that it even exists easily.

      as a newbie trying to get info the first things you run into are $1000+ for the Visual studio, Borland, etc.... and you walk away because your first impression is this is expensive.

      no 12 year old kid is going to have the vast knowlege you or I have on what obscure freebies are out there. they do a quick search on google, discover it's expensive and start hitting the bittorrent sites.

      So I stand by what I said, at first glance getting into prograaaming is horribly expensive and that is not a lie. you have to search deep to find the freebies.

      --
      Do not look at laser with remaining good eye.
    27. Re:Absolute nonsense by tji · · Score: 1

      You're dead on..

      My first PC was a TI-99/4A, which came with a BASIC interpreter and a bunch of example programs in a book that encouraged me to try them out and modify them. I remember typing in their slots program and playing it with my cousins, and modifying it to get better results for myself.

      The gap between what I could make in BASIC and what the professional programs offered was not huge. The same applied to my next system, an Apple ][e. Now, few kids are impressed by a console program. To get to something interesting to them, a GUI app or 3D graphics, requires a huge amount of experience.

      The alternative that some mention, high level tools to create GUI apps or graphics ignores the fact that the person gets no experience in the fundamentals and no understanding of what's going on under the covers. Using those tools is more akin to configuring/using a program, rather than actual development.

    28. Re:Absolute nonsense by cruachan · · Score: 1

      I think I broadly agree that we've 'leveled up', except the original question was about entering/learning simple code rather than manipulating tools and it that context I stand by the stratospheric obesrvation.

      One ray of hope though is Processing http://processing.org/ which is a simply awsome java-like script runner designed for doing really cool graphics. Worth playing with for all coders with 2 weeks to 2(+) decades experience.

    29. Re:Absolute nonsense by BoberFett · · Score: 1

      I clicked on Start, and Run, and typed apt-get and it didn't do anything. What am I doing wrong?

    30. Re:Absolute nonsense by Anonymous Coward · · Score: 0

      I don't think it's because the barrier to entry is too high, rather the barrier to do something cool is in the stratosphere.

      Not necessarilly true: check out Croquet. It has a fairly cool 3-D world, and by using Squeak (a Smalltalk derivitive) it's possible to change behaviour of the objects in that world.

      Of course you don't have to write directly in Squeak (but you can), as many 8-year-olds may not be able to handle it, so you you can use a GUI. There are videos of Alan Kay demonstrating children in primary school "programming".

    31. Re:Absolute nonsense by Paladinian · · Score: 1

      I concur that the coolness barrier is certainly a factor... part of what can inspire people to continue working at something like Programming is the positive reinforcement they get from their peers if they do something impressive. As you bring up, the things one used to be able to do had a much greater return-on-investment (in terms of reward for time spent) then they do today... time spent coding minor little screen-savers (the good old bouncing line comes to mind) could get some interested "ooohs" and "aaahs", making it a not entirely wasted expenditure of time. Now, though, doing the same thing simply makes the hypothetical kid's contemporaries say "The Windows one is better".

      Game modding fits the bill as a replacement for this sort of thing, indeed. The hard parts... namely, the rendering engine, the mesh, skinning, and animation models, and the control interface is already done. The 'kids' can then simply work on the intersting stuff... new item here, maybe building a new module there, and so on. The work-feedback cycle is kept short enough to reduce the opportunities to give up, or simply lose interest.

      Beyond that, I think the area that has the most potential to become the "new Basic" is Flash ActionScript, personally. It is relatively easy to get *something* interesting going on in Flash, and without needing to cross much of a barrier first. Flash handles the drawing of the images on-screen, it lets the users draw new artwork fairly easily, and it handles animation a lot easier then trying to code it one's self. For kids starting out who want to impress their buddies with what they did, this is really all they need to get going.

      The major thing that I see keeping this from coming about is the substantial cost involved to acquire a legitimate copy. It is also a bit of a question as to how *good* a programmer reared on ActionScript would be. But in terms of getting kids programming, it seems a reasonable thing to point them towards, assuming their parents are willing to lay down $700 to pick up a copy for little Johnny.

    32. Re:Absolute nonsense by MrTufty · · Score: 1

      Ok. You're spot-on with most of your comments.

      I haven't told any kids because, with the exception of one of my cousins who is 10 and interested in pretty much everything, the majority of the other "small people" I come across are a little young to be exposing to programming (they're 3).

      Certainly MS should advertise the free stuff more, I guess partly they don't want to detract from people willing to pay out for the expensive packages (still worth it if you/your employer can afford it, the integrated systems do make life easier). I suppose the OSS people should also try to get peoples attention more as well, but unfortunately the support for such packages tends to come across as RTFM NOOB! whenever someone is confused about simple things - which often happens when someone is just starting out.

      I'm sure we're in agreement that encouraging kids to code is a good thing though. At worst they'll pick up some useful logic skills which aren't emphasised nearly enough in modern education. Yes, in my opinion it's logic, not maths, that is essential for programming (with the exception of binary and hex). Still, I suppose while the kids aren't learning, it'll make the skills that we have much more valued later in life because there'll be a much smaller next generation coming along after us!

    33. Re:Absolute nonsense by Anonymous Coward · · Score: 0

      yeah, it's the same in any other aspect of science. particularly in physics

    34. Re:Absolute nonsense by Bozdune · · Score: 1

      Parent is the best post in the thread. The modern programming environments are so "heavy" with setup that people don't want to touch them. Visual Studio, despite an earlier post claiming the contrary, is a huge pain in the ass, yet is considered by many to be best-in-class in terms of "just works". Don't even talk to me about setting up Apache on my home machine with Tomcat and JBOSS or whatever. And I don't want to hear about how easy it is to install/configure/compile [your favorite environment] from [your favorite sourcecode repository]. It's fundamentally easy, yes, nobody is arguing about that. But if you are a novice and you don't know any magic, and you don't have any context for understanding what the hell the HOWTOs are talking about, you're just plain stuck. You can haunt the message boards and hope someone will help you, and usually someone will. But that requires a lot of persistence and patience. Bottom line is, you don't walk up to the machine knowing how to do anything. Someone has to set up the environment for you.

      And that's why Visual Basic and PowerBuilder are the fastest and possibly the best development environments ever invented for ordinary human beings who have a programming task to accomplish. Fire the environment up, everything is obvious; real gui apps work right away; everything is easy. Which is why it's such a shame that VB, at least, has been replaced by the abortion that is VB.Net.

    35. Re:Absolute nonsense by mrdaveb · · Score: 1

      True, kids can't write a game in a few hundred lines of code and impress their mates with it anymore.

      However the web is the place to be seen. Almost anyone could do some scripting on the web in PHP or Perl or whatever, and come up with something quite cool in a few hundred lines of code. OK, it's not half life 2, but it's easy to get into and it seems kind of magic the first time you make a webpage do something interactive with a database - just like the profesionals over at ebay or amazon do.

      Maybe the kids today won't learn BASIC. But I never learnt assembly, and that would horrify an earlier generation.

      --
      Homme petit d'homme petit, s'attend, n'avale
    36. Re:Absolute nonsense by StormReaver · · Score: 1

      "What a load of rubbish. apt-get install bash python gambas2 kturtle fp-compiler fp-units-base php5-cli

      The reason children don't code (if that is even true, as it's a completely unsubstantiated assertion) is because they don't want to.
      "

      C:\> apt-get install \
                    bash \
                    python \
                    gambas2 \
                    kturtle \
                    fp-compiler fp-units-base \
                    php5-cli

      "... is not recognized as an internal or external command, operable program or batch file."

      Hmm...which version of Windows do I need for that? My computer came with XP.

      Okay, it didn't really. I use Fedora Core, and haven't used Windows at home since 1999. However, most of the rest of the computing world gets stuck with Windows, and Windows is exactly as the author portrays it. Most kids nowadays don't even know that programming is even an option simply because their computer doesn't throw that option at them in an easily accessible manner.

      Programming adoption by kids in the U.S. nosedived at the exact moment that computers stopped providing an easily accessible, ubiquitously available programming environment that greeted you at boot time.

    37. Re:Absolute nonsense by dsginter · · Score: 1

      Good stuff, man.

      --
      More
    38. Re:Absolute nonsense by Phat_Tony · · Score: 1

      What's changed is access to the tools to start experimenting with coding. When you sat down at a command-line terminal like on a C64, you often had to learn a few commands in BASIC just to load a game or see your files. And if you used a Commodore 64 in a computer lab, it usually wasn't long before some kid would show off by printing repeating rainbows on the screen or something, subjecting the entire class to the power of a couple of lines of code with a loop. Now, there is no equivalent. Kids are not simply subjected to some programming in the course of using computers that might tweak their interest, they would have to decide they were interested on their own (or with pushing from someone else,) and then it's not obvious how or where to get started. On a Commodore 64, when you turn it on it starts up in a BASIC development environment, and the computer's manual came with a programming guide for the language. That's a little different in ease of getting into programming than a new Mac or Windows computer.

      On the other hand, spending three years trying to get BASIC to run on either a Mac or a PC sounds bizarre. For one, why's it have to be BASIC? If I had a kid I wanted to teach programming on a Mac, I'd use Applescript, which comes with it, and will allow him to easily do some cool things interfacing with other programs and the operating system, as well as giving him an easy path out of a sandbox and into real development via Applescript Studio. Or run Hypercard under Classic, which in my opinion is still the best introduction to programming ever, because you can make things that are highly functional really fast, yet Hyperscript is a full-featured programming language you can really sink your teeth into if you want to get more advanced. If you're dead set on an archaic linearly interpreted language, LOGO's even easier to learn than BASIC.

      And if you're set on BASIC, how on earth is it taking you three years and you're not finding it? Here's the results of my 10 seconds of searching for Mac:
      Chimunk BASIC
      METAL
      CocoaBasic
      Omikron BASIC
      FutureBASIC
      TWM (a GUI Builder for Future Basic)
      bOSL

      Or just emulate whatever BASIC environment you thought was good for learning:
      Power64
      Frodo
      Power20
      Sweet16

      For LOGO:
      XLogo
      jLogo
      ACSLogo
      StarLogo

      For Applescript, open Script Editor, which should already be on your Mac.

      Hypercard isn't officially available, so horque a warez copy (come on, it's abandonware, how bad are you gonna feel?), or use a competitor:
      Supercard
      HyperNext Studio

      --
      Can anyone tell me how to set my sig on Slashdot?
    39. Re:Absolute nonsense by Zach978 · · Score: 1

      I agree, I used to have fun doing things that would be really uninteresting now...it was more of an adventure than it is now. Just writing a colorful animated hello world type of program with different beeps and tones used to be fun, but now you teach a kid to do that and his friend is going to be dragging and dropping a really cool flash animation that would blow it away. PHP might be a good place to start, because you're still just writing text output (html), but you can do some cool stuff with it.

      Or, maybe a more practical application apealing to the lazy...show your kids how to write a console program (Perl, Python, PHP, etc) that will ask for inputs that could help him/her with thier math homework or something. They might use it as a crutch, but by the time they figure out how to program a process they will have a better understanding of it.

      --

      "I told you a million times not to exaggerate!"
    40. Re:Absolute nonsense by Phat_Tony · · Score: 1

      OK, I deserve a "RTFA," I read the first page and mistakenly thought I was at the end when there were two pages left (that I've now read) where he discusses Chipmunk BASIC on the Mac, why he doesn't like LOGO, and why he objects to anything as functional as Applescript and Hypercard as introductory languages. Can't say I agree. Still, I stand by the part where I point out that free emulators beat buying and setting up a Commodore 64.

      --
      Can anyone tell me how to set my sig on Slashdot?
    41. Re:Absolute nonsense by eraserewind · · Score: 2, Insightful
      You can't change (or see) a file extension with the standard Windows install options. You have to change some options in windows explorer.

      It's even tricky to change it by doing "file-save as..." unless you know what you are doing, most likely you will end up with hello.vbs.txt

      So it's not as straightforward as you make out. In fact they have made it deliberately difficult to do what you describe. They seem to want to preserve some sort of idea of the intrinsic nature of different types of files for users.

      The only thing that could make it easier was if they had added "vbs file" as a new document template. I don't think it's lack of availability that's the problem...

      Given that it's one of the standard ways to create a new file of the type you want, it's exactly what they should have done if they wanted average people to program. It's precicely lack of availability that's the problem. You could hunt using the standard windows interface and never discover that there was a way to do what you describe (trivial though it is).
    42. Re:Absolute nonsense by 32Na · · Score: 1

      Brin points out that BASIC code shows up in textbook examples, as a simple 'do it yourself' math tutorial. I do agree with him that the very simple syntax of BASIC is great for this kind of thing, since kids who know nothing about programming can type just a few lines and see a loop (or whatever) in action.

      However, I wonder if he could have searched around a bit before lamenting the death of the language. For example, a nice emulator is found here.

      I think very lightweight languages like this can continue to be useful, for the same reasons he states in his article: they allow someone to easily grasp important concepts (I'm thinking math and science, not so much computer science). Kids who only want to complete their assignments will type their code, view the results and be done, others may explore further and discover the limitations of the language quickly.

    43. Re:Absolute nonsense by krunoce · · Score: 1
      Making interested children is what the article should have been about.

      You're absolutely right. "Making Interested Children" would have been one hell of an article! =)

    44. Re:Absolute nonsense by nine-times · · Score: 1

      It's funny, because I was also inclined to tie the issue to something about games. Not so much the difference in graphics, but an awful lot of programmers and general IT people I've met under the age of 30 started learning about computers in order to play video games. Not "to write video games", but to play them.

      Remember playing HHGttG? Or Zork? Anyone here remember juggling multiple AUTOEXEC.BAT and CONFIG.SYS files because different games required different configurations? Sometimes you'd have to load HIMEM.SYS or EMM386, sometimes not? All those configuration issues, needing to know what kind of sound card you had, etc.?

      Well think about this: for most people under the age of 20, they've never experienced computers as "something that you need to type commands to get it to work". Just open a terminal window and type a command in front of a 15 year old, and they think you've displayed some great hacking feat. Their games just install and run, so they don't need to know anything about IRQs or hardware or anything. The games just work, like magic. Hell, my grandparents are far from computer literate (last time I talked to them about it, they thought Outlook Express was "the internet), but at least they've used DOS and know how a CLI works.

      I'm not complaining exactly, because I'm certainly glad that I don't have to worry about IRQs anymore, but with games being so easy to install and run, we've lost one of the great motivators that would lead kids to learn about technical computer issues.

    45. Re:Absolute nonsense by jafac · · Score: 1

      The reason children don't code (if that is even true, as it's a completely unsubstantiated assertion) is because they don't want to.

      Or, more accurately, they're not motivated to.

      When I started coding, the coolest computer games were; blackjack, pong, text adventure. . . (anyone remember Temple of Apshai?).

      Coding a game of this calibre is pretty simple, and easily within reach of a kid with a TRS-80, and the BASIC manual that shipped with it, with maybe the 20-30 surplus hours per week a 10 year old kid has after school, chores, and other extracurricular activities.

      The motivation? Learning. And, to impress freinds. (one buddy of mine, when we were 14, wrote a chess game for TRS-80 Model III - well, he was pretty special).

      Today, my kids want to put in that kind of time, and have "Quake" as their output. No way in hell is that going to happen. There's no language or framework that has that kind of RAD power. So they would spend that kind of time, in java, in perl, realbasic, whatever, and come up with something as meaningless and trivial as a text-based blackjack game. Big deal.
      You have any idea how to motivate kids?

      I wouldn't blame lack of access to programming languages - but there is a serious barrier to entry for "meaningful" things that a kid would want to write. We're talking OOP, IDE's, frameworks, licensing, etc. It's hugely more complex now to do these kinds of things - and NO language has abstracted out those complexities yet.

      My oldest son (now 18) basically gave up, and decided that programming wasn't for him, when I tried to teach him Java. It was the OOP concepts that did him in - the same ones that I found very difficult to grasp (maybe I still haven't grasped - and neither have a lot of professional java programmers I know, by the way).

      My 12 year old is there now - and he thought "hello world" was ok. But he wants to write something really cool to impress his freinds.

      The other thing that drove me to program was the need for administrative automation. I've done tons and tons of scripting to just make system administration easier. (remember autoexec.bat and config.sys?) I didn't really start doing that stuff until I was in my 20's, because before that, I only cared about games.
      But a lot of that isn't necessary now on most modern OSes. It's all built-in now, GUIfied, and often, bundled with "Enterprise" or "Server" versions that aren't available to home users who don't want to either pay buttloads of money, or pirate. And in any case, most kids want to write games, not administrative scripts.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    46. Re:Absolute nonsense by Anonymous Coward · · Score: 0


      > the barrier to do something cool is in the stratosphere

      I don't think so.

      The thing that's so cool about programming is having the control.

      I get to design the buttons, put them exactly where I want them, and make them behave exactly the way I want.

      Even if the buttons are simple, and the window-dressing is nothing but a little colored border, it's still cool to me, and I've been doing it for 20 years.

      It's the fact that I'm in control, and I can make it work is what makes it so great.

      And I still remember many years ago when, after just a little bit of practice, I got the feeling that I could make a computer do anything! I was naive, of course, but it was the coolest thing in the world to me.

    47. Re:Absolute nonsense by Julian+Morrison · · Score: 1

      Depends upon your definition of "cool". Games are harder, but desktop apps are infinitely easier. Any damn fool with a Visual-Basic-alike can put something pragmatically useful together in mere hours.

    48. Re:Absolute nonsense by KlomDark · · Score: 1

      How do you compare VB.old and VB.net and come up with VB.old being somehow better?

      VB.old sucked rat testicles. VB.net (Although pretty much just a gateway to C#) is infinitely better.

      Please explain.

    49. Re:Absolute nonsense by Lodragandraoidh · · Score: 1

      Python comes installed on most Linuxes, and there is a binary installer for windows - I've installed it on various machines and linux and windows was the easiest by far. So I think your argument that it needs additional package setup is not correct - unless you are loading it on some machine that no average consumer uses.

      From a beginner's perspective you don't need to do anything but load it and start using it:

      $ python
      Python 2.3.5 (#1, Nov 30 2005, 10:43:26) ...
      >>> a="Hello World"
      >>> print a
      Hello World
      >>> for x in range(1,10,1): ... print a ...
      Hello World
      Hello World
      Hello World
      Hello World
      Hello World
      Hello World
      Hello World
      Hello World
      Hello World
      >>> b=0
      >>> while b >> if b == 10: ... print a ... else: ... print "b="+str(b) ...
      Hello World
      >>> print b
      10

      etc.

      Python is perfectly capable of teaching basic concepts at a beginning level - and makes a powerful language when they are ready to dig deeper.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    50. Re:Absolute nonsense by Bozdune · · Score: 1

      I won't recycle the arguments that are all over the net, which you are free to read. VB.Net is nothing like VB. It is a macro front end to generate C#, and it breaks all the rules of "approachable, easy, quick, simple" that made VB great.

      VB doesn't "suck rat testicles." You're just flat wrong.

    51. Re:Absolute nonsense by KlomDark · · Score: 1

      No, you are the one who is wrong here, or severely underskilled.

      Years ago I myself made my living by writing VB.old code. Sure, I thought it was cool at the time. But these days I've moved on. I'd never even consider doing anything with VB.old, except deleting it. C# is infinitely better than the toy language known as VB.old.

      But consider yourself free to suck nice warm steaming rat testicles all you want.

    52. Re:Absolute nonsense by Bozdune · · Score: 2, Interesting

      This is probably pointless, but I'll answer you anyway. With regard to skills:

      o I started programming in 1969, in PDP-8 assembler, well before my voice changed.
      o Then I wrote a bunch of games and utilities in high school, many of which were widely distributed (pre-Internet).
      o Then I went to MIT for six years, and wrote a parallelizing C compiler for my Master's thesis.
      o At that point I had already used a dozen programming languages and assembler languages, most of which I've forgotten.
      o Since then, I've written operating systems, compilers, linkers, editors, CSMA networks, real-time apps, financial services apps, web-based transaction apps.
      o I've shipped product to over 20,000 customers -- built it, supported it, enhanced it, managed a development group, managed whole development organizations (teams as large as 100, and as small as 3). You name it, I've probably written it.
      o I regularly use "latest rage" programming languages and environments.
      o I've started three companies and made significant money with two of them.

      I used to be contemptuous of application productivity enhancers. Then, one day, I had to figure out why our clock was being cleaned, feature-wise and development-time-wise, by one random nut in a garage using PowerBuilder, who was somehow able to turn out GUI-based application software 10x faster than our whole team could.

      I learned an important lesson from that. Success is all about how much you can accomplish given limited quantities of time. Any tool that gets you there faster should be embraced. At one of my start-ups, I made tons of money using VB, but we wouldn't have made a plugged nickel if we had used C++. Our development time would have tripled, and we'd have missed the market window completely.

      I'll close with this thought: I really *HATE* VB. I hate the syntax, the stupid conventions, the limitations, the bugs, the bad behaviors, the limitations on the controls, etc., etc. OK? There, I've said it. But, having said that, VB is an important tool in my quiver, and I know exactly how and when to use that tool to clean the clocks of arrogant techno-nerds when we run into them competitively. Fortunately for me, the world is full of them, and they just don't seem to catch on. I hope they are all resonating strongly to your posts.

    53. Re:Absolute nonsense by DeeDob · · Score: 1

      I don't think you understood the problem of learning how to program. Something like Python is the worst solution for a kid that wants to program. Here's why:

      Situation: you are a kid. You want to create a neat program. You don't know how.

      What do you do?

      You read a bit about programming languages on the Internet.

      You stumble upon Visual Basic, C++, Java... near the end of the list you will see something like Python.

      Let's see what Python can do, because someone told me it was easy to use. After fumbling for 3 hours on Python resource that i somehow managed to find, and let's assume i actually managed to find and install Python on Windows (forget Linux as no kid really even know how to work with it as most computer newbies don't even know it exist) and let's assume i understood the Python documentation and tutorials that always assume you know about computer languages before you use it.

      Assuming all that, i can manage to make a simple "hello world".

      Yippie, my first program. Now i want to do something cool with it. I want to create buttons, forms, anything...
      Whoops, Python looks a lot more dificult suddenly.

      Ok, what the heck can i do with Python? Tough luck there... there are no explicit explanation of what Python can and cannot do (i'm a professional programmer and even i had trouble figuring out what could Python be used for. What were it's advantages over other programming language that could help me? Don't expect a kid to figure it out).

      See that i made TONS of assumption here:
      1) Assumed he even knew Python existed.
      2) Assumed he can actually manage to find the Python documentation and understand it enough to know i need a package(tougher than it sounds. especially in the case of Python).
      3) Assumed he figured out where the package is and that he found it and installed it on his machine. At this level, he might even be confused between the Windows and the Linux machine.
      4) Assumed he can complete a "hello world".
      5) Assumed he can actually do something more with it, with GUI because a kid will want "seeable" results.

      An awful lots of assumptions.

      Visual Basic would be a better start for him. He installs the Visual Basic package. Starts it up. Create his forms. Code just a little bit behind his buttons. The interface can show him a bit of his errors before he compile. Click and "start". Voilà, his first program.

      Assuming of course that:
      1) he has Visual Basic
      2) he can manage to install it.
      3) figure out the need for compilation.

      The documentation and tutorials of Visual Basic are a lot more easier to understand than something like Python, he won't be confused with Linux/Windows cross-platform installation and workings and he'll have a more direct feel of what he can do since VB is more visual than Python.

      So VB is a bit easier than Python to learn and use.

      We are still VERY FAR from the "easyness" of earlier languages. Basic being on top.
      OLD BASIC:
      - no installation, you just type your program from the command line.
      - doesn't need to compile anything to make it work.
      - simpler documentation and tutorials that was intended for beginners (also doesn't have modules, forms, OOP and complex programming concepts).

      Some people have mentionned VBScript and JavaScript as simple languages. I cannot disagree more. JavaScript and VBScript by themselves are mostly worthless, they need to use HTML and CSS in order to do anything meaningful beside the basic "hello world". The integration of all that and DHTML is about the toughest things a programmer can have today. Web programming with javascript/HTML/VBScript has almost nothing more complex in advanced programming languages.

      After writting all this, i think i would even refer a kid to "flash". Flash includes a very nice tutorial that even he can understand easilly. It would allow him to:
      1) Create animations.
      2) Have basic Gui functions.
      3) Use multimedia in his program (something tough as hell with any other languages).
      4) Program with ActionScript. The kid need only learn the very basics of it.
      5) Create a web site (as a bonus to his learning).

    54. Re:Absolute nonsense by Lodragandraoidh · · Score: 1

      The big problem today is most highschools do not provide computer programming as part of their cirriculum. Instead they teach students to run MS Windows, 'Word', 'Excel', and browsers, maybe a graphics art class using photoshop, and if they are real lucky a computer hardware class where they learn to build a PC from parts, troubleshoot components and maybe build an electronic circuit from parts - none of which helps students become programmers. So they are on their own, for the most part, and enter CS degree program without a clue - if they enter it at all (CS major enrollments are down for a number of factors including offshoring - but largely due to lack of opportunities in CS in public schools).

      Back in the 'good old days' - if you were lucky enough to have a microcomputer (the TI 99a my parents bought for me in 1981 was a whopping $2000!! - the better part of the value of a car back then) or access to microcomputers in a fledgling 'computer science' class (I was lucky enough to also attend the first CS class provided at my highschool) - when you did power up the system you were confronted with the Basic interpreter - which you had to use if you wanted to get anything done on the system. As a result, there was a high level of motivation to learn. Luckily for me my school actually taught programming -- Basic and Fortran on various machines (NCR and Apple]['s as well as CRT and teleprinter terminals to the county's PDP minicomputer)

      Students need to be guided toward the resources - beyond all the hype surrounding the next high level language or development framework. To be effective they need to start at the beginning - crawl, walk then run. This is not occurring in our school system for programming with rare exception today.

      Your arguments surrounding Python is just hand waving, smoke and mirrors. At the beginner level an interpreted language is far superior to a compiled language for providing immediate feedback. Furthermore, I disagree with your approach because it doesn't give kids the tools they need to explore the computer at the system level; 'flash' tells them nothing about how the computer works - and as the name implies is just glitz without substance. Programming is about the computer -- I think we've lost site of that in our ever spiralling quest to virtualize on top of it. Kids are memorizing libraries without learning what lays beneath.

      Maybe what is needed is a new learning language that incorporates those basic capabilities of the early microcomputers - albeit a virtualized one today. A cpu and graphical simulator could underly an interpreted language so students could learn how to manipulate registers and the screen's graphics to foster exploration and creativity - similar to work done by Donald Knuth in his seminal Art of Computer Programming - the creation of "MIX assembly language," which runs on the hypothetical MIX computer. (Currently, the MIX computer is being replaced by the MMIX computer, which is a RISC version.) Software such as GNU MDK exists to provide emulation of the MIX architecture. We could take a similar approach at an even simpler level for beginners.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
  7. Re:Kids today...... :-) by mardin · · Score: 1

    on every browser on every computer is javascript. Much better dan basic was. I've seen kids of 9 do incredible things with .css and javascript. So, just some old people complainging I guess: In my days everything was better!!!!

  8. Why Line-Oriented? by RAMMS+EIN · · Score: 2, Insightful

    ``At first I wanted to read this and say aha, here's a simple line oriented language''

    Why line-oriented?

    --
    Please correct me if I got my facts wrong.
    1. Re:Why Line-Oriented? by neoform · · Score: 1
      Because the code is writen on

      lines! gosh!

      --
      MABASPLOOM!
    2. Re:Why Line-Oriented? by will_die · · Score: 2, Informative

      a line oriented language is one where all the parts of the command have to be on a single line. some newer ones allow a line seperator so that you can make it easier to read.
      this is opposed to statement oriented where all parts have to be part of the single statment, usally multiple lines but with a statement ender, or a block oriented language that has begining and ending tags for the block.

    3. Re:Why Line-Oriented? by kfg · · Score: 5, Insightful

      Why line-oriented?

      Because Djkstra was right. With whatever apologies might be due to the author, his early exposure to BASIC has damaged his mind so beyond repair that he cannot concieve of a good learning language as being anything other than line oriented.

      Python and Squeek, each in their own way, are probably the best learning languages ever devised. They are both "real" languages that can be used for "real" work after you learn them, but also serve as good stepping stones to other languages, without instilling you with a line oriented mind.

      Programming students don't need to learn line numbers, they need to learn number; mathematics; and logical structure. Line numbers do nothing other than give the illusion that a program has structure, whether it actually has any or not.

      KFG

    4. Re:Why Line-Oriented? by Gnostic+Ronin · · Score: 2, Insightful
      Line oriented is probably most basic part of coding. There isn't a program out there that doesn't have an if-then statement or basic arithmetic.

      But I think a huge problem with students not knowing how to program is the lack of training in Logic. I remember learning geometry in HS, long before I started hobby programming. You had to know how to prove that one angle was exactly equal to another and show every step. Being able to do things like that is essential in learning to write a program, because you often need to test for a condition that you can't directly measure.

    5. Re:Why Line-Oriented? by RAMMS+EIN · · Score: 1

      Thanks for pointing it out, but I know what line-oriented means. However, I wonder what the advantage of a line oriented language is, compared to, say, Ruby, which uses lines for simple function calls, but blocks for function definitions.

      I never found BASIC's line-orientedness to make it easier to work with, and I think you'd want your beginner's language to be as easy to work with as possible.

      --
      Please correct me if I got my facts wrong.
    6. Re:Why Line-Oriented? by stephenbooth · · Score: 2, Insightful

      With GUI based languages it's very easy to get hung up on the look of the interface, with a line oriented language it's not there so there's less distraction from learning the fundementals of the language and, more importantly, of programming. What the article seems to be mourning is the loss of languages without all the added trimmings that distract from the underlying principles.

      Consider 'Hello World'. In BASIC that would be:
      10 print "Hello world!"
      In C it would be something like:
      #include <stdio.h>
      void main ()
      {
      printf("Hello World!\n");
      }
      in C++ you're looking at
      #include <iostream.h>
      void main ()
      {
      cout << "Hello World!\n";
      }
      And in Java you use something like
      /* Main.java */
      package hellowworld;
      public class Main {
      public Main()
      }
      public static void main(String[] args) {
      System.out.println("Hello, World!");
      }
      }
      or even (this is from a Java tutorial book set for a Java course one of my collegues was doing a couple of years ago) be told to create two files, the first being
      /** Main.java
      */
      package greeter2;
      public class Main {
      public Main() {
      public static void main(String[] args) {

      String greeting = sayHello.sayHello();
      System.out.println(greeting) ;
      }

      }
      and the second being
      /*
      * sayHello.java
      */
      package greeter2;
      public class sayHello {

      public static String sayHello()
      {
      String message = "Hello, World!";
      return message;
      }
      }
      then use command line switches to compile both files to a single application. Which of these do you think will be least intimidating to someone just starting out and will give the clearest example to the learner on how to put a line of text on the screen. Also, note that all of these examples are line based, imagine if they also had to learn how to draw a window, and you also need to take into account that the BASIC program can be run directly from the commnd line, in most implementations, where as the rest all require a compilation step.

      The languages the author is harking back to aren't languages you're going to write the next competitor to Office with or the next killer console game, they are the languages that will teach you the fundementals that will make it easier for you to write those programs in other languages more suited to the purpose. Shell scripting could ber used to teach the the basics like putting a line of text on the screen) but tend to lack the variable handling and typing of a programming language. Sure, once someone knows the basics of programming and is ready to start writing real world applications, they will need the more advanced features and complexities of modern languages but by that stage they shouldn't be worrying about how to put some text on the screen or add two numbers together. Although, I recall writing some pretty complex apps in BASIC when I was at school (mostly for stats number crunching but I also wrote a simple word processor in Comodore basic on the CBM PET when I was 12).

      Stephen

      PS Perhaps someone could explain to the lameness filter the concept of source code examples? It doesn't seem to appreciate that they often contain lots of 'junk characters' and short lines.

      --
      "Don't write down to your readers, the only people less intelligent than you can't read" - Sign on Newspaper Office Wall
    7. Re:Why Line-Oriented? by MancunianMaskMan · · Score: 1
      Python is shorter:

      print 'hello world'

    8. Re:Why Line-Oriented? by RAMMS+EIN · · Score: 2, Interesting

      Although BASIC is line based, allows you to write programs without boilerplate, and can be interpreted, these are all orthogonal properties.

      Line based means that you enter your program is based on lines, as opposed to, say blocks of code. It means you get code like

      10 CLS
      20 I = 1
      30 PRINT I
      40 I = I + 1
      50 IF I = 10 GOTO 30
      60 END

      and you could insert a piece of code by writing, e.g.

      55 PRINT "DONE"

      In a block based language, you would get code like

      CLS
      I = 1
      DO
            PRINT I
            I = I + 1
      WHILE I = 10
      END

      and insert code by going to the right position in the code and writing there whatever you want inserted.

      And yes, that does mean that modern BASICs aren't really line oriented.

      As for boilerplate and interpretation, observe that Common Lisp and Scheme both allow you to write programs without boilerplate, but they're not line oriented. E.g, in Scheme, Hello World could be rendered as

      (display "Hello, World!")
      (newline)

      or

      (display
              "Hello, World!") (newline)

      Also, Common Lisp and Scheme can be interpreted or compiled, just like BASIC.

      --
      Please correct me if I got my facts wrong.
    9. Re:Why Line-Oriented? by Abcd1234 · · Score: 2, Informative

      I'm particularly glad you mentioned Squeak. For a kid who's very curious, Squeak is the ultimate learning environment. Not only can you write very interesting programs very easily using the powerful tools it provides, but you can also dig around in the system internals themselves! Just fire up the class browser, and voila, everything is laid bare before you. And if you bugger something up, you just terminate the VM and reload the image! Truly a *fantastic* system, one I wish I had access to when I was first dipping my feet into programming.

    10. Re:Why Line-Oriented? by AVee · · Score: 1

      And it is over 30 back when he wrote that down pretty clearly. It's sad how little is learned from his research.

    11. Re:Why Line-Oriented? by maxwell+demon · · Score: 2, Insightful

      10 Maybe he also advocates beginners to write English exactly one sentence a line.
      20 Because, after all, it's much easier to understand this way.
      30 You don't have to look out for those small, easy to overlook dots.
      40 Instead you know exactly where your sentence ends.
      50 Because it always ends at the end of the line.
      60 Of the current line, that is.
      70 Only in advanced English you should go to the trouble of sentences continuing on the next line.
      15 Of course with line numbers.
      16 That also makes it easier to later insert something in the middle of the text.
      16 That also makes it easier to later insert or change something in the middle of the text.
      80 Because beginners will only be confused by those multi-line sentences.
      75 Or sentences beginning and ending in the middle of a line.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    12. Re:Why Line-Oriented? by Abcd1234 · · Score: 1

      Incidentally, it's also worth pointing out that Squeak provides a line-oriented environment on 'roids. Just fire up a Workspace, type in some code, and hit Alt-D, and voila, it executes!

    13. Re:Why Line-Oriented? by Anonymous Coward · · Score: 0

      So I was right and my computer science teacher was wrong?! I really didn't need to learn structured programming after all! WooHoo!! I'm going to go kick him in the shins and give him a "neener neener neener" and maybe an "I told you so" for good measure.

      And for the record, I teach kids HTML, CSS and JAVA. They do some pretty cool stuff. But the advanced class learns Flash (not my choice) and they do some REALLY neat stuff.

    14. Re:Why Line-Oriented? by RAMMS+EIN · · Score: 1

      Hehehe. Very good points.

      Of course, BASIC programs didn't actually look like that; if you typed LIST, you would get your program in the order of the line numbers, not the order in which they were typed.

      And to be fair to BASIC being line oriented: within the constraints of the machines of that time, which had, perhaps, a few tens of KBs of memory and the BASIC implementation _was_ their operating system, it may have been the most viable option. After all, every byte the BASIC implementation used couldn't be used by programs.

      --
      Please correct me if I got my facts wrong.
    15. Re:Why Line-Oriented? by stephenbooth · · Score: 1

      I think we have different understandings of the term "Line Oriented". Possibly due to different backgrounds or my faulty memory, I haven't coded 'in anger' for some time (I'm mainly doing SQL scripting, some shell scripting and admin these days). My understanding is that it refers to the program being oriented to a line based input/output device such as a line printer or terminal rather than whether the lines of code are numbered or not.

      Stephen

      --
      "Don't write down to your readers, the only people less intelligent than you can't read" - Sign on Newspaper Office Wall
    16. Re:Why Line-Oriented? by kfg · · Score: 1

      So I was right and my computer science teacher was wrong?!

      Most of them are these days. The inmates have not only taken over the asylum, they've murdered the staff, danced on their graves and erected monuments to themselves.

      KFG

    17. Re:Why Line-Oriented? by maxwell+demon · · Score: 1

      A few tens of KBs of memory?
      The ZX81 came with one KB of memory by default! But of course the BASIC implementation was in ROM (which IIRC was 8KB), and therefore did not eat any RAM at all (the BASIC programs you typed in did, of course).

      And yes, of course the above is not what Programs looked like when you listed them. It is what you actually typed. Ok, not exactly, because you probably would not have typed the whole line 16 again, but just edited it. (And of course you'd not type English sentences, but BASIC commands :-))

      --
      The Tao of math: The numbers you can count are not the real numbers.
    18. Re:Why Line-Oriented? by Anonymous Coward · · Score: 0

      Line numbers are a stupid concept. I understood that just a few months after I got my first computer (C64). Whenever I needed to insert some code, I had to renumber or leave large enough gaps beforehand (and ended up renumbering when I needed to insert code into previously inserted code). How anyone could want that is beyond me. I was thankful for 6502 assembly because there you had labels. It was still spaghetti code, but at least the renumbering wasn't necessary anymore.

    19. Re:Why Line-Oriented? by zer0halo · · Score: 1

      I'm starting to teach my 8 year old daughter web design and programming. We started with HTML and CSS, and she designed her own static website. Now we're moving on to simple programming and I'm considering JavaScript but am settling on Ruby, because of it's simplicity. Using your above example, Ruby is just as simple as BASIC: puts "Hello World" I don't see why I need BASIC for her. I am however considering moving soon to JavaScript simply because it will allow her to create simple additions to her website and work from there. Children need to see rather immediate results in order to retain their interest in something (unless it's really their passion), and I think the web is it. But for a basic introduction to programming, I suggest Ruby.

      --
      Impossible is nothing.
    20. Re:Why Line-Oriented? by ari_j · · Score: 1

      SYNTAX ERROR

      (I was going to list a line number with the error, but the fact that it was a syntax error is already more detail than most BASIC interpreters would have offered.)

    21. Re:Why Line-Oriented? by frank_adrian314159 · · Score: 1

      In Common Lisp, the code is actually (format t "Hello, world%"). That's it. The % does the line feed. If you want to be really paranoid, you put an "&" as the first character of the format string. This tells the system to output a line feed if it's not already at the beginning of the line. The days of (terpri) (though it is still provided) are long gone.

      --
      That is all.
    22. Re:Why Line-Oriented? by Anonymous Coward · · Score: 0

      But it teaaches you something when you have lines 10, 20, 25,26,27, 30, 40, 50, 51,52,53,54 GOTO 100, 55, 60, 70, 100,110, 120, GOTO 55 etc

      Eventually the next step is to get fancy and use GOSUB and get into code reuse

    23. Re:Why Line-Oriented? by 19thNervousBreakdown · · Score: 1

      Funny, I started out with line-numbered BASIC on a TRS-80 in 5th grade, staying after school to write programs to do my algebra homework for me. In high school I move on to QBasic to modify NIBBLES.BAS to run silent and 4-player over the network (using temporary files on a network drive, horrible I know, but it worked and I was 13) so that we could play in class. I spent the next 2 years writing QBasic and moving up to QuickBasic, and eventually Visual Basic, which I spent another year or so on.

      When I wanted something more substantial, I started learning C++. Sure, it took me a few failed tries and a couple years before I really got it, but it's a complicated language and programming is hard ;) One thing I didn't run into was any problems understanding null-terminated strings, pointer arithmetic, passing by value or reference, partial specialization of templates ... you get the picture. I think the "crippling" effect of BASIC is nothing more than confusing causality with correlation.

      --
      <xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
    24. Re:Why Line-Oriented? by kfg · · Score: 1

      There are always those few perceptives minds that can see through the illusion to the underlying form.

      I think the "crippling" effect of BASIC is nothing more than confusing causality with correlation.

      On the other hand, I haven't actually seen your code. :)

      By the way, have you read Danny Dunn and the Homework Machine? If not you might want to give it a look even though it's a "juvvie," you might be particularly suited to appreciating it.

      KFG

    25. Re:Why Line-Oriented? by soft_guy · · Score: 1

      While command line is more easy to program - and the right thing for beginners, most kids probably have never touched the command line as a user. So, the first thing they will see is the fact that you are launching the command line and there goes any interest in what you are teaching.

      --
      Avoid Missing Ball for High Score
    26. Re:Why Line-Oriented? by Anonymous Coward · · Score: 0

      With whatever apologies might be due to the author, his early exposure to BASIC has damaged his mind so beyond repair that he cannot concieve of a good learning language as being anything other than line oriented.
      You've not heard of David Brin then?

    27. Re:Why Line-Oriented? by stephenbooth · · Score: 1

      Ruby isn't something I have any real knowledge of (I'm aware it exists, it's got something to do with Rails (whatever they are) and there's been a nuber of articles written about how slow it is), as I mentioned in one of my comments I haven't coded seriously for a while. When I did I mainly used C and before that (when I was at school) BASIC, I took a course in Java but the project I was learning it to be able to work on was cancelled so never got to use it for real (but at least it gave me an introduction to OOP). Now it's mostly SQL, the odd bit of PL/SQL and shell scripting in amongst a lot of general DB admin work. If I ever need Ruby then I'll learn it, there's far too many different programming langauges about (and other work to be done) to learn random langauges in case you need them in the future. Because I learned the fundamentals of programming (in BASIC) it hopefully won't take me as long as it would if I was coming at it fresh.

      Stephen

      --
      "Don't write down to your readers, the only people less intelligent than you can't read" - Sign on Newspaper Office Wall
    28. Re:Why Line-Oriented? by dewatf · · Score: 1

      Again people are missing the point. Brin doesn't want a learning language and he isn't talking about teaching serious programming at all. Brin just wants something that can be used to illustrate basic algorithms and logic to kids. Something that might serve as the first step in learning programming, without which many kids may never bother to try. He points out his boy is learning C++ to learn computer programming.

      By line-oriented Brin means something that steps through each stage numbered line by line, and whose flow control is based on those lines numbers.

      BASIC is an easy way to grasp the concept of iteration and what can be done with a few simple commands. It was universal, compact and extremely simple (you could learn it by looking at about 20 lines of code without manuals or tutorials). That is why the tradition of putting an example of an algorithm in BASIC in maths textbooks and newspaper articles about maths or astronomy developed, and it seems still persists to this day (or at least the old textbooks have).

      Djkstra thought BASIC was evil because it was easier to teach university students to programme well if they hadn't picked up bad habits playing around with BASIC at home. He ignores the fact that it enabled them to understand the logic of machine language that all programmes are built from, or that it might have inspired them to come to his class in the first place. There is no harm in learning a bit of BASIC first, though these days you would want to switch to something better before getting serious about programming.

      You could use Python to demonstrate algorithms but Python isn't universally known so you won't find the examples written in it; you also have to download and install it; you need to know a bit about its idiosyncratic syntax (indentation, colons etc.) before you can do anything; to replicate what a goto can accomplish you would need learn flow control functions or how to define and call procedures and how Python passes variables etc.

      Brin's point is that kids aren't going to bother with that so aren't even going to start the journey. Have we lost some advantages of simplicity and universality with the great range of good high-level languages available today? Whether Brin is right or not who knows? It is just an op-ed. It made me think and remember how I learnt about algorithms and programming, which was worthwhile.

      dewatf.

    29. Re:Why Line-Oriented? by kfg · · Score: 1

      You've not heard of David Brin then?

      Yes, I have. It's even concievable that he has heard of me.

      KFG

  9. Re:Kids today...... :-) by BWJones · · Score: 4, Interesting

    So, just in case some of our students read this (its always weird when your students say "I saw your comment on Slashdot yesterday"), I should have mentioned that there are exceptions to the rule (obviously) like the developers who are developing some of our image processing code right now here at the Univ. of Utah Scientific Computing Institute and our collaborators at the UCSB Center for Bio-Image Informatics. These folks are doing amazing things as is the neuroscience grad student in our lab who routinely amazes me with his ability to code. But these folks are in these graduate programs and environments because they are interested in solving innovative and new problems and they enjoy a challenge. The vast majority of students who are learning to code are not interested in asking questions or doing hard things. Interestingly, a large number of students it seems coming into CS programs at the undergraduate level want to program games, but have no idea how much math and algorithm development goes on when one is crafting new material. It's easy to use someone else's engine or physics models, but coming up with your own is harder and requires some talent and dedication to learning your craft.

    --
    Visit Jonesblog and say hello.
  10. Easy solution... by GreyPoopon · · Score: 3, Insightful

    There's a very easy solution to this. Install a classic machine emulator on your PC. Something like a C64 emulator would work fine.

    --

    GreyPoopon
    --
    Why is it I can write insightful comments but can't come up with a clever signature?

    1. Re:Easy solution... by RAMMS+EIN · · Score: 1

      While installing a C64 emulator is certainly easier and cheaper than buying a C64, it has two important drawbacks:

      1. It's not a real machine you're programming. Your programs end up looking and acting differently from the ones on the computer you're using. If you used a real C64, you would get a much stronger sense of achievement.

      2. I understood the point of the article to be that it's a pity that BASIC or something like it doesn't ship with modern OSes or computers anymore. Downloading a C64 emulator doesn't change that; in a sense, it is just like installing a programming language: yes, it works, but it's an extra barrier to entry that wasn't there in the Good Old Times(C)(R)(TM)(WTF).

      --
      Please correct me if I got my facts wrong.
    2. Re:Easy solution... by GreyPoopon · · Score: 1
      You didn't get your facts wrong, but....


      1. It's not a real machine you're programming. Your programs end up looking and acting differently from the ones on the computer you're using. If you used a real C64, you would get a much stronger sense of achievement.
      Some of the emulators provide a very close experience to the original machine. In terms of learning BASIC, there won't be any discernable difference. In fact, even tricky stuff with poke and peek should work fine. It's when you start trying to do programming that relies on timing and processor cycles that you'll have trouble. Also, if you try to write assembly language programs that twiddle with specific devices (chips) in the machine, you may run into problems, depending on how good the emulator really is. None of those issues are really relevant when it comes to learning the language. I disagree with the "stronger sense of achievement" part about the real C64. I have the opposite experience, but it might just be nostalgia for me because the C64 was so widely used in my last two years of high school -- just prior to the multimedia explosion.


      Downloading a C64 emulator doesn't change that; in a sense, it is just like installing a programming language: yes, it works, but it's an extra barrier to entry that wasn't there in the Good Old Times(C)(R)(TM)(WTF).
      Agreed, but at least it _is_ possible to provide a similar learning environment. The article talks about searching for a solution. My opinion was that the author didn't search very hard or wasn't very well informed. Either way, I share the sentiment. Actually, there may be a halfway decent market for keyboard addons and BASIC programming language cartridges/disks for some of today's video game consoles. Modern consoles pack significantly more power than the old computers most of us learned on, and they provide a similar visual experience (since they are connected to the TV).


      Just for the record, I actually learned to program in BASIC _without_ a computer. I learned in my science class. We had no computers in the school, but the science teacher taught us about programming and had everyody write a simple program. Then, he used dialin to connect to a PDP-8 (if memory serves) at the university and type the programs in to see if they ran. That experience gave me the programming bug, and as soon as affordable home computers (not hobby kits) were available, I drove my parents bonkers until they bought me one.

      --

      GreyPoopon
      --
      Why is it I can write insightful comments but can't come up with a clever signature?

    3. Re:Easy solution... by whyloginwhysubscribe · · Score: 1

      2. I understood the point of the article to be that it's a pity that BASIC or something like it doesn't ship with modern OSes or computers anymore.


      This is the point of the article - but the real argument is "which language should come pre-installed" - and the list of possible answers brings me back to thinking that kids who really want to program their computers will be able to make the descision to download and install any of the hundreds of choices available out there already - preferably (in my opinion) not basic!

      So as lots of people have already said - kids today have it easier than we ever did, even though I had a Sinclair Spectrum with basic installed and an instruction manual included with the computer - I didn't have the choice not to be "mentally mutilated beyond hope of regeneration" when I learnt how to program as I didn't have the internet to tell me any different!
  11. Maybe no young, but older? by CRM-Man · · Score: 1

    I agree many peoples do not have the good way with maths or sciences, but truth can to found elsewhere? Many peoples now using point and click for the programming, maybe they not having the good feel for such studies before, but now they can be introduced! They become more interested, and this makes the first interest of programming among peoples at a later age when Johnnies are older.

  12. Languages by RAMMS+EIN · · Score: 2, Interesting

    What about languages like Ruby, Python, Bourne shell, etc? Easy to pick up (the barrier of entry to shell scripting is especially low), and you can take them all the way up to complex programs with GUIs (whether you should want to is another matter, especially for shell scripts).

    --
    Please correct me if I got my facts wrong.
    1. Re:Languages by maxwell+demon · · Score: 1

      While bourne shell indeed comes with every Unix and Linux (and today probably also with Macs), the huge majority of computers still run Windows. And I strongly doubt that Windows comes with a bourne shell ...

      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:Languages by TrekCycling · · Score: 1

      Strangely, I think Mr. Brinn didn't make his point well enough. Part of the problem is that the included language isn't easy enough. i.e. Ruby, Python, etc. are still not going to be as logical or close to the metal as Basic was. I learned basic when I was in TaG as a kid. It was a good jump start into programming. And now that's my career. I meandered into Biology and English literature in college, but I think that experience programming on the Commodore 64 and committing to tape definitely helped me to love to learn to tinker. So it wasn't a big jump for me to use Linux full time later in life when I started working as programmer.

      Anyway, I think the point Mr. Brinn didn't make well enough, aside from the above, is that even if one of these languages were as easy as Basic, they're rarely included and never intrinsic to the operating of the machine, unless you're talking about Linux. On Windows you have to jump through hoops that most kids today just won't do. They'll spend all day customizing their MySpace page, but can't be bothered to even learn HTML, much less JavaScript, much less Ruby. It is sad, but I think it's a natural progression of the fact that users have become so abstracted from operating their computer to the point where it's a tool or an entertainment device or a news receptor, used to do things far far beyond strict "computing".

      Someday as horsepower outstrips the computers we use today there will come a time where socialization and understanding the rules of business and communication are far more important than the actual programming. The language will be 4GL or 5GL and all the kids will need to know is how to communicate well enough or how to design for the end user. And as heavy consumers and avid socializers (using their computers), I think in a strange way they'll be uniquely placed to thrive in the programming environment of the future.

  13. Re:TO EDITOR -- FIX TITLE by GundamFan · · Score: 0, Offtopic

    http://www.google.com/search?q=Johny&start=0&ie=ut f-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-U S:official

    Johny is a name, and perhaps someone named Johny can't code. I hate it when people get bent out of shape over how someone spells a name (especaly there own name).

    By the way:

    John
    Jon
    Jonathan
    Johnathan
    Jack
    Johnny
    Johny

    Go troll the Games section with irratonal Wii love.

    --
    I don't give a damn for a man that can only spell a word one way.
    Mark Twain
  14. Bah. by O'Laochdha · · Score: 0, Flamebait

    I was working with C when I was nine years old, and everyone knows I'm an idiot, a complete idiot, the dumbest little pissant who ever lived. Hell, 99% of kids are smarter than I am today. If I could do it, the dumbest kid in America could.

    1. Re:Bah. by smilindog2000 · · Score: 0, Offtopic

      Give me a break. There are no idiots on /. Trolls galore, A-holes, regular geeks, and people who have the most absurd opinions. I have VERY low tolerance for actual idiots, and I'm quite sure you don't count :-)

      Now if George Bush were posting on /. ...

      --
      Beer is proof that God loves us, and wants us to be happy.
  15. here is command line basic by enrevanche · · Score: 2, Informative
  16. BWBasic? by Intosi · · Score: 2, Informative

    How about bwbasic (https://sourceforge.net/projects/bwbasic/)? It's available for my FreeBSD system, my Ubuntu system, even MS-DOS... Sure, it might not be as über-sexy as buying a second-hand C64, but it's there for you to try BASIC programs..

    --

    Intosi

    1. Re:BWBasic? by RAMMS+EIN · · Score: 1

      The point is not that languages aren't _available_, but that they aren't _included_. I can't name any OS from the top of my head that installs bwbasic by default. On the other hand, chances are that if you have Windows, you have VBA, and if you have another OS, you have Python.

      --
      Please correct me if I got my facts wrong.
  17. FreeBASIC... by kerashi · · Score: 5, Informative

    If you really want to play with BASIC, you still can. There is Freebasic, at http://www.freebasic.net/, a GPL'ed open source BASIC compiler.

  18. Re:TO EDITOR -- FIX TITLE by sesshomaru · · Score: 0, Offtopic

    You forgot one alternaty spelling for Johnny, Nny.

    --
    "MIT betrayed all of its basic principles."
  19. Ruby could be this language by ForeverFaithless · · Score: 2, Insightful

    Check out this interesting blog by Peter Cooper, where he suggests a Ruby environment fors kids:

    Taking Ruby to the kids

    --
    Mark Kretschmann - Amarok Developer, KDE Member
  20. Re:Kids today...... :-) by dc29A · · Score: 4, Insightful

    When I was in college, we started off learning different assemblers (PC and Mainframe), then we moved to C and C++. The same college, now starts teaching kids some RAD languages, Java, C# and whatnot. IMO, new students no longer learn the basis of the computer, how the CPU works, how compilers work and how interpreted code works.

    One of my most memorable classes was the C++ class when the teacher started off by teaching how compilers actually compile your code. Directly from this you could easy see what code to write and what not to write. Those classes have been replaced by Java, where you don't even worry about resource leaks. Hey, garbage collector takes care of it!

    To make good programmers, one has to understand the basis of it. Compilers, C and Assembler. If all they learn today, well mostly OOP stuff, they won't learn the basis well. And they will end up writing bloated code left and right.

  21. Incentive ? by o'reor · · Score: 1
    Maybe because Johnny, with the overabundance of software at hand, and lots of it is for free, does not have a real incentive to program his own software any more ?

    I started programming in Basic on old Thomson TO7 computers when I was ten, then a few yaers later I switched to Pascal on an Olivetti PC, and it was always to build my own games : I had little pocket money to buy my own games, I had no access to any network whatsoever, and software piracy was not my favorite pastime (and would have been frowned upon by my parents).

    So there. And if it hadn't been for that early programming itch, I would probably not be an IT consultant/developer these days.

    --
    In Soviet Russia, our new overlords are belong to all your base.
    1. Re:Incentive ? by CxDoo · · Score: 1

      I second that.
      As a kid back in early 80s, I was entering code from computer magazines into my Spectrum beacuse there was nothing else to do - games were too few and too simple and not much better than what I could do in a couple of hours typing/improvizing.
      Today, why bother?

      --
      "Blah blah blah." - [citation needed]
  22. "old fart" indeed... by Anonymous Coward · · Score: 0

    You're not an "old fart" if you started with edlin. There was life before MS-DOS, you know. Now, get off my lawn!

    1. Re:"old fart" indeed... by ZeroExistenZ · · Score: 1
      You're not an "old fart" if you started with edlin. There was life before MS-DOS, you know. Now, get off my lawn!

      And computers weren't bugfree as well back then!
      --
      I think we can keep recursing like this until someone returns 1
  23. Python?! by smithwis · · Score: 5, Interesting

    Am I missing something here? Why doesn't python count? It's easy, has a nice "line enter mode", embraces many advance programming concepts from various programming paradigms(OP, Functional, Procedural, etc). And has a bunch of nice Graphical hooks for the eventual game programming your little one will end up doing.

    Disregarding Python, what's wrong with Emac's elisp or a nice session with tcsh. You'd be hard pressed to find a computer that you couldn't run one of these languages on and I've just barely scratched the surface of possibilities

    No I'd have to say that today's children are given an even richer programing environment to grow with than we were.

    --Steve

    1. Re:Python?! by Ranger · · Score: 1

      Indeed. I recently converted to Python after learning PHP for convenience and a being a long time fan of Perl. I heard an interview on Python 411 where the interviewee said something like Python had the usefulness of Perl and the elegance of Java.

      --
      "You'll get nothing, and you'll like it!"
    2. Re:Python?! by WillWare · · Score: 1

      That surprised me too. On the second page, he explains his problem with Python. BASIC has lines that each do one thing, and you have conditional and unconditional jumps to line numbers, no fancy-schmancy control structures. Brin feels that BASIC is much closer to how the microprocessor interprets instructions. Python compiles to a bytecode that is equally analogous to a processor's instruction set, also with conditional and unconditional jumps to numbered locations in the code, which can be disassembled and studied; see http://docs.python.org/lib/module-dis.html. One could pick nits and say that BASIC's variables are closer to processor registers than Python's stack, but feh. Bytecodes running on the Python VM or the Java VM would be EXACTLY as pedagogically valuable as BASIC, except that BASIC statements are much more human-readable where Python bytecodes. So what we need is an alternative Python front end that looks like BASIC, which I'll call PYSIC. The PYSIC language has the readability of BASIC (including line numbers and conditional/unconditional GOTOs) and compiles to Python bytecodes. PYSIC runs inside a Python session so you can use everything normally available in Python. It should be possible to mix-and-match bits of PYSIC and standard Python. What I think would REALLY fulfill Brin's agenda, beyond PYSIC, would be to get Python and PYSIC running on embedded platforms, especially toys, where kids can write programs and make things happen. That's what sucked me into the whole electronics and computers thing when I was a kid.

      --
      WWJD for a Klondike Bar?
    3. Re:Python?! by IvyKing · · Score: 1
      Am I missing something here? Why doesn't python count?


      One not so trivial reason is that the examples in textbooks are in BASIC not Python.


      OTOH, I did have a flashback while entering in the HTML code for my reply of using the early "dot" commands for text formatters. Probably no-one under the age of 40 has even been exposed to those, but they were good for getting an insight on mark-up.

    4. Re:Python?! by Coward+Anonymous · · Score: 3, Insightful

      Well, according to TFA how would you "make a dot change its position on a screen, propelled by math and logic, and only by math and logic" in python?
      For kids, simple graphics are far more persuasive than watching text scroll down. If your answer for doing this in python is longer than 1 line or involves compiling packages, you've lost. Basic commands I remember were as simple as "gr", "hgr", "hgr2", "screen" and you were ready to go.

    5. Re:Python?! by ginbot462 · · Score: 1

      As someone that coded in BASIC on a C64/Apple II when they were a kid and use Python now, I would say - do not mourn the loss. BASIC was the right tool then, now it would be like trying to put a steam engine in a Honda (this is bait for all the Bad/Car Analogy people). While you could POKE and give people seizures with BASIC due to it's close connection to older machines, modern OSes are not the same. So, yes I do have to use more than 1 line or at least install a package. But, the result is much more satisfing than re-writing Breakout/Asteroids for the hundredth time. You can use a mulitude of libraries from PyGame to PyOpenGL to do graphics fairly easily with much better results.

      Simple things should be simple and complex things should be possible.
      -- Alan Kay

      Python's readability plain blows BASIC out of the water for first-time learners. Once you get use to Python's syntax and semantics ... languages like BASIC and C/C++ seem dated and archaic. Note: I code in C++, so I am not knocking the language entirely. I just wish things did not feel so hacked together. E.g.: doing string operations in the 2 languages with or without STL for C++.

      --
      Atlas Shrugged : Thematic Story :: Battlefield Earth : Organized Religion
    6. Re:Python?! by 31eq · · Score: 1

      I don't know exactly what you want to do or why you expect it to be done in one line, but

      import turtle
      turtle.tracer(1)
      turtle.forward(10)

      gets you pretty close in Python. Easier than anything I remember in Basic, back when you had to mess around with SCREEN commands. And, yes, if you want it in one line

      import turtle;turtle.tracer(1);turtle.forward(10)

  24. As the world changes... by Fearless+Freep · · Score: 3, Interesting

    As coding goes from being an elite craft that few can do into a blue color job that few bother to want to do

    As hand made articles become assembly-line products

    we wonder why the world has changed and our tools with it

    1. Re:As the world changes... by arevos · · Score: 3, Insightful
      As coding goes from being an elite craft that few can do into a blue color job that few bother to want to do

      If you're suggesting that programming is no longer as difficult as it was, then this would rather imply, a) programming viable applications is easier now than it was, or b) people are far more intelligent than they were. Neither explanation seems very likely. As far as I can see, programming is still a craft that very few people are capable of doing with any competance.

      However, if you are suggesting that it has lost some of its 'elite' image, then perhaps you are right.

    2. Re:As the world changes... by Fearless+Freep · · Score: 1

      A little bit of both, actually. The imprvment in tools has lead to some stuff that used to be hard being a lot easier, and with that the emphasis has shifted more from pre coding into business analysis of the problem space rather than tthe nuts and bolts of the implementation.

    3. Re:As the world changes... by Savage-Rabbit · · Score: 1
      If you're suggesting that programming is no longer as difficult as it was, then this would rather imply, a) programming viable applications is easier now than it was, or b) people are far more intelligent than they were. Neither explanation seems very likely. As far as I can see, programming is still a craft that very few people are capable of doing with any competance.

      Basically I agree with that. I would say the programming business is simply dividing into layers that demand varying degrees of competence and computing knowledge. At the low end there are the masses of RAD developers doing relatively simple programming projects in languages like Java, C# or PHP/Perl who often have little basic understanding of computing fundamentals, often they don't even have a grasp of the inner workings of the heavily automized development tools they use and get stranded when confronted by simple tasks like having to port their project from JBuilder to Eclipse. At the high end there are programmers, usually (though not exclusively), people with some sort of computing degree, who have a better understanding of the basics and are able to solve difficult problems and code competently in RAD languages as well as languages like C and C++ where you have to manage your own memory resources. The margin between the two groups is fluid, not a sharp line and quite a few low end developer with ambition evolve into good high end programmers but unfortunately all to many don't.
      --
      Only to idiots, are orders laws.
      -- Henning von Tresckow
    4. Re:As the world changes... by Inominate · · Score: 1

      There's really two types of programming.

      There's the Computer Science stuff, the pushing of what hardware and software is able to do. Research stuff; game engines, operating system work, etc. The interesting part of programming.
      Then on the other side you get the grunt programming. Writing the same app thats been written a hundred times before, nothing new or particularly challenging besides dealing with the customer/managment/deadlines.

      The vast majority of code written falls into the latter category.
      Writing those sort of programs IS FAR easier than it used to be. At the same time, the former is far harder than it used to be. So what used to be just "programmers" has, and continues to seperate into distinct groups of (for lack of a better terminology) blue-collar and white-collar programmers.

    5. Re:As the world changes... by protohiro1 · · Score: 1

      As a member of group one...I totally agree with you. I WISH I got a cs degree. I am teaching myself basic algorithms now, so I'm in CS101 and I am working now. Javascript closures were frankly hard for me to understand, because I didn't have a grounding in compilers. I find bitwise operations confusing.

      I think people like me, who code exlusively in PHP/c# and javascript are seriously handicapped. We know how to solve problems, but a lot of the time we do it wrong because we don't understand the internals. I am working on filling that gap, but the c++ people I know are way ahead.

      --
      Sig removed because it was obnoxious
    6. Re:As the world changes... by arevos · · Score: 1
      Then on the other side you get the grunt programming. Writing the same app thats been written a hundred times before, nothing new or particularly challenging besides dealing with the customer/managment/deadlines.

      Repetition is a job for a computer, not a programmer. There should be no need for so-called 'grunt programming', as that is a symptom derived from bad programming. I recognise that there are many programmers of little talent in the world; but there are relatively few programmers able to practise their craft with sufficient competance. There's no white collar and blue collar programmers; just skilled and unskilled.

  25. BTW: The article is by SF writer David Brin by haplo21112 · · Score: 3, Informative

    The Original Post didn't mention that I thought it might be of interest to some people to know that ahead of time. Perhaps influencing the descion about reading it or not.

    --
    Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
    1. Re:BTW: The article is by SF writer David Brin by finiteSet · · Score: 1
      I thought it sounded like bad dialogue for a moment there:
      "Say, Dad, didn't you write your first novel on one of those?" he asked. "Actually, my second. 'Startide Rising.' On an Apple II with Integer Basic and a serial number in five digits. It got stolen, pity. But my first novel, 'Sundiver,' was written on this clever device called a typewrit --"
      *ducks*
      --
      If we start buying CDs then the terrorists have already won.
  26. bah simple by tomstdenis · · Score: 3, Insightful

    "you wanna play with computers? program them first sonny."

    Kids are fundamentally spoiled nowadays. They got a high speed computer, high speed net, digital cable, cell phones, spending money, etc.

    When I was a kid [and damn I was a kid of the 80s/90s] I sure as hell didn't have half of that. My computer was a XT up until I was 11 or so then it was a 386/25 we scraped together from spare parts. We didn't have net access only local BBS stuff so for the most part we had to INVENT our own fun. That is, code stuff up, mess around with the box, etc.

    If you want your kids to have similar adventures to what you had as a kid just don't spoil them rotten. Why on earth would your kid at age 10 want to sit through and learn themselves BASIC or C or Pascal or ... if you're handing them a new Dell box with a Cable modem and a XBOX360 or something.

    You can save money and your children themselves if you just learn to say "No."

    That and your kids will appreciate earning money later on in life so they CAN buy themselves toys and shit. Teach them the value of work [or at least looking like working...]

    Tom

    --
    Someday, I'll have a real sig.
    1. Re:bah simple by Anonymous Coward · · Score: 0

      YOU had an XT and 386 when you was eleven? Those machines cost a fortune then so your complaining about "spoiled kids these days" seem a little hypocritical...

    2. Re:bah simple by Lunar_Lamp · · Score: 1

      To me it seems that people are missing the point. Many children can code, possibly more than previously (even taking into account for population increases). The thing is, they are lost amongst the huge numbers that can't. I don't understand why every child needs to learn to program. People do learn to code, most don't. Previously there were so few children wanting computers that only those who interested in the computer per se were motivated to do anything with them. These people still exist today, there are just a lot of people using computers to check their email and download music from itunes onto their ipods.

    3. Re:bah simple by tomstdenis · · Score: 1

      386s were not expensive in 1995. Given that they came out in 1986.

      Thanks for trying to troll though you halfwit.

      Tom

      --
      Someday, I'll have a real sig.
    4. Re:bah simple by CxDoo · · Score: 1

      This is true, not only in CS but in other fields too. My father takes pride in being able to disassemble and fix his (rather old) car every time he feels something is wrong - I am capable of checking the oil level and replacing a tyre and pretty much that's it.

      This thing happens every time a technology matures and market gets saturated - enthusiasts go from majority of users to, say, 5%, and all of a sudden think that 'nobody knows how to do things anymore'.

      --
      "Blah blah blah." - [citation needed]
    5. Re:bah simple by Jussi+K.+Kojootti · · Score: 1
      When I was a kid [and damn I was a kid of the 80s/90s] I sure as hell didn't have half of that. My computer was a XT up until I was 11 or so then it was a 386/25 we scraped together from spare parts. We didn't have net access only local BBS stuff so for the most part we had to INVENT our own fun.
      Luxury! I only had a 4004 which I had to code by feel, since we had no monitor. A BBS! I would have been happy if I had had any net access -- I had to do with three 5.25 DD floppies, and two of those were for the OS.
    6. Re:bah simple by Quiet_Desperation · · Score: 1

      Cheer up! :) The kids *before* your time were usually crippled by polio or died of cholera by age nine.

    7. Re:bah simple by Anonymous Coward · · Score: 0
      "you wanna play with computers? program them first sonny."


      Reminds me of my uncle, who is a robotics technician. I'd spend a number of weekends at his house throughout the year in the early 80's. He had a Radio Shack Coco, a floppy, and a 19" color tv in the early 80's along with ONE game: Polaris (a Missile Command knockoff). First time I got my hands on the machine I played that game all night. The second time I played for about an hour and he was about to hit the sack. He took the Polaris cart with him and said "want to play games? Write em. Here's Basic09 and OS-9.. have fun". He gave me a boot disk, a blank data disk, and a load of manuals. I don't know if I could thank him enough in retrospect. I'm not a games coder, but computing puts food on my table nowadays.

    8. Re:bah simple by triffid_98 · · Score: 1
      I think the issue isn't entirely enthusiasm, it's also a matter of escalating complexity.

      Many old cars can be repaired with vice grips, a hammer and some baling wire, while modern ones typically require half the contents in the 'snap-on' tool van and an ASE certification.

      Likewise programming old computers involved a text interface, no inheritance, no library versioning, no com wrappers, no thread synchronization, no event model,. etc. etc.

      In both cases the tools have gotten better because the problems people are trying to solve have gotten so much harder. Unfortunately even the best tools can't abstract away the added complexity, so people go from being developers of technology to simply users of technology.

      This is true, not only in CS but in other fields too. My father takes pride in being able to disassemble and fix his (rather old) car every time he feels something is wrong - I am capable of checking the oil level and replacing a tyre and pretty much that's it. This thing happens every time a technology matures and market gets saturated - enthusiasts go from majority of users to, say, 5%, and all of a sudden think that 'nobody knows how to do things anymore'.
    9. Re:bah simple by CxDoo · · Score: 1

      Your point is what I was implicitly saying - as given tech becomes more complex, it takes more & more enthusiasm (and tools) to be able to do anything comparable to standards of the day.

      You could easily make a Pacman (, Space Invaders, ...) clone in 1983 and not be much worse than the average on the market. Today, this is a non-starter.
      The same goes for the car fixing analogy.

      --
      "Blah blah blah." - [citation needed]
  27. David Brin by Yvanhoe · · Score: 1

    The author is David Brin, is he the SF author ?

    --
    The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    1. Re:David Brin by Anonymous Coward · · Score: 1

      In the article he mentioned writing Sundiver and Stardiver, so I'd guess yeah, it's the same David Brin

    2. Re:David Brin by Anonymous Coward · · Score: 0

      Maybe not. The article doesn't go on for 500 pages with a new character every chapter to the point that you finally decide to read only the chapters dealing with characters A, C, & D and not B, and E-K.
      Could someone please get that man an editor? He must have had one back when he wrote the original trilogy.

    3. Re:David Brin by Fahrenheit+450 · · Score: 1

      Hmm... you'd think someone with a doctorate in philosophy would be able to craft a better argument for his main premise.
      His article was essentially: We have no easy to run line oriented languages like BASIC. This is bad because with BASIC you can follow the code on paper as well. Of course we have plenty of other easy to run languages to choose from, but they are bad because they are not line oriented like BASIC so you can't follow the code on paper as well.

      Of course, he failed to establish that line oriented <--> easy to follow, so hi argument is one big failure. Really, there's nothing of real substance to be found in the article.

      --
      -30-
  28. Who can't follow Python? by amaupin · · Score: 1

    From the article:

    The "scripting" languages that serve as entry-level tools for today's aspiring programmers -- like Perl and Python -- don't make this experience accessible to students in the same way. BASIC was close enough to the algorithm that you could actually follow the reasoning of the machine as it made choices and followed logical pathways.

    If Johnny can't scan through a Python program and follow the logic, maybe he isn't quite ready to tackle computer programming...

    1. Re:Who can't follow Python? by An+Onerous+Coward · · Score: 1

      I see his point, though.

      for i in range(0, 100):
          print i


      Where does the input even hint at the concept of iterators? Python does hide a lot of stuff behind the scenes, which makes it deficient if you're trying to show a kid "how the computer thinks." I don't see this as a serious issue, since you could do the same thing with a while statement

      i = 0
      while True:
          print i
          i += 1
          if i >= 99:
              break


      but more importantly, because the high level concepts of variables, statements, program control, etc. are the same.

      --

      You want the truthiness? You can't handle the truthiness!

  29. Get off my lawn! by MirrororriM · · Score: 3, Funny

    Why, when I was a young programmer we had to write the code in the snow with our pee, and a compiler was just a word for the pilot of the hovering dirigible that read the instructions and passed them to the ALU, which was another fellow with an abacus. They would wrap the results around a rock, and drop it on my house when the program would exit. We had to walk uphill...

    --
    Content Management System: A pretentious way of saying "text editor."
    1. Re:Get off my lawn! by frank_adrian314159 · · Score: 1
      Why, when I was a young programmer...

      What a bunch of Nancies! In my day...

      --
      That is all.
  30. The REAL reason Sally can't code by smilindog2000 · · Score: 2, Insightful

    Games.

    I didn't get hooked because I wanted to hack computers. I got hooked on old games (like Colossal Caves). When I finished all the games, I decided to write one, and learned BASIC. Today, you never finish the games. They just get better and better. There's no way I would have spent all that time hacking if the games available today were around back then.

    --
    Beer is proof that God loves us, and wants us to be happy.
    1. Re:The REAL reason Sally can't code by Anonymous Coward · · Score: 0

      I agree.. why back in my day (said the grizzled old man with no teeth) the games were CLI and on tape, the 1 that comes was a games where you were the King of a castle and had to choose to feed the people, save the grain for latter planting and a few other choices, after I had won I figured out how to change the params that were written in Basic to make the game more challenging. Cant do that with todays games. And I had to walk 5 miles in snow to school up hill both ways...

  31. Wait... by Aladrin · · Score: 2, Informative

    Are you seriously telling me that with languages like VB.net, C#, Ruby, javascript and other 'easy' languages, kids can't learn to code these days? I call BS on this. Sure, I started on an Apple IIe in 4th grade, and gradually moved up to real languages (C, PHP, etc etc) eventually, but that doesn't mean the 'lack' of BASIC stops kids from coding.

    There are even languages developed solely to interest kids in programming.

    http://www.kidsprogramminglanguage.com/
    http://en.wikipedia.org/wiki/Alice_(software)

    I'm sure there's more out there, but Alice was the one I remembered, and found KPL on the way.

    No, there are no more barriers to programming than any other science.

    --
    "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
  32. Re:Kids today...... :-) by RAMMS+EIN · · Score: 1

    ``First off, it seems that math education is sorely lacking in many college students.''

    I won't argue that math education is not what it could be, but I doubt it's what causes people not to program. Math and programming _are_ different disciplines, and you can have either without the other. Even if math skills help programming a bit, it certainly isn't the _first_ reason for people not starting to program.

    --
    Please correct me if I got my facts wrong.
  33. WTF? by Anonymous Coward · · Score: 0

    If I was not capable of using google and wanted a BASIC clone for my son that badly, I'd write one. A BASIC BASIC (sic) could be hacked together freetime within a couple of weeks, but since I can use google I'd probably just download one of that thar newfangled intarweb thingy.

    When I was learning using Sinclair BASIC on the ZX80, 81 and Spectrum, I would have killed small domesticated animals for something as cool as javascript. What a rediculous article.

  34. Seen 'Processing'? by cruachan · · Score: 1

    Take a look at 'Processing' http://processing.org/

    If that doesn't inspire potential coders to start playing around with programming I don't know what would.

  35. Johnny Carmack by Anonymous Coward · · Score: 0

    Yes, but... what about Johnny Carmack?

  36. Re:Kids today...... :-) by tomhudson · · Score: 3, Insightful

    Not just kids - article writers too.

    "Dearth of line programming languages" my arse. Last I looked, almost every programming language is composed of lines of source code that you can write in a plain ascii editor. What the author is complaining about (without understanding it) is CODING IDEs replacing typing in your complete file as plain source code.

    c, c++, java, perl, python, php, pascal, javascript, whatever - you can write all your source the old way - line-by-line, and most of us do. Heck, even Delphi, one of the better IDEs, doesn't require the IDE environment if you really want to go the type-in-all-the-source route. Last I looked, both c/c++ and java were available for free for all the major platforms.

    In other words, the original article itself was a "nothing to see here" filler by someone who needed to write *something* before deadline. Sheesh!

  37. Re:Kids today...... :-) by tkavanaugh · · Score: 2, Insightful

    This is due to industry pressure, companies don't want to hire people who understand the compilers, they want people who know C++, C, Java, SQL, PHP... so colleges to keep their job placement numbers have decided to modify curiculums to match... so very sad, I wish i had learned about compiler design and cool stuff like that in college...

  38. Scripts? by evilviper · · Score: 3, Insightful

    How about scripting? It isn't as powerful as the current popular languages, but perhaps nearly as powerful as BASIC. You can certainly get a hell of a lot done that way, and it's trivially easy to get started. Anything you can type on the command-line, you can put into a simple text file, and run it.

    DOS batch files are pretty limited, but there have always been DOS programs to help extend them, and now that Windows is all NT-based, .cmd files run everywhere, which include many of the features BAT files lack...

    Once you're pretty advanced with such shell scripting, it's not a hard transition to interpreted programming languages like PERL, and then to compiled languages.

    I have a feeling the lack of kids programming has more to do with the fact that it's "unwashed masses" time, with the advanced still programming, but being hidden by the larger numbers of point-and-click users.

    --
    Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    1. Re:Scripts? by PrescriptionWarning · · Score: 1

      Python seems to me like the perfect intro scripting language for today's up and coming programmers. While many have fond memories of BASIC, or in my case the TI-83 calculator version of that, times have changed and maybe more advanced architectures will allow the new programmers to get more of a head start into getting into those more advanced applications.

    2. Re:Scripts? by RAMMS+EIN · · Score: 1

      Ah, now we get into the interesting questions of what makes a scripting language, what makes a programming language, is there any difference, and which language is the most powerful.

      What I never liked about BASIC is that it didn't seem like a coherent whole. First, with the line numbers and GOSUBs...how come the language was full of named functions, but I couldn't write one? Then came QuickBasic, which allowed you to define your own functions and procedures, with names...but they still didn't work exactly like the built-in ones. And I'm not even talking about the oddities of the built-ins themselves. BASIC has come a long way, though; I haven't seen a lot of VB.NET, but what I've seen suggests that it's definitely a decent programming language.

      As for shell scripts, I think they are _the_ way to get started in programming, at least for us *nix users. As I've described in my essay Hidden Strengths of Unix, when you're already typing commands in the shell (which is simply the easiest/best/most efficient way to accomplish certain tasks), the step from there to writing shell scripts is very small indeed. The problem, of course, is that Bourne shell script gets horribly ugly when you apply it to more complex problems.

      On the other side of the spectrum, there are the Real Programming Languages, which were specifically designed for tackling complex problems. The more Real they are, the higher the barrier to entry often is; Python, for example, has a relatively low barrier, but you won't find many people advocating Python for multi-billion dollar projects involving large teams and strong availability requirements. Java requires lots of boilerplate code and lots of explicit typing and exception handling, which requires, of course, that you understand all these concepts. You also can't quickly try things in an interactive Java session; at least, I haven't seen anyone using such yet. All this gives Java a high barrier to entry, but it's also often recommended for the sort big commercial projects with large teams etc.

      And then there's me, trying to work on a language that is good to use as a shell _and_ as a Real Programming language, so that you can go from typing commands in your terminal all the way to large projects, without having to abandon the language you know (and, hopefully, love). It won't be finished anytime soon, though, despite much of the design and some of the implementation having been completed.

      --
      Please correct me if I got my facts wrong.
  39. No need to go hunting on ebay ... by Lightman_73 · · Score: 1

    ... for a used C64.

    There are quite a number of those wonderful things called emulators :

    http://frodo.cebix.net/
    http://www.computerbrains.com/ccs64/
    http://www.viceteam.org/

    and even a Java one (in fact, it's an applet) : http://www.dreamfabric.com/c64/

  40. Someone needs to write a new paper, I guess by Jon+Luckey · · Score: 1

    Someone needs to write a new paper for the peer reviewed journals to counter this paper in light of the "Johnny can't code" factor.

    I suppose they could title it "Lack of Go To Statement Considered Harmful"

    Actually perl has a goto statement , so feel free use perl like a line programming language if you really want to.

    --
    -- 3 events that reshaped the world in the 20th century: WW1, WW2, and WWW
  41. The entire concept is wrong by Anonymous Coward · · Score: 0

    Saying the lack of line based languages is the death of programming is like saying the problem with farming is all those damn tractors. Oh wait, don't tractors make things BETTER? We've obsoleted the donkey in farming, and I don't think that was the death of farming.

    It's called P-R-O-G-R-E-S-S. It's the reason we don't live in caves anymore.

    There's a _reason_ we don't use line numbers anymore. Yes, I started on a Commodore PET computer with BASIC, so don't say I'm out of touch.

  42. Re:Kids today...... :-) by popeyethesailor · · Score: 5, Insightful

    Devil's advocate time: Remember Computer science isnt about the plumbing; its about abstraction, algorithms and problem solving ability. Modern platforms allow modeling and thinking at a much higher level - instead of focussing on low-level arcana.

    For example, lets take the author's wishlist - creating Pong. I'd wager that the game can be written in a lot more expressive manner in any higher-level language, compared to basic. Poking different screen locations arent a lot of fun; gorilla.bas gets old very soon. Kids like instant gratification(adults too!)- higher level languages are ideal for this.

  43. Oh, please.... by John+Murdoch · · Score: 5, Interesting

    From TFA:

    Am I being overly dramatic?

    Yes.
    The writer of TFA is whining that computers no longer ship with a BASIC interpreter. That's been true since Microsoft shipped Windows 95--and at the time (which, er, was 1995) a number of columnists (including me) noted the loss, and wondered what impact it would have.

    Eleven years later....
    The earth still continues to revolve around the sun, and kids are still learning to write code. They're not learning to write code by typing in exercises from a math book--they're learning to write code to develop macros in Excel (or OpenOffice Calc); they're learning to write JavaScript to enable custom functionality in Adobe Acrobat files; they're learning to write HTML.

    Not to get all pedagogical on you, or anything...
    But this may be a circumstance where the Education Establishment is doing something right. Typing code into GW-BASIC produces...what? Typically, an output value. Read these input values, produce that output value. That's a CRT-based emulation of a deck of punch cards--and while I believe I benefited enormously from learning to code on punch cards, very very few people in the programming world agree with me. Think about what the newbie programmer's early coding experiences are like:

    • Open DOS window
    • Launch interpreter
    • Persuade interpreter to load your file
    • Start the program
    • Enter two or three input values
    • See the resulting output value

    That experience--being able to compile and run a program in something like real time, was HUGE--in 1974. Nowadays it is so outdated that I'd bet most kids would not see any correlation between that and a computer program that they are familiar with. How do you explain to a ten-year-old that the BASIC exercise from the math book is essentially identical to the internal processes of a video game, a web server, or the embedded micro-processor that drives your microwave oven?

    By contrast, a web page is a terrific introduction. Open a simple web page with "View Source", modify the text, and display the new page--it has changed. Iterate several times--add paragraphs, change colors, play with fonts--and the kid gets it. Playing with a text editor (which, incidentally, still does come for free) the student can go a long, long way in HTML. Depending upon his or her interests the student can pursue graphic design, animation, AJAX programming--all sorts of stuff. Key point: the difference between a "Hello World" HTML page and EBay is only a matter of degree--and that is immediately obvious to the student. Making the mental link between an ancient BASIC program and--for instance--a Windows application developed in Visual Basic.Net is not obvious at all.

    A case in point...
    I have three daughters. Growing up in a house with more computers than people--and a T1 connection to the Internet--they have had more exposure to computers than most kids. The oldest two are in college, and both had summer jobs this year at the electronics company where I work. Daughter #1 worked in customer service role--spending a lot of time with Excel spreadsheets. Somebody asked if she could program--she replied that her dad was a programmer, but she didn't really know how to. As she said this, she was writing Visual Basic macro scripts to automate a lot of manual key-entry for the customer service staff. What she was doing was very similar to the old-fashioned "get input, produce output" coding that punch card decks and BASIC programs performed. But the IDE (in this case, Microsoft Visual Basic for Applications) and the paradigm (a GUI) made it extremely easy to understand and do. So easy, in fact, that she didn't really equate it with programming.

    In other words,
    Don't mourn for GW-BASIC. Spend time with your kids writing HTML, JavaScript, and Excel macros.

    1. Re:Oh, please.... by truedfx · · Score: 1
      The writer of TFA is whining that computers no longer ship with a BASIC interpreter. That's been true since Microsoft shipped Windows 95--

      I don't have Win95, so I can't comment on that, but 98 and ME come with QBasic (albeit unavailable for a standard installation; you have to copy it manually). Yes, I know this doesn't mean anything for the rest of your post.

    2. Re:Oh, please.... by Smallest · · Score: 2, Insightful

      >How do you explain to a ten-year-old that the BASIC exercise from the math book is
      >essentially identical to the internal processes of a video game, a web server, or
      >the embedded micro-processor that drives your microwave oven?

      the same way you would've done it back in 1982: "when you write a program, you tell the computer what to do. these are simple programs; games are complex programs. but they are both programs."

      believe it or not, professional games back then were amazing and awe-inspiring to people like me who were just learning how to make a computer do *anything*. while i was puzzling out BASIC's GOSUB and C64 assembly, i was also playing stuff like Zork, Zaxxon and Ultima III. yes, those games seem primitive today, but they were far beyond what your typical programmer could accomplish with BASIC. i knew they were programs, and that they were probably beyond my skill to create at the time (even now, too). it didn't take long to figure out that BASIC gave me control of the computer, and that making a game like Jumpman was just like writing any other program, but bigger, better planned, and probably in a langauge like Assembly. but that didn't stop me, or confuse me, it made me want to learn more.

      i think the loss of easily-accessible and very simple programming tools is a tragedy. yes, you can install Python or whatever (just like i could've installed C on my C64). but that's still too big, IMO. computers should come with *simple* scripting languages built-in (no, bash, ksh, etc. are not simple). the goal should be to teach people that programming gives you control of the computer - even if it's an illusion because it's really an interpreted language running in a sandbox in a user process on a multi-process computer. that's the big leap - don't give them Python because it's "more powerful than BASIC" - power isn't the problem - an easy way to get comfortable with basic programming concepts (sequential execution, variables, input, output, etc) is more important than power.

      --
      I have discovered a truly remarkable proof which this margin is too small to contain.
    3. Re:Oh, please.... by Kismet · · Score: 1

      The writer of TFA is whining that computers no longer ship with a BASIC interpreter. That's been true since Microsoft shipped Windows 95--and at the time (which, er, was 1995) a number of columnists (including me) noted the loss, and wondered what impact it would have.

      Every modern Windows OS that I have tried in the recent past has shipped with the Windows Script Host, which can be used via the command-line "cscript" command, or the "wscript" command for GUI mode. The script host interprets VBScript programs, which is where BASIC can be found on Windows today.

    4. Re:Oh, please.... by Anonymous Coward · · Score: 0

      Good post. I only write to point out that your daughter doesn't feel she can program probably because she doesn't understand everything from the ground up, and thus will never be fully confident in her abilities till she does. I say this because I'm in the same situation. I can write a little basic, but I never educated myself on how it all ties together. I'm very good at using modern tools to cobble together results and get the job done, but I don't consider myself a good programmer by any means.

    5. Re:Oh, please.... by stevesliva · · Score: 1
      How do you explain to a ten-year-old that the BASIC exercise from the math book is essentially identical to the internal processes of a video game, a web server, or the embedded micro-processor that drives your microwave oven?
      One thing easily forgotten in this "we no longer have simplicity" argument is that the "graphing calculators" that are required for most high school calculus students (or were 10 years ago) contain a very simple line-oriented program capability. So yeah, punching in a problem from the math book causes things to happen on the calculator, still. Now if only the math teachers cared to describe what's going on to twiddle those pixels...
      --
      Who do you get to be an expert to tell you something's not obvious? The least insightful person you can find? -J Roberts
    6. Re:Oh, please.... by Shadowlore · · Score: 1

      First: HTML IS NOT CODE, IT IS MARKUP. Ok, with that out of the way ...

      Spend time with your kids writing HTML, JavaScript, and Excel macros.

      But not if you want them to know how to program. The latter two are 'ok' for scripting, but if the goal is to know how to program you will fall short. There is a huge difference between a scripter and a programmer, just as there is between a programmer and engineer (though many scripters and programmers believe themselves to be engineers).

      Programming (I'm assuming we are all clear that we are talking about *good* programming) involves being able to determine the best algorith or pattern, knowing the differences between functional an OO, scoping, and so on. Even if you don't know/use the "accepted names" for various algorithms and patterns, you need to know how and when to use them.

      What is more telling/troublesome is the fact that so many people think HTML is coding, that so many people who should but do not know the difference between scripting and programming.

      Changing your oil, spark plugs, and wires does not make you an auto mechanic. Scripting JavaScript or office macros does not make you a programmer. It isn't a matter of difficulty (a transmission swap isn't difficult either), it is a matter of what is being done. Difficulty is relative, task orientation is not.

      Your daughter was right. She wasn't programming, she was scripting. Kudos to her for knowing the difference. Bummer that her father apparently does not.

      --
      My Suburban burns less gasoline than your Prius.
    7. Re:Oh, please.... by Kayamon · · Score: 1

      Well, that's not strictly accurate.

      You seem to be under the impression that most BASIC programs would only print out text and numbers.

      Most of the stuff I grew up with as a kid (Spectrum BASIC, AMOS, QBasic, etc) could quite happily read controls, draw things on screen, and play sounds - all the things you need to start messing around with.

      --
      Kayamon
    8. Re:Oh, please.... by DragonWriter · · Score: 1
      Programming (I'm assuming we are all clear that we are talking about *good* programming) involves being able to determine the best algorith or pattern, knowing the differences between functional an OO, scoping, and so on.
      Yeah, but all of that is stuff you learn after (and it can safely be fairly long after, except in very informal terms) you start learning programming in the more general sense (writing a program and making it run); and old-school BASIC is farther from a good programming (or even good scripting) language than either VBA or JavaScript, so I wouldn't reject those two as teaching tools on the grounds you are (I don't think JavaScript is accessible enough, of Excel VBA interesting enough, to be ideal for teaching elementary students. As I've stated elsewhere, I think Logo descendants and REBOL, among others, are good choices.)
    9. Re:Oh, please.... by jafac · · Score: 1

      (a transmission swap isn't difficult either),

      A transmission swap can be IMPOSSIBLE without the correct (usually VERY expensive) tools and equipment. At least on modern cars.

      I think there's a parallel to modern computing.

      By the way, this "that's not programming, that's scripting" pissing contest is pretty silly too. You can swap transmissions all you want. But if the car's operator doesn't keep the gas tank full, (or the tires properly inflated, or the oil changed) the car will stop functioning in short order.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    10. Re:Oh, please.... by gpsguy2 · · Score: 1

      If you want to go visual, check the latest incarnation of LabView running now with the NXT Mindstorms. Drag and drop programming.

      --
      jeepx: GPS Discoveries http://jeepx.blogspot.com
    11. Re:Oh, please.... by Fallingcow · · Score: 1

      My high school physics class taught me to write scripts on my calculator, though I never got very far past the "print" command :)

      *taking a test*
      "Oh, hell, what was that formula?"
      Run->forumulacheatsheet
      "OH, right."

  44. Why not Squeak? by Anonymous Coward · · Score: 0

    Why not something like Squeak (www.squeakland.org). More dynamic than basic HTML, easier than writing applets.

  45. Re:Kids today...... :-) by BWJones · · Score: 4, Interesting

    You should know that the University of Utah has a long history of academic excellence in computer science. People like John Warnock (founder of Adobe), David Evans and Ivan Sutherland (founders of Evans and Sutherland), Robert Barton (principal architect of all Burroughs computers), Tom Stockham (created digital recording among many other things), Alan Kay (GUI guy at Xerox PARC, developed Smalltalk and is a fellow at Apple), Chuck Seitz (pioneer in asynchronous circuits), Ronald Resch (pioneer in computer art), Alan Ashton (founder of WordPerfect), Tony Hearn (developed the oldest algebraic math package, REDUCE), Duane Call (designer of the FPS-120 supercomputer and vector calculation specialist), Henri Gouraud (developed the Gouraud shading methods so important for all your games), Elliott Organick (Founder of SIGSCE and author of many FORTRAN and CS textbooks), Buit Tuong-Phong (invented the Phong shading method), Ed Catmull (computer animation pioneer and co founder of Pixar), Jim Clark (founder of Silicon Graphics, Netscape and Heatheon/WebMD), Henry Fuchs (founder of Pixel Planes and researchers in high performance graphics software), Martin Newell (object rendering and founder of Ashlar and co developed the Painter's algorithm for surface rendering), Frank Crow (famous for his anti-aliasing methods for edge smooting), Martin Griss (developed Portable Standard LISP), Suhas Patil (founder of CIRRUS Logic), James Blinn (Invented the first method for representing surface textures in graphical images. Scientist at JPL, where he worked on computer animation of the Voyager fly-bys), Jim Kajiya (Developed the frame buffer concept for storing and displaying single-raster images), Robert Johnson (Invented the magnetic ink printing technology used on virtually every check we write), Brian Barsky (Developed beta splines and methods to link computer graphics, geometric modeling, vision science, and optometry) and so on and so one are all graduates of our program.

    --
    Visit Jonesblog and say hello.
  46. Apologies to Edsger. . . by kfg · · Score: 1

    for putting his "i" out.

    KFG

  47. Sorry to break this to you by Colin+Smith · · Score: 1

    But computers are not new and exciting any more. They are commodity machines which provide standard services which you pay for.

    --
    Deleted
  48. Debuggers by James+McGuigan · · Score: 2, Insightful

    One very useful tool when learning to program, at least for me, was an intergrated debugger. The ability to step through the code line by line, looking the values of variables at each stage and see how the code branches is a great for internalizing the logic of how a language or algorithm works, and learn to run through the code in your head just like a debugger.

    1. Re:Debuggers by jefu · · Score: 1

      As someone said above, try Squeak. The debugger isn't structured quite like the usual (gdb type) debuggers, but is wonderfully powerful and you can even change the code while in the debugger and ask it to try to continue from where it left off.

  49. Comment removed by account_deleted · · Score: 4, Interesting

    Comment removed based on user account deletion

  50. Re:Kids today...... :-) by hey! · · Score: 5, Interesting

    first off, it seems that math education is sorely lacking in many college students. ... The next major reason is lack of communication skills and writing skills.

    There's a story about Abraham Lincoln when he was a cogressman. He received a questionnaire sent to new congressman in which they were supposed to give background information about themselves. When he came to the question which asked for a description of his education he filled in a single word: "deficient".

    In fact, Lincoln felt the deficiency of his education so keenly he began an independent study of Euclid's Elements, with the intent of sharpening his thinking. Reportedly he mastered the material through book 6, which means everything relating to plane geometry, but not number theory or solid geometry. I'd argue that Lincoln's formidable intellectual accumen, whether it stemmed from his study of Euclid or from his native faculties, is often missed in the sentimental haze that surrounds the man.

    The point of these anecdotes is this. There are certain areas of knowledge where thoughtful persons would have to label their education "deficient", any accomplishments they may have in them notwithstanding, because they are bottomless sources of utility. You just named two of them: mathematics and communication.

    The need for remedial classes at the university level doesn't come from a degeneration of the educational system. It comes from a social and economic change which makes a bachelor's degree a minimal requirement for decent employment. Fifty years ago, there were two kinds of people who went to college. The socially elite, for whom a "Gentleman D" was perfectly acceptable. Arguably the societies they joined and contacts they made were the most important reasons to go. And the intellectually elite. The middle class, non intellecutally elite student got a job, often in a factory, which maintained him in the middle class and did not require a degree.

    The growing need to have a university degree in the last half of the twentieth century led to the perennial concern of declining college board admission test scores, from which it was concluded that primary and secondary education was deteriorating. However, it's important to remmeber that average scores are average scores of a population sample, and if the population being sampled changes, you can't compare the scores. Adjusted for demographic changes, there was no decline in scores. There literally couldn't be, because of the little known fact that the tests and scoring scales are continually recalibrated by the testing agencies to ensure that students in any given segment of the academic population score the same from year to year.

    However, we have been the beneficiary, first of the Sputnik scare, then the SAT scare. For most students, education is actually much more rigorous today than it was fifty years ago. I went to elementary school almost forty years ago. My school was unusual in putting a great deal more emphasis in critical thinking and reading skills. My children go to an elementary school where the reading curriculum is much more challenging, and the math curriculum requires that students be able to reason mathematically and recognize situations where various mathematical techniques need to be used -- a huge improvement over the education of my era, which graduated countless students who could regugitate the quadratic equation forumula but had no idea when it might be useful.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  51. Re:TO EDITOR -- FIX TITLE by indifferent+children · · Score: 0, Offtopic

    Are we still allowed to get bent out of shape when people misspell "especaly"?

    --
    Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
  52. The machine is more important than the language by Anonymous Coward · · Score: 0

    Wouldn't one of the free Commodore 64 emulators out there be a better solution than buying an old computer?

    It seems to me Brin is not quite on the mark, but heading in the right direction. What was great about learning to program 24 years ago was the total control you had over home computers of the time. There was only the thinnest of abstractions separating you from the low-level mechanisms, and you frequently had to had to bypass the abstractions to get anything cool done. At the same time, the low-level stuff was pretty easy to understand -- poke a byte here, something appears on your screen, poke a couple of bytes over there, you have a sound.

    Contrast that to present-day machines. If you are programming graphics in C++, you are probably working with a working with a library of some sort, which talks to one layer of the OS, which talks to another layer of the OS, which talks to the video card's interface, which talks to the hardware. It lets you do fantastically powerful things, but with a steeper learning curve and a major loss of detailed understanding of what the hardware is doing.

  53. What? by ratta · · Score: 0, Offtopic

    The darth side of programming?

    --
    Wondering why i am doing so strange posts? I am trying to get a "+5,Flamebait" or "-1,Insightful" rating.
  54. 3D Engines Game editors by Dareth · · Score: 3, Interesting

    The editors for 3d games are unbelieveably powerful. I remember spending many an hour tinkering with the original Unreal editor. It was easy for even a novice to use a getting started tutorial to build their own map/level/world.

    The editor presented the world as a 3D solid and you would cut away "rooms" and then apply textures. You could easily make an in-door or outdoor scene complete with sky, water, light sources, etc.

    You could put together simple shapes to create complex objects, then script them easily to move around or even react to the player character in the game.

    To really get complex reactions from the environment, or to get the lighting/shadows right required some understanding of basic math/trig, but even that is not that hard and the tutorials pointed you in the right direction.

    This is about as close to the "wow factor" that I got from doing simple shapes on a TRS-80 back in the old days. Coding up your own version of Bezerk was awesome. Creating your own worlds and getting to explore them was almost as thrilling.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
    1. Re:3D Engines Game editors by monopole · · Score: 3, Interesting

      Hah! Arguably its easier now to do insanely cool stuff in line oriented code.
      I just knocked off the code to import a 3d model of Downtown Berkley and display an interactive stereoscopic model with texture mapping in 267 lines of Python using only the enthought python distribution and the PyXML module. If I wanted to add joystick support that would be 10 more lines and the PyGame module. All the tools are free as in beer and speech. The only development tools I used were a text editor and the interactive command line.

      A few months ago I knocked off a few hundred lines of Python code which logged gps, and processed the logs to provide KML files which came up in google earth with commented 3d paths of the GPS positions. Once again using FOSS with a command line and a text editor.

      Insanely cool code is much simpler these days with high level Python bindings to just about everything.

      As for physics, while there is a lot of very expensive cool stuff (CERN etc.) a lot of very cool physics is going on with dirt cheap tools. Lasers, microprocessor controls, high end optics, computers that make a Cray I look like a calculator etc. are available for next to nothing, allowing the Mac Guyver's of physics to do astounding things in their garage.

  55. QBASIC.EXE??! by grazzy · · Score: 1

    I dont get it. QBASIC.EXE is readily available from a local website near you. Last time I coded QBasic was 2004 for shits and giggles at Birdie 13 Uppsala/Sweden.

    This entire article is just pure whining. Getting a C64 because of that? Whats the point? I just dont get it. If you want to code in basic that is hardly a problem. That people choose to not do that and use a fancy GUI or just learn how to code HTML instead I can understand since thats what "IT-people" do today.

    1. Re:QBASIC.EXE??! by gregarine · · Score: 1

      I agree. This author didn't try very hard. His poor son. He just wanted something to shoot his mouth off about to meet his editorial deadline:
      See:
      http://www.tedfelix.com/qbasic/
      and
      http://www.svatopluk.com/qbtutor/tut1.htm

      Time I spent googling and reading 3 minutes

      --

      I like traffic lights
  56. Re:Kids today...... :-) by PseudononymousCoward · · Score: 5, Insightful

    I totally and completely disagree. The issue is one of pedagogy--which language can kids learn at an early age? I was coding 1000 line programs in BASIC at age 8, and I wasn't alone in that. BASIC is an easy language to learn. Is it limited? Definitely. Would I prefer today to code in BASIC instead of the Perl, Matlab, and Fortran that I now use? No. But the author's point is about _learning_ to code. Perl isn't terribly easy to 'learn' nor are c or c++ or java, at least not to an 8yo.

  57. CS a branch of mathematics? by David+Off · · Score: 4, Insightful

    I wonder if this CS is a branch of mathematics approach also puts people off. Personally I think there is much less mathematics going on at the programming level than college lecturers like to think. It is like the old saw that a dog that catches a ball is solving a 2nd order differential equation in real time. No its not, it is catching a ball. Similarly a program is more a logical story than some mathematical adventure.

    It may gall college profs who are still trying to foist formal methods on people but setting a high mathematical barrier to entry on CS courses and having a high maths content is a bad thing.

    As an example I have a first in Microelectronics from a British University (a course which had a large syllabus covering 'C' and machine language) but only just scraped the 'C' grade needed in mathematics as an entrance to this course despite having 'A's in Electronics and Computing. I doubt I have used any maths much beyond British 'O' level standard since and certainly the maths knowledge required as entry to a degree level CS course is too wide and deep. It is all geared up to people going onto research rather than the real world. You don't need to be an expert in set theory to write the level of SQL required by most applications.

    1. Re:CS a branch of mathematics? by Mark_Uplanguage · · Score: 2, Insightful

      Isn't it true that you have no idea what you'll be programming in the future. I always thought the point of all the math was to provide a solid background to support you in whatever you do. Your personal experience is insightful, but I wouldn't try to assume it's applicable across the board.

      --
      "The difference between stupidity and genius is that genius has its limits." -- Albert Einstein
    2. Re:CS a branch of mathematics? by Erectile+Dysfunction · · Score: 1

      Maybe you should question whether what you do is Computer Science. If someone obtains a degree in Physics and decides that he wants to be a computer programmer, does he have to post on Slashdot about how all of that mathematics he learned to obtain a degree in Physics isn't necessary for the CRUD software he develops. Yet here on Slashdot everyone whose jobs basically consists of writing CRUD software, spitting out webpages, or babysitting servers complains incessantly about how their college education was superfluous. Well if you choose to do something that's not related to what you studied then big surprise that it doesn't entail considerable mathematical expertise.

    3. Re:CS a branch of mathematics? by Anonymous Coward · · Score: 0

      No, you don't need to know set theory to write web applications with SQL, but a computer science curriculum is not designed to prepare you for writing web apps, or sticking together a few pre-written frameworks into a finished product with a small amount of glue code. If that's the end result you desire, then you probably don't need a degree in computer science.

      Computer science is about algorithms and computability theory and such. You're going to learn about AI and probably cryptology. You're going to learn about theoretical models of computing. Those are all heavily mathematical. Sure, there's more concrete stuff, like computer architecture, and operating systems design. But even those have mathematical elements beyond what you'd strictly need for some kind of average, code-jockey job.

      The mathematics requirements for CS are there because CS does have a lot to do with mathematics. Computer science isn't vocational training for Java/web programmers.

    4. Re:CS a branch of mathematics? by IamTheRealMike · · Score: 3, Insightful
      Isn't it true that you have no idea what you'll be programming in the future.

      No, it's not true. 10 years ago most desktop software was written in C++ and Java - a hugely simplified form of it - was the next big thing. Fast forward 10 years and most desktop software is written in C++. Most new languages and tools are pretty similar to old ones. Radically different toolsets like pure functional languages have never taken off, and show no signs of doing so. The best programmers are still the ones with the most experience, not the ones who know the most pure maths.

      I always thought the point of all the math was to provide a solid background to support you in whatever you do.

      The point of all the math is to make the subject sufficiently academic that it is acceptable to universities, who are scared by anything vocational.

      The skills that everyday programmers need to do everyday jobs are more around understanding the tools they'll be working with - how a computer actually works, what version control is, how to architect software to be modular, what regular expressions are, how to work with debuggers etc. These are the skills that university graduates routinely lack, and routinely get nailed in job interviews by.

      Bits of the math are useful - being able to work in base 2 and base 16 for instance, or having a basic understanding of time/space complexity. Unfortunately most courses focus on big O notation to a ridiculous extent, meaning that it's not uncommon to see "data structure abuse", where some extremely fancy and theoretically fast algorithm is used, but due to some awkward practical factor like poor locality or excessive memory usage ends up being slow.

    5. Re:CS a branch of mathematics? by tdi1 · · Score: 1

      There's a huge difference between Computer Science and computer programming and being skilled at one does not imply any level of competence at the other. I attended one of the top engineering colleges in the early 80's and studied computer science and engineering. Prior to that, I grew up writing code and had a passion for problem solving. I went to college expecting the other CS majors to have similar competencies. What I learned was that the standard CS curriculum at the time didn't train great programmers, it trained computer scientists. While there were several programming courses we all took, there was considerable emphasis on math, analysis and proofs. The students were taught about Turing machines, algorithmic efficiency and the like. While I enjoyed the graphics, data structures and OS design courses, I was shocked at how little training there was about actual programming, style and issues pertinent to actual large scale program development. I graduated highly disaffected by the conventional CS curricula. So what did I do? Well, while a student, I started a company and hired the best programmers I could find amongst my classmates. As it turned out, none of these were good CS students but they were fabulous programmers. And they weren't the type that just churned code. They were adept at writing quality code and continue to be to this day. We understood the fundamentals and applied them. We cared about programming and what we did. But none of us was what one would consider a brilliant computer scientist. We barely passed our higher level math classes and theoretical computer science courses. And you know what? In 20 years of professional programming, very successfully I would add, we never needed those skills. The level of math we used in developing our applications rarely progressed above high school algebra and geometry. A little pre-calc and first year calculus maybe, but that's it. Lest you think we were DB programmers or just did GUI programming, far from it. We developed a large image processing and analysis system for biomedical imaging. Would I say there's no need for computer scientists? Not at all. Their work provides the foundation for many advances in programming. However many of them have no place in front of a keyboard except for writing papers about programming. Likewise, many talented programmers couldn't solve a proof to save their life. They are two distinct disciplines with some overlap.

    6. Re:CS a branch of mathematics? by Erectile+Dysfunction · · Score: 1

      Any nontrivial image-processing consists of mathematics beyond high school algebra unless you're just implementing algorithms others have set down for you, or calling into a library. Further one does not solve proofs, one proves things. Programming is a trade skill. Computer Science is an academic discipline. To some extent Software Engineering could fill a role of teaching software development skills, however I have not conducted any research to assess the adequacy such programs have had at doing so. I have little reason to think that they would offer more than contrived experiences, which is why people have internships and co-op programs.

    7. Re:CS a branch of mathematics? by lhbtubajon · · Score: 4, Interesting

      This was EXACTLY my experience at The University of Texas, where CS is really applied mathematics, with a focus on AI. I just wanted to learn to code cool shit. After three years of learning very little I could practically apply, and being bored absolutely stiff (while getting my ass kicked by the maths), I bailed out of CS in favor of an entirely different college (within UT).

      I don't begrudge UT for wanted to offer an applied mathematics program in their CS department, but I didn't want that, and was basically told that if I wanted to have a life where I did cool stuff with computers, I had to learn Diff. EQ, calculus-based engineering physics, and a whole lot of theory and proofs of CS (emphasis on the _Science_) concepts that perhaps .01% of real-world programmers actually give a shit about.

      Another concern I have with university-level CS programs is that not a whole lot of actual TEACHING goes on. Lower-level courses are "taught" in giant halls where ethereal profs tend to cater to students who already knew the material before they got to high school. It just goes downhill from there. I didn't realize how bad it was until I got to another department where they actually started with the basics, _taught_ the fundamentals, and developed students through to competency.

      It's like CS departments got lazy on teaching because they have such a wealth of students who have been dicking around with this stuff since they were 5, just because it was fun.

    8. Re:CS a branch of mathematics? by notneverwired · · Score: 1

      I think you may have a point, but it's indicative of a larger problem with math education. In college I did NOT major in computer science (which I regret) because in my freshman year the math requirement seemed too difficult. After 3 years I graduated with a major in Economics and an accidental minor in Math. My interest in Econ led me to higher math.
      You pointed out your C in math. I think a C is better than not being exposed to the concepts at all.

      A lot of kids are scared off by math, but if any student follows what they're interested in (econ, psych, cs, art?) they'll find higher math education to be an invaluable asset. Math enriches all fields. Who knows where the fear of math starts or how to fix it? I fell victim to it.

    9. Re:CS a branch of mathematics? by Mark_Uplanguage · · Score: 1

      I'm not arguing that a university shoves stuff at you that you'll never use, but a 4 year degree is a 4 year degree - you've got to fill it with something so you can charge the students (or their parents). What I am trying to say is that exposure to more disciplines increases your ability to handle any project. 10 years ago I started working in Cobol and Assembly on printing logic, and the use of fonts, signatures, MICR lines on checks. None of that is taught in school. Now I'm working on logisticts systems and business workflow. None of that was taught in school either, but I know enough about computing hardware, computational algorithms, and base2 calculations that I have to be careful with all the math that the program does, and which languages are better suited to it. Yet I never knew I'd be doing this kind of programming so I'm glad to have taken those math courses years ago.

      --
      "The difference between stupidity and genius is that genius has its limits." -- Albert Einstein
    10. Re:CS a branch of mathematics? by Synistar · · Score: 1
      Well if you choose to do something that's not related to what you studied then big surprise that it doesn't entail considerable mathematical expertise.


      You hit the nail on the head. Too bad I don't have mod points right now. The truth is that most IT jobs are menial work when compared to the full range of the CS field. I think that a lot of tasks/jobs will be replaced by software functions or tools for non-programmers in the future (yes that old argument again).
    11. Re:CS a branch of mathematics? by Doctor+Memory · · Score: 2, Insightful
      The point of all the math is to make the subject sufficiently academic that it is acceptable to universities
      Not at all, the math is there to explain why things work the way they do, and why an O(n log n) routine is better than an O(n^2) one. It's also handy to be able to recognize an NP problem, before you agree to write the solution in two weeks! ;)

      Seriously, I can't imagine developing software without at least a passing familiarity with discrete math. It's not that hard (I found it easier than trig, but then I suxx0r3d at trig), and it teaches you how to think about the kind of problems that are common in programming (e.g., graph traversal).
      --
      Just junk food for thought...
    12. Re:CS a branch of mathematics? by Anonymous Coward · · Score: 0

      (quote)

      Fast forward 10 years and most desktop software is written in C++. Most new languages and tools are pretty similar to old ones. Radically different toolsets like pure functional languages have never taken off, and show no signs of doing so.

      (end quote)

      But wasn't it the case that OOP was once "radically different"? Yet now it is very mainstream. Simply because today OOP is mainstream in industrial programming, doesn't mean something else won't supplant it later.

    13. Re:CS a branch of mathematics? by Bender0x7D1 · · Score: 3, Insightful

      I both agree and disagree with you.

      I agree that this applies to programmers.

      I disagree that this applies to software engineers.

      There is a big difference between the two.

      The point of all the math is to make the subject sufficiently academic that it is acceptable to universities, who are scared by anything vocational.

      Universities are not scared by anything vocational. However, it doesn't fit with their role in education. If you want a vocation, go to a community college or something else. They will teach you the "hot" programming language, environment, skills, etc. However, these things are fleeting. What are the hot areas today? Ruby on Rails? Security? LAMP? What was it 5 years ago? Java? .NET? You can't target "hot areas" in a 4 year program. The hot area is over by the time you get finished.

      Now, if you get a solid grounding in theory and skills that apply to different areas, it doesn't matter what the hot area is. You can use your foundation and learn that area quickly. If you have a solid background in programming, including different languages, picking up a new language is easy. If you have a good grounding in networks and OSes, then picking up security is much easier. So, universities don't aim for the hot areas, they aim for giving you the skills and tools to be successful in the long run.

      --
      Reading code is like reading the dictionary - you have to read half of it before you can go back and understand it.
    14. Re:CS a branch of mathematics? by Llywelyn · · Score: 1

      "Personally I think there is much less mathematics going on at the programming level than college lecturers like to think."

      I generally find that there is more.

      Seriously. I work in decision support, and there's barely a day that goes by that I'm not working with an differential equation, Triginometry, set theory, graph theory, or linear algebra. At a minumum the discussions tend to frame things in terms of asymtotic notation.

      It depends on what you want to do. If you want to be a DBA, the amount of math that you need and what kind of math you need is different from someone who works in game programming, decision support, or scientific computing.

      --
      Integrate Keynote and LaTeX
    15. Re:CS a branch of mathematics? by c0reboarder · · Score: 1

      I can see your point, but I have to disagree. There are definitely programming jobs out there that don't require much of the math you learn in a CS program, and even many of the jobs that do require parts of it don't require all of it. The point is to make you a rounded individual as a programmer so that you can handle any task.

      Take an example of a small open GL project I did once, 3-D pong. Ok, this seems simple enough not much math... then make it interesting, rotate the walls. All of the sudden you're using linear algebra and matrix theory that you learned as a sophomore in college (hopefully you kept your book around). Not the most complex math, but applying the linear transformations to the vector spaces in a programming language makes you glad you had a really good understanding of it at one point in your life.

      Ok, now sure I didn't need all that calculus, or diffy q, or compinatorics, graph theory etc for that program, but now take another example. My current job as a developer utilizes our own home grown database. Guess what it's not a relational DB, it's a tree (trust me it's great for the data we use). Here's where all of the graph theory class really helps me on a daily basis. I'm sure there's a million other jobs out there that require some of the high level math you learn, it's just rare that any one job or project will require you to use most of what you learned. The point of going to a university is to come out with the ability to handle many types of jobs, not just one. If you only plan on working one specific type of job that doesn't require much of anything you learn in a full blown CS program go to tech school.

    16. Re:CS a branch of mathematics? by Llywelyn · · Score: 2, Insightful

      The people I've met who have had vocational programming are generally lousy programmers. Training in mathematics and engineering is training in problem solving--an invaluable skill--and the mathematics gives one skills that they may never use or they may need just to get in the door to a place that uses them.

      I cannot emphasize enough the quote from the CAIP quarterly on mathematics, paraphrasing: "I tell my students to listen carefully when they decide to take their last mathematics class. They may be able to hear the sound of closing doors."

      Most everyone in my office wishes they had more mathematics in school, most people who majored in economics say they would kill for the differential equations my school forced econ majors to take, and many professors in Ecology who are doing simulation wished that ecology grad students had a firmer background in mathematics. Its everywhere, but if you lack training in it then of course you will never use it or be required to use it.

      --
      Integrate Keynote and LaTeX
    17. Re:CS a branch of mathematics? by spaceyhackerlady · · Score: 1
      No, you don't need to know set theory to write web applications with SQL, but a computer science curriculum is not designed to prepare you for writing web apps, or sticking together a few pre-written frameworks into a finished product with a small amount of glue code. If that's the end result you desire, then you probably don't need a degree in computer science.

      I work with communications stuff, and I really do need to know, and use, all the group theory and Fourier transform stuff I did at school. One product line I work with uses Reed-Solomon codes. Encoded with the usual Galois field representation stuff, and decoded at the other end with the Berlekamp-Massey algorithm. The performance is defined and analyzed in terms of Fourier transforms.

      I've never understood this whole math-phobia shit anyway. All science requires mathematics. If it doesn't require mathematics, it's not science.

      ...laura

    18. Re:CS a branch of mathematics? by egor045 · · Score: 1

      Is this the difference between a science degree and an engineering degree? It sounds like the UT course consisted of a lot of rarefied theory and not so much getting down and dirty with the tools. I suspect that most commercial development these days doesn't rely so much on the theoretical elements as grinding stuff out.

      Caveat: I'm a civil engineer who took up systems admin to avoid spending his time standing around all day in the rain and the mud. I have caveman mathematics and programming skills ...

    19. Re:CS a branch of mathematics? by cjjjer · · Score: 1

      "No, it's not true. 10 years ago most desktop software was written in C++ and Java" ????

      Java? WTF! Are you serious? I could count the number of desktop applications written in Java on one hand 10 years ago. There were far more desktop applications written in VB6 than there were Java apps during this time (not that that was a good thing).

      I would like to know what you constitute as a "Desktop Application", something only programmed in C++ or Java?

    20. Re:CS a branch of mathematics? by Lodragandraoidh · · Score: 1
      It's also handy to be able to recognize an NP problem, before you agree to write the solution in two weeks!


      This assumes that your employer gives you the option to agree or not.
      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    21. Re:CS a branch of mathematics? by tdi1 · · Score: 1

      (Sorry that this is getting astray of the original posting.)

      "Any nontrivial image-processing consists of mathematics beyond high school algebra"

      Heh. That's what much of our competition thought, so they implemented many of their routines in the Fourier domain. We did real-world image processing and analysis in the spatial domain. Pixel addition, subtraction, multiplication and division. Real-time image processing. We survived while the competition failed. They failed because they created programs that were correctly implemented but didn't satisfy the customers' needs. We addressed those needs in an extremely pragmatic manner and crushed the competition.

      We implemented all our own code. Complex, non-trivial code - but still required no higher level math or proofs. This was for an application that might be considered a scientific version of Photoshop.

      How about most other real-world software? Implementing word processors or even spreadsheets largely requires only very basic math.

      I do agree that "Programming is a trade skill. Computer Science is an academic discipline." Why can't Johnny code? Because many companies won't even look at a candidate unless they graduated with high marks in a CS degree and traditional CS programs are largely irrelevant. That's cool with me because that leaves many of the truly talented programmers available to hire :-)

    22. Re:CS a branch of mathematics? by Brickwall · · Score: 1
      most people who majored in economics say they would kill for the differential equations my school forced econ majors to take

      Yes, when I studied "Economics for Engineers" at U of Toronto in the 70's, my economics professor positively luxuriated in being able to use calculus and differential equations to explain the economic concepts. He confessed to us that it was much harder to teach his Arts & Science students, who didn't have the math skills to understand concepts like local maxima/minima, rate of change, etc.

      --
      What was once true, is no longer so
    23. Re:CS a branch of mathematics? by Anonymous Coward · · Score: 0
      If it doesn't require mathematics, it's not science.


      I love you!
    24. Re:CS a branch of mathematics? by obenchainr · · Score: 1

      One of the principles of mathematics is that it forms a common abstract basis for discussions between disparate fields. "1" doesn't *mean* anything, intrinsicly, so it can be referenced by widely varying applications or concepts. Mathematics helps to unify science in a very important way. Aside from the actual expressions and functions used in various applications (which ones depends on what you're doing, obviously), I've always believed that the most important aspect of mathematics was this abstraction. It is, in a sense, the only pure implementation of logic without taint of meaning; mathematics can be used to describe relationships without worrying about the application of the relationships. It's a fundamental kind of logic that, in my memory at least , is touched at in Geometric proofs but first really becomes apparent in Calculus (where process becomes more important than result), and that most laymen never really grasp. The reason why I've always believed that CS as a degree concept fails is that I've never seen a course for teaching people how to think in this kind of abstraction, and it's completely fundamental to programming. If you've (successfully) been through a certain level of mathematics, you've *probably* got the ability to think this way, but it's not a guarantee; there's also a certain kind of personality that develops, at a young age, the ability to abstract in this way freely, and those tend to be the young programmers. I also think that's why a lot of folks hate math at the Calculus level and beyond, and why most people I know don't understand the basics of computer operation: no one has ever taught them how to step outside the practical into the conceptual and think in terms of generic processes rather than specifics. How many techies here have been astonished at how people can't take principles learned in one application - say, a word processor - and apply them in a different application? How many times have we sat down at something we've never seen before but been able to "play with it" and get it figured out, simply because we can apply concepts we've learned in other systems or programs? The classic examples are table-type data grids. Generally, as concepts, these are applied in similar ways across a huge variety of applications even when the actual function is completely different. The few people I've tried to teach abstraction to who have "gotten" it suddenly found that mathematics - and programming - were a lot easier, but I really do believe it's a skill that needs to be taught at a younger age. The earlier someone learns abstraction, the easier it is for them to see how to apply abstraction in new situations. You *can* teach old dogs new tricks, but they won't have the benefit of having practiced it for their whole lives.

    25. Re:CS a branch of mathematics? by obenchainr · · Score: 1

      Sorry, first slash-dot post, and it came out HTML instead of text. Excuse the bad formatting, please.

    26. Re:CS a branch of mathematics? by lhbtubajon · · Score: 1

      It could be. I never enrolled in a school that had computer/software engineering programs, as opposed to Computer Science.

    27. Re:CS a branch of mathematics? by Anonymous Coward · · Score: 1, Insightful

      It's the difference between a degree in computer science at a good school and a degree in 'information technology,' or something similarly named, whether from a trade school or perhaps even a 4-year university.

      Computer science is the mathematical stuff. It's learning how to develop and analyze algorithms, and the theoretical foundations of computation. A good program will have some AI and decision theory, which is definitely mathematical. Even in an operating systems course, you won't spend your time digging through kernel code. You'll instead learn about the general problems that such a piece of software has to solve, and which ways are most effective for dealing with them, given your particular goals.

      It's most definitely not about learning a bunch of particular tools/languages. An introductory course would probably be concerned mostly with teaching a specific language, along with the basics of programming, but beyond that, you're mainly expected to learn the tools on your own. The tools are useful for experimenting with and gaining understanding of the underlying concepts, but it's the latter that is the purpose of the curriculum, not merely to train you in using the tools.

      So, the slashdot consensus is correct in that a heavy mathematical background is not necessary for hacking together a word processor, or writing a database front-end in PHP. However, such activities aren't exactly the domain of computer science, and you really don't need a degree in it to work on such projects.

    28. Re:CS a branch of mathematics? by greg1104 · · Score: 1

      Lower-level courses are "taught" in giant halls where ethereal profs tend to cater to students who already knew the material before they got to high school

      You had professors who taught by showing dumps from ethereal? That's hardcore.

    29. Re:CS a branch of mathematics? by Anonymous Coward · · Score: 0

      If this is the case computer science departments should be much much smaller. The field you describe should exist, but it is also a tiny subset of 'computer things'. The majority of students who take computer science as a subject probably do not want to be restricted to this limited field.

      If that's what the Departments want they should be clear about it and turn over the students to a department that will teach the broad understanding that gives the students what they need.

      I don't actually believe that that is what computer science should be though.

      There is a field where you can teach languages, APIs, coding and testing pactices, That isn't computer science but some of that is at least prerequisite. There is a lot of stuff in the field of algorithms and data stuctures that isn't math intensive that I would place in the field of computer science.

      I have read CS papers that seem to have mathematics inserted into them for no good reason. I'm no math genius, I find a lot of papers hard going. It irritates me when I can read the example code and get a better understanding of what is happening and even why it is happening.

      The final insult is when those purist computer scientists try and work outside that tightly defined little area and write programs that they expect people to use. An algorithm that converts one carefully specified data form to another can be done in isolation. Human machine interfaces cannot. Hands up all those who have had to use a tool designed by an ivory tower computer scientist. Sucks doesn't it.

    30. Re:CS a branch of mathematics? by Rimbo · · Score: 2, Interesting

      I had the exact same kind of education from the University of Texas that you had. I graduated, got a Master's degree, and made my way into the work world, where I've been full-time employed for seven years.

      Working on embedded devices right now. Sometimes I'm doing web programming, sometimes I'm writing apps, sometimes I'm writing device driver stuff. We also have a PC app that I've worked on that communicates with the embedded devices -- a rich client. Because of my education, I'm able to move seamlessly from one to the other.

      I never have to say, "I don't know how to do that." New language? No problem. New paradigm? Nothing I haven't seen before.

      I can't understate how vital the education I got from UT's CS department has been. Because of the solid fundamental background I got in those courses, I can learn any language, develop on any system, and do it faster and better than guys who went to other schools.

      If you want to learn programming languages, tools, techniques... that's fine. Like another poster said, go to a vocational school. You can learn these on your own time... and with the background from the CS education I received, it doesn't take that long.

      If you want to be prepared for a long-term career, go get a university education.

    31. Re:CS a branch of mathematics? by ChaosDiscord · · Score: 1
      If you want a vocation, go to a community college or something else.

      I hear this repeatedly suggested. For most would-be programmers it's terrible advice. You might as well tell would be doctors, "If you just want to heal people, go to a community college. Universities are about education."

      As you say, the result of a solid CS education is general theory and skills that you can adapt to a wide variety of situations. If you want jobs more interesting than writing yet another VB frontend to Access you'll need that grounding.

      There are valid complaints about poorly focused CS programs with unreasonable math requirements. Yes, some CS work requires a solid grounding in advanced math. Most doesn't. You don't need 3 semesters of calculus to be able to reason about O() notation. Low level matrix math courses and perhaps statistics are more generally useful, but neither one has a calculus prereq. Unlike the grandparent, schools with these unreasonable requirements aren't afraid of vocational training, it's just historical. Many CS departments came out of mathematics departments and the link still lingers. CS majors do need some math to reason about CS, but not as much as many CS departments demand.

    32. Re:CS a branch of mathematics? by RodgerDodger · · Score: 1

      Then don't do a computer science course... do some sort of applied computing or software engineering course.

      Yes, 0.01% of real-world programmers give a shit about those things. But then, less than 0.01% of engineers would really give a shit about high-energy physics, as well.

      Computer _science_ courses should be about _computer science_.

      --
      "Software is too expensive to build cheaply"
    33. Re:CS a branch of mathematics? by lhbtubajon · · Score: 1

      Well, in 1994 your applied computing/software engineering major wasn't available. If you re-read my comment, you'll notice that I wished for BOTH hardcore computer science for those who want it AND an applied path for people like me. It didn't exist at the time, and that drove me away from CS.

    34. Re:CS a branch of mathematics? by lhbtubajon · · Score: 1

      Rimbo, I understand what you're saying, and I agree with your basic premise about a university education being a powerful underpinning of future success. That's why I have a university education, and a university master's degree, and am in school at a university for my Ph.D.

      Where we seem to differ is in what we consider "fundamental" to computer technology education. I started C.S. at Texas in 1994. At the time, there was no other option for CS-ish students. You either fit into that educational mold or you didn't.

      By the way, Hookem Horns!

    35. Re:CS a branch of mathematics? by Anonymous Coward · · Score: 0

      There is a field where you can teach languages, APIs...

      I suppose. But what APIs are you going to teach? Are we going to learn Java and Swing? Or Java and SWT? Or C++ and MFC? Those are all incidental to the more fundamental aspects even of just computer programming. A good programmer isn't made by knowing a bunch of frameworks. A good programmer is made by knowing how to make and use abstractions effectively. Languages and frameworks come and go, but knowing the fundamentals helps you evaluate and adapt to whatever comes into style next. And there are (as of now, at least) much better languages for teaching such fundamentals and concepts than the various languages du jour like Java and C++.

      I assume most computer science curricula have a "programming language concepts" course where you learn about several different styles of language. However, you don't just "learn Java and C and Lisp." What you learn is the fundamental paradigms that each brings to the table, and what the advantages and disadvantages of each are. That way you can hopefully recognize and apply where appropriate even in languages you haven't seen before. Learning all the ins and outs of the Java APIs isn't going to help you any there. It's just going to give you some knowledge that will soon be rendered obsolete by the Next Big Thing.

      coding and testing pactices

      Yeah. We had a course entitled "software engineering" that covered that. But then, I seem to recall having some kind of formal notation for various kinds of code coverage in testing. Should we eliminate that because it's too mathy?

      There is a lot of stuff in the field of algorithms and data structures that isn't math intensive that I would place in the field of computer science.

      Well, great. We'll call that "CS200: introduction to data structures." And then the people who want to do computer science can take the 300 - 400 level classes where they actually do the math to show why certain data structures perform well in certain situations, instead of just being told what data structures and algorithms are good.

      So, that's like 3 courses down. Now we just need to fill up 6 - 7 more semesters.

      I have read CS papers that seem to have mathematics inserted into them for no good reason.

      Well, I have no idea what papers you've been reading, so I can't comment. However, generally, if you're going to publish a paper on some data structure or algorithm that you're claiming works well, people are going to want you to demonstrate it. The way you do that is math.

      If you're a type theory and functional programming sort of person, which has been an area of plenty of research lately, then you're bound to run into mathematics, because a lot of the ideas are derived from category theory and algebra. You don't necessarily need to understand the mathematics to type in some code using the results, but if you want to understand how and why certain things work, you're going to need to have a vague understanding (at least) of the mathematical underpinnings, and computer science, proper, is concerned with such understanding, not day-to-day code jockeying.

      Mathematics is used because it's precise and well-defined. A snippet of Java code is not.

      The majority of students who take computer science as a subject probably do not want to be restricted to this limited field.

      If that's what the Departments want they should be clear about it and turn over the students to a department that will teach the broad understanding that gives the students what they need.

      If a student wants to learn the languages and APIs of the day, and is worried about landing a job hacking together yet another spreadsheet/web app for some company, I would suggest some sort of community college or DeVry or something. Seriously, I've seen commercials where they advertise things like their "school o

    36. Re:CS a branch of mathematics? by Bender0x7D1 · · Score: 1

      I hear this repeatedly suggested. For most would-be programmers it's terrible advice. You might as well tell would be doctors, "If you just want to heal people, go to a community college. Universities are about education."

      If you don't realize the absurdity of comparing a doctor to a beginning programmer, I can't say anything that will convince you. Now, community colleges do have nursing programs and other medical related programs, but there is no way they can hope to train a doctor. Even most universities can't do it - most offer pre-med programs which MIGHT get you into a medical school. Then, once you have done that, you get to be an intern for several years. If you want to specialize, add a few more years onto that. Now, at the end of it you know a lot about medicine AND have demonstrated your skills numerous times - more than most programmers ever will.

      Now, regarding CS programs... You miss the point of CS programs - they are to create computer scientists. I know that seems like a simple statemet, but it isn't. A computer scientist isn't a programmer, software engineer, network administrator, or a hundred other job descriptions. They are about computer science. This means math, proofs, algorithms and other things. How do you round out these skills? By taking a lot of different math courses. Now, in the real world, most graduates of a CS program become programmers, software engineers, admins, etc. However, this is because the skills they learn in a CS program can be applied to those roles and there aren't as many jobs for actual computer scientists.

      What you want is an Information Science or Information Technology department that teaches those skills. Some universities are starting to have them, but it is a slow start since many universities have changed their CS department to fit that role. However, just because we can use a wrench as a hammer, that doesn't mean that's what the wrench is for; and just because CS graduates can perform other jobs, doesn't mean that that is what a CS program is for either.

      --
      Reading code is like reading the dictionary - you have to read half of it before you can go back and understand it.
    37. Re:CS a branch of mathematics? by RodgerDodger · · Score: 1

      Depends where you go... in 1994 (which is the year I graduated from university), my uni started their applied IT course. Nor were they the first one to do so (in Australia, I know ANU had one in the early '80s).

      Personally, I _liked_ my Bachelor of Science (Computer Science)...

      --
      "Software is too expensive to build cheaply"
    38. Re:CS a branch of mathematics? by ChaosDiscord · · Score: 1

      In an ideal world what you suggest would be true, but we don't live in an ideal world.

      At the moment CS degrees provide the required breadth and earn the respect of potential employers. IT and IS degrees aren't yet ready, if only because they don't get the respect. So for today, someone who wants to be a programmer is best served by a CS degree.

      I'm not arguing that CS shouldn't have a math and proof background. I'm not suggesting that you don't need math, I'm suggesting that the requirements for math are often too high. I got my BS in CS from the University of Wisconsin at Madison. I now work there on a research project. (Obviously I speak only for myself, not my employer.) I'm friends with a number of people who are seeking or have received MS or PhDs from the UW-Madison. Most of them agree: third semester calculus was a waste of their time. Many (myself included) just barely squeeked through, then prompted forgot the lot of it. I certainly never used it in getting my BS. My SO never used it while getting her MS. If you can get a Masters degree without needing to use one of the degree's prerequisites at all, it's probably a poor prerequisite.

      CS is a broad field, coving cryptography, computer vision, computer graphics, networking, file systems, scheduling, distributed computing, databases, user interface design, programming language design, security, instrumentation, and more. Many of those fields of research simply don't need advanced math. You can engage in cutting edge research in, say, database work, or instrumentation, or distributed computing without ever dipping into calculus.

      I've known multiple people who have the skills and knowledge to get a CS BS but they couldn't get the degree because the math requirement was too hard. If the math requirements never tie into the majority of courses, it's a bogus requirement. For those courses where you really need the advanced math, just make it a prereq for the course. Those people who want to focus on the mathematical side of CS will self-select; to an extent they already do.

    39. Re:CS a branch of mathematics? by David+Off · · Score: 1

      > Computer science is about algorithms and computability theory and such.

      That's true in the proper meaning of the term but many CS courses are in reality CE or SE courses and do not in reality require the broad, in depth maths background.

      Don't get me wrong about mathematics, two of my computing heros are Alan Turing and Charles Hoare and one can't help but admire some of the mathematicians involved in encryption. But here were are talking about branches of mathematics where you may use a computer as a tool to speed up computation.

    40. Re:CS a branch of mathematics? by TheoMurpse · · Score: 1
      This was EXACTLY my experience at The University of Texas, where CS is really applied mathematics, with a focus on AI. I just wanted to learn to code cool shit.

      This was EXACTLY my experience at Architect School, where architecture is really applied mathematics and physics. I just wanted to learn to build cool shit.

      Then learn to be a construction worker, not an architect!
      Coding is not what college is about. You can learn to code C in your spare time. A university-level CS degree ought to teach you new ways of thinking, not technical skills; that is what a trade school is for!
    41. Re:CS a branch of mathematics? by lhbtubajon · · Score: 1

      >>Then learn to be a construction worker, not an architect!

      Right, well you can be a construction worker without an architecture degree. Try getting a real software development job in 1994 without a computer science degree.

      And the analogy is not...
      university degree : C.S. :: trade school : monkey coding

      The analogy we're discussing is perhaps...
      mathematics : C.S. :: art : software development :: sociology : human interface design ...for example.

      The fact that students have these options available today is great, but this is a recent development.

      And it speaks to the narrow thinking of some computer scientist types that they can only envision university-level educational programs that scratch the "scientist" itch.

    42. Re:CS a branch of mathematics? by querk44 · · Score: 1

      On the other hand, I just graduated from the UT with a degree in Computer Science, went through many of the same experiences you just described, and couldn't be more thankful for the approach taken by the department. If you thought Computer Science was learning to program, you, frankly, were just wrong.

      You are right that there wasn't a strong focus on specific programming skills, but the impetus behind the theoretical approach is that programming languages, development platforms, etc. are constantly changing, and a theoretical understanding of computation and logic just might serve you better and give you the ability to think and adapt. I didn't go into Computer Science because I wanted to be a professional programmer (I'm going to law school next year, in fact), I did computer science because I love math and computers, and it was a perfect fit for me. If all you want to do was learn to program, computer science isn't really for you, and it would really be a waste of time when there are trade schools for that requiring a lot less time and money.

      And yeah, the entry level classes are taught in huge halls with seemingly disinterested professors...welcome to a large public university with weed-out courses. I, however, found the upper division professors extremely engaging and helpful, and the things I have learned have already been invaluable to me in the work I do now.

      Eric

    43. Re:CS a branch of mathematics? by Rimbo · · Score: 1

      I started in 1991, so we're pretty contemporary.

      Hook 'em!

    44. Re:CS a branch of mathematics? by CptPicard · · Score: 1

      I don't begrudge UT for wanted to offer an applied mathematics program in their CS department, but I didn't want that, and was basically told that if I wanted to have a life where I did cool stuff with computers, I had to learn Diff. EQ, calculus-based engineering physics, and a whole lot of theory and proofs of CS (emphasis on the _Science_) concepts that perhaps .01% of real-world programmers actually give a shit about.

      Hmm. Strictly requiring differential equations and engineering physics is overkill for a pure CS program; although if you're going to code something in engineering or do physics simulations, you'll need that. To the rest of your complaint... no shit! It's almost as if you were in the computer science department of some fucking University! Who would have THOUGHT they teach the Science of computers!!

      Come on! Computer Science at University is SUPPOSED to give you the theoretical view of things, at the highest educational level, no less. Can you seriously tell me with a straight face that, even at a theoretical school, there should be no mention of Turing machines, the really FUNDAMENTAL results that follow from them, algorithm analysis, etc? Sure, a lot of rank-and-file programmers don't give a shit about that, but I can assure you that if NOBODY gave a shit about that, the fundamental development of computing would grind to a halt.

      That most programmers don't give a shit about the theory just suggests to me that most programmers should be educated at vocational colleges.

      --
      I want to play Free Market with a drowning Libertarian.
    45. Re:CS a branch of mathematics? by CptPicard · · Score: 1

      Computer science is about algorithms and computability theory and such. You're going to learn about AI and probably cryptology. You're going to learn about theoretical models of computing. Those are all heavily mathematical.

      Actually, just coming from a Master's program and having been there, done that, I wouldn't call it "heavily" mathematical in the Physics sense. It takes a mathematical inclination, but at barest minimum, you do manage with basics in logic, set theory, a few series that come up in algorithm analysis... then you just need to know how to write a proof with the stuff you learn in CS itself. I never had need for calculus beyond understanding the basic concepts of gradients; never needed to do an integral myself, as long as I could read them in the more complex papers I came up against in the latter phases of my studies. A lot of the mathematics -- I did do a minor subject on it -- is there to grow character, I'd say.

      --
      I want to play Free Market with a drowning Libertarian.
  58. Why can't Johnny design circuits? by LaughingCoder · · Score: 5, Insightful

    This is just a natural evolution. The same situation exists in hardware design. Very few young people can whip up a useful circuit with resistors, capacitors, and transistors. At my company we have 1 or 2 "dinosaurs" who invariably get called upon to solve problems in the hardware when it gets down to this level. Everyone is amazed when they throw together a quick little circuit with a breadboard and a few hand-soldered components. The simple fact is, more people don't learn to do this low-level type of work because there is not as much need for it anymore. But, and here is the rub, there will always be someneed. We'll always have to have a few folks around who understand the fundamentals. One could imagine as things continue to evolve, that these "low level specialists" could become quite expensive.

    --
    The more you regulate a company, the worse its products become.
    1. Re:Why can't Johnny design circuits? by FirmWarez · · Score: 1

      The underlying issue to those who "get it" is that programmers and engineers need to understand what they are doing, and not just connect high level blocks. Understanding the physics behind the behavior of basic electrical components is, to me, critical even for someone designing at the high level. Comp sci wants to treat the computer as a black box. Working primarily with embedded systems it seems to me that the best programmer is the one who goes beyond that approach, and learns what the box is actually doing. Since when is "insight" a bad thing?

    2. Re:Why can't Johnny design circuits? by LaughingCoder · · Score: 1

      Since when is "insight" a bad thing?

      "Insight" is not a bad thing by any means. To me it's more an issue of dynamic range. How deep can you really go? Mind you, I have always been one of those guys who wants/needs to know how it *all* works. I feel I am much more effective when I understand the lower layers. What has changed over my career however, is how low I have to go to be effective. For example, I no longer worry about the number of clocks per instruction anymore, though I used to have them committed to memory. I do, however, remain congnizant of the performance tradeoffs you make when choosing between floats, doubles and ints.

      --
      The more you regulate a company, the worse its products become.
  59. child who codes, another on the way by airuck · · Score: 3, Interesting

    I am a parent of a 10 year old boy and 7 year old girl. My son and I coded our first BASIC stamp robot (Parallax Boe-Bot) last year. He has since taken an interest in his 300-in-1 electronics kit, and modifying the games he plays on his Knoppix for Kids distribution (he often runs that over the Fedora and Ubuntu distros also available in the house). A few days ago he asked me how a web site works, so I am going to teach him a little html this weekend.

    My daughter plays the piano and has access to a MIDI keyboard. She and I have had a couple conversations about MIDI and was fascinated by the paper pipe organ we built. I just started designing a small, networked, pipe organ with the hope of demonstrating some programming and networking concepts to her.

    We have also built rockets, a trebuchet, and even kept bees together. I plan on dusting off my homebrew equipment soon.

    Children are never bored by the possibilities of technology. They need only to be exposed to something more than closed and highly polished consumer products. Even THAT is a wonderful lesson in repurposing if there is a hack around who cares to show them.

    --
    First entomology, then virology, and finally bioinformatics systems. Bugs follow me wherever I go.
    1. Re:child who codes, another on the way by try_anything · · Score: 1
      We have also built rockets, a trebuchet, and even kept bees together. I plan on dusting off my homebrew equipment soon.

      I can see having a sip or two at 10, but teaching your kids to brew their own might bring a child welfare worker to your door!

    2. Re:child who codes, another on the way by Anonymous Coward · · Score: 0

      No offence, dude, but your kid is damned to be an awkward fat virgin who just happens to love "japanese animation". You should have just gotten "snipped" a long time ago. I'm not even going to start describing what kind of hambeast it must be that has actually allowed itself (it, not she) to spawn your repulsive children.

  60. Shell Scripting, Jython, etc by joekampf · · Score: 1

    There are lots of shell type langages that you can start up and start typing in lines of code. One could consider a command(dos) prompt one of them (yuk). You can also use other languages that have shells like Perl and Jython/Python. Bourne Shell scripting is also another type. All of these languages allow you to just start typing in programs and executing them as well as write them to text files and execute them over and over again. Joe

    --
    When a man lies he murders a part of the world.
  61. Doomed either way by messju · · Score: 1

    I started with BASIC, Inmos-Assembler, Motorola Assembler then C. Later on I had a hard time abstracting from the machine when I had to learn LISP and Prolog because the "machine thinking" was burned in my brain.
    But I know if I first had learned LISP or Smalltalk then the way down to C, Assembler, Machine Language, Memory and Registers would have been equally hard.
    If I had to start over nowadays I think would start right in the middle with ruby (more abstract than C, less academic than LISP). But I would never ever start with a line oriented language nowadays.
    The reason why there aren't any line oriented languages is simply because there is no need for them: If you want to do some line oriented things: Learn C und look what the compiler makes out of it.

  62. What about assembly by mnmn · · Score: 1

    Assembly is as line oriented as it goes. Especially if youre reading disassembled code through JTAG.

    I've my head spinning around jumps and branches to various hex numbers, and cant say line programming languages are dead.

    But I do miss GWBASIC's simplicity. Anyone has a raw GWBASIC interpreter for the ARM7TDMI core?

    --
    "Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
  63. Payscale brainwashing by Dareth · · Score: 1

    "I know they're going to be fighting me for my job in a few years to come"

    We need to make sure these kids know how valuable these skills are and that they should not be sold cheaply. *wink*
    I don't mind competing on skill levels, especially if I have had a decade or two headstart. What I hate is to have to compete on a payscale level. I guess if the employer does not understand the value of that previous experience and they judge you soley on payscale, then the newbie kid developer who will work for $10/hr will win out everytime.

    The best revenge in a situation like that is knowing that they will get exactly what they are paying for and deserve.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
  64. Not so much the languages... by wanax · · Score: 1

    I think the main reason that so few kids today get into coding is that computers have become so useable for most tasks, that it's no longer necessary to program much yourself, too many things already exsist. For those of us who grew up in the 80s or 90s, home computers were new, tended to be kludgy and have a minimum of litter gadget type programs to do things that you wanted. The fastest way to create something like a calculator in dos was to write it in basic (and it was a fun exercise). Likewise, I spent many hours doing logo-writer programming on various projects (often for solving various geometry things) that I had. Other things that today we take for granted, like for example saved game editors, were unavailable unless you were able to get a hex editor and systematically edit the game looking for changes.

    These days, nearly all those things are included in the OS or easily available via web searching. There's no motivation to code yourself when the solution is a 10 minute google search away. The easy availablity and convenience of the web, and in fact the open source movement with all of the 80s and 90s tinkerer generation publishing their tinkering has removed that motivation that we all had to code in the first place for the next generation. While I agree that there isn't something as compelling and easy as logowriter out there today to get started on, I think the underlying cause is much more based on the sociology.

  65. What about Perl? by Petaris · · Score: 1

    I find it curious that with all the programming languages listed that Perl was not among them. Has Perl actually fallen that low below the radar, or is it not considered a line programming language? I am not a programmer but have set out to learn some basics, I have been working with shell scripts and Perl for the most part to do this as they were suggested as a good place to start. Oh and I also learned Apple BASIC in grade school, and played with MS QBASIC in win 3.1 and 95. Why don't they teach programming in grade school anymore?

    --
    ~Petaris "The world is open. Are you?"
  66. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Posting anon as I am moderating today (yes I moderated GP +1 insightful). I graduated 6 years ago and was on a CS path. We had to take a compilers course that the professor made unbearably hard and boring; so hard that people often moved to the CIS track just to avoid him. Unfortunate because it is not an easy subject and should be taught by someone with more patience and personality.

    The CIS track was the fast path to a programming job using RAD languages. While I whole heartedly agree that good programmers should have a good understanding of the actual mechanisms behind the code, that is just not what industry is pushing.

    So it's turned out that you can get a CS degree and hope to find a really high paying job traveling as a consultant (after a few years of experience), or you can more easily get a CIS degree and go work for your local bank for moderately high pay. .NET and Java jobs are just in higher demand and schools and students are catering to that need.

  67. Targeted hardware product, perhaps? by greysky · · Score: 1

    If we can buy a joystick that plugs into a tv and plays several old video games, how hard could it be to design a keyboard-form-factor device that plugs directly into a TV, has a basic ROM, and a small amount of internal flash storage? Give it a composite video out and a cheap internal speaker and sell it for $30. You could even put a CF reader in it, and sell educational programs online that can be loaded on a flash card and run on it.

  68. Re:Kids today...... :-) by Gr8Apes · · Score: 5, Insightful

    Unfortunately, without understanding the basics, all your higher level abstractions get you is unmaintainable abstractions. Understanding the base concepts is necessary to know when to abstract at higher levels, because then you'll understand what that higher level abstraction does for you.

    Does this mean you need to know about peeks and pokes? In today's world, I no longer think so (and there's that huge collective sigh of relief from students everywhere). But you should definitely understand how your language handles memory, even if you're coding in a language with GC capabilities. It keeps you from churning memory and slowing down your app to a crawl.

    --
    The cesspool just got a check and balance.
  69. Johnny could program Rapid-Q by dreemernj · · Score: 1

    I know its far from the most useful language but for programming basic yet useful or cool looking stuff Rapid-Q is awesome and free.

    I learned to program on QBasic because: 1) it's all I had, 2) it was very easy to program, and 3) it had a fantastic help file. Rapid-Q is easy to program and has a fantastic help file and there are tons of very simple but easy to understand samples out there.

    I think the help files are the key. The ability to hit F1 on every reserved word and see descriptions, parameters, code snippets, and related items is important.

    Rapid-Q definately has the ease of programming that QBasic did, plus it wraps around some simple DirectX functions and has a very simple Form creation tool so that people new to programming could definately get to the point where they are making windowed apps with 2D and 3D graphics, sound, interaction with the internet, etc.

    I still use it every now and then when I need to make a very simple program and it has to have a Windows GUI so that someone else can use it. It's fantastic tool. I see the REALBasic bought it years ago, but I haven't tried REALBasic. From the looks of it, I'd say thats a great language to start with too.

    --
    1 (short ton / firkin) = 89.1432354 slugs / keg
  70. Some truth to that by HangingChad · · Score: 1

    Blame ease-of-use culture; blame video games; blame stupid parents; but blaming the lack of access to programming languages is ridiculous to say the least.

    Sadly quite true. The good news is for those of us with will and the patience to dig into the details there's a whole world of cool things we can do that the Great Unwashed will never get. I have a friend who's an EE. Not one of the really out there EE's, she designs simple circuits. It's amazing what she comes up with. Just simple little gadgets. Programming is much the same. With a fairly simple programming language you can come up with some simple but very handy little widget programs.

    It doesn't bother me that much of the rest of the world relies on other people to package their functionality for them. Just like it doesn't bother me that most people let government package their water and electricity. If you want to depend on the grid for your power, that's fine. But give me my solar panels, wind turbines and Python any day.

    --
    That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
  71. BASIC should be included on every machine by 47PHA60 · · Score: 1

    Remember Bill Gates' open letter? The one where he berated people for copying the BASIC port he helped write on a government-funded university computer system? Now think about the past few years, where he has berated the educational system for failing to teach students about technology.

    Windows is still the predominant OS in the world. Microsoft could include the classic line entry BASIC with GUI wrapper, with a shortcut on the Desktop of a new installation.

    At least 3 of the Linux users I know who have children set up python or perl for their children to learn programming. The problem cited in the article is with the majority of computers today, Linux is a small part of the environment.

  72. Why not use a CAS to emulate Basic by e**(i+pi)-1 · · Score: 1
    The trouble with modern programming languages is that even simple programs need some initialization at the top. Basic did not need that and one could right go into programming. Even computer algebra systems can have a steep learning curve, if they come with a GUI and if they need libraries for the most basic things. Still, I think computer algebra systems can be tool to get started. But on the command line! (You want to get right into the programming and not have to learn the quirks and see all the complexity of the GUI). Here is an example in Mathematica (but Maple, Octave, Maxima or Matlab would work similarly since they all allow also to be accessed from the terminal). Of course, one should avoid higher level commands and consider even to avoid abbreviations like k++, procedures etc at first and try to emulate Basic. Even use Print and (heavens forbid) Goto commands (which Mathematica has implemented).

    Possible ways to start:

    1. Write a program which counts from 1 to 100
    Do[
    Print[k],
    {k,1,100}
    ]
    2. Write a program which computes 100! = 1 . 2 . 3 . .... 100
    k=1;
    Do[
    k=k*j,
    {j,1,100}];
    k
    ]
    3. Write a program which checks whether a number is prime
    n=1212313;
    message = "is prime";
    Do[
    If[Mod[n,k]==0,
    message="is not prime"; Break;
    ],
    {k,2,Floor[Sqrt[n]]}
    ];
    Print[message];
    5. Build this as a reusable procedure
    primeq[n_]:=Module[{},
    isprime = True;
    Do[
    If[Mod[n,k]==0,
    isprime=False; Break;
    ],
    {k,2,Floor[Sqrt[n]]}
    ];
    isprime
    ]
    6. Make this program more efficient

    7. Compare your procedure with the built in PrimeQ
    Do[
    Print[PrimeQ[n]==primeq[n]],
    {n,2,1000}
    ]
  73. Re:Kids today...... :-) by Tim+C · · Score: 1

    Those classes have been replaced by Java, where you don't even worry about resource leaks. Hey, garbage collector takes care of it!

    If you don't worry about resource leaks then you are doomed to suffer resource starvation the moment your website starts getting a decent amount of traffic. The garbage collector is not a panacea; it means you don't have to worry about calling free() or an object's destructor, but you still have to clean up file handles, db connections, etc. There is no guarantee that your object will ever be reclaimed by gc, and certainly not in time to free up a scarce resource before you run out.

  74. Where'd all the Basic go? by randomErr · · Score: 1

    Um well, there still out there. Really old stuff can run through emulators. You have newer free stuff like VB5 Control Creation Edition, and VB.NET Express. And then you have systems like Freebasic expanding on QuickBasic.

    Basic is still out there; though I wish they still included QBasic with Windows.

    --
    You say things that offend me and I can deal with it. Can you?
  75. Oh Brin needs to get out more. by khome · · Score: 1

    There are dozens of fine linear languages. If anything, there are too many choices.

    Basic is OK, as long as you drop the line numbers and stick to the function calls. What's good about Basic is that it's accessable from many useful products, Word Basic, Excel Basic, and there's the Basic called Lotusscript.

    There are many good C and C++ compilers and IDE's. I like Bloodshed. It works well. For all the weirdness of C++ and C, it's not a bad language if you stick to K&R and learn the fundamentals.

    For the truly bold, search for Hercules/390, an open source mainframe emulator that runs IBM mainframe operating systems and applications. Download it onto a used $100 Pentium IV box and run mainframe compilers and applications faster than the biggest 1980's mainframe.

    It's about knowing what to pick. Everything anyone wants is there. The problem is that there is too much blather and distraction and every soft major who "saw" a computer once, thinks they know this business.

    Here's a telling story. Recently, I overheard a big dollar, suit-consultant say that the problem with Computer Science curricula is that they don't teach "the important stuff, you know, like Microsoft Office Products, how to use Outlook Express."

    At first I was too shocked to reply. Then I thought it was an anomaly. Now I'm not too sure.

    In a world where GNU C and the Bloodshed IDE are free, a "writer" is telling nerds that there are no linear programming languages left and that's the reason that kids don't learn algorithm development.

    We gotta take back {slashdot, business, the industry, America, the world}, if you can't program in one assembly language, one linear language, and do not know automata theory, please, sit in the corner and keep quiet while your betters make things happen.

    There are too many blatherers, meeting attenders, and Dilbert boss-types who think they have an opinion. Let's get rid of them and take over. Who's with me?

    -khome-boy

  76. I'm the last real programmer! by Anonymous Coward · · Score: 0

    I emulate OO in C and laugh about everybody else!

    Ah, well... better living from social welfare and writing code for my own projects than living in a concentration camp for programmers and being forced to turn nightmares into trend-programming-language-realities.

  77. A problem that goes beyond the languages... by grahamtriggs · · Score: 1

    Getting kids to program has far deeper issues than availability of languages. Yes, it's helpful if a language comes with the machine / OS, but it's not the end of the world if it doesn't - you can easily download one if you have the desire.

    The real issue is to give kids a reason to program. The first machine I ever owned was a ZX81. I didn't have any storage devices, so everything I ever got the machine to do was from entering program listings from magazines. Even as I moved on to machines like the Vic20 and C64, there were still magazines that gave lots of 'simple' programs for you to play with, and books with simple games (and the games that you could buy weren't so advanced that they made the ones that you took from magazines seem trivially simple and boring).

    Without ever consciously deciding to learn programming, I had picked it up simply from my interest in getting bits of electronics to do cool and (seemingly for the time) unusual things.

    And that's what is missing now. Where is the impetus for someone to choose to program? Deliver a simple programming language with the OS, and people will most likely not even know it's there, or ignore it even if it is.

    1. Re:A problem that goes beyond the languages... by ThePhilips · · Score: 1
      The real issue is to give kids a reason to program.

      20 years back computers were something new - something fresh. Whatever anybody did - was very new. NAd new is always interesting. Not that we have had any reasons. It was just new.

      Now everybody knows what computer is. It's old news. Computer moved from being something new to being something like hammer. We all have them at home. Just in case.

      Where is the impetus for someone to choose to program?

      When you show kid that he can screw computer to his own liking - most stick to programming very fast. They like idea of screwing something. Though only few kids would consider screwing computer worth time. They have many more dis/attractions this days: game consoles, mobile phones, smart phones, etc.

      Also I have to admit that most of the modern kids understand programming pretty fast and naturally. For my parents cascading menu is something barring them from using mobile phones. But kids they already understand that computer as tool already different from hammer - computer has state, while hammer is stateless. My parents' mentality cannot accept device with state more complicated than TV: turned off, warming up, turned on. Understanding of statefullness & flexible interfaces - are all major cornerstones of programming. For example my friend spent two years to learn somehow BASIC in school - that was 15 years ago - his older daughter needed only 4 lessons now to start writing small computational programs in BASIC. Not that you would find her programming - she'd rather go party with friends.

      --
      All hope abandon ye who enter here.
  78. Lottery by Anonymous Coward · · Score: 0

    Phfft! Who needs to learn how to program when you can make millions just by buying a lottery ticket for US$1!

    (BTW, that was sarcasm, although, it is a reality for more and more people.)

  79. Re:Kids today...... :-) by Sir+Runcible+Spoon · · Score: 5, Insightful
    That's right, and the other point made was that BASIC was always there. Your average kid knows how to turn on the machine and insert a game disk to start a game. In the past there was an intermediate step and it looked like this:

    Ready>

    Before they did anything else they were writing programs. Simple ones that started the game. Next they were playing with loops:

    10 PRINT "Big Tits"
    20 GOTO 10

    And er, ... well, ... the rest just followed.
  80. languages by arsenix · · Score: 1

    There are quite a few simple OSS languages out there that kids could learn on. There are logo implementations (yeah logo!), and some basic packages if they want to do less visual stuff. Unfortunately finding such gems in the sea of the web requires some dedication and time, probably from the parents. Non-geek parents who didn't play with this stuff as a kid are unlikely to figure it out for their kids.

    James

    --
    (this is offended to the end of comments you post, 120 chars)
  81. Bring Back HyperCard by NutMan · · Score: 1

    One of the easiest to learn programs I've ever worked with was Apple's HyperCard. Although the user interface was clunky and didn't follow Apple's Interface Guidelines very well, practically anyone with half a brain could work with it and create something useful.

  82. Re:Kids today...... :-) by CastrTroy · · Score: 2, Insightful

    However, there's plenty of time in your 4 years of college to learn Assembly, C,C++,Java, and a plethora of other languages. If you're talking about those 1 year career colleges, well, then that's another story completely. You can't learn how to program in a year, no matter how intensive the program is. I've known quite a few people who went to those one year career oriented schools, and they couldn't program their way out of a paper bag. The simple thing is, is that you need a large basis to really understand how to program.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  83. Author didn't even explain his own point. by bob · · Score: 1

    It is silly to suggest that there are no easily-accessible programming languages shipped with computers today; most come with at least two or three (if you count the command interpreter and Javascript), many come with dozens. Anyone with the littlest initiative could obtain free assemblers, compilers or interpreters for dozens more, just by connecting to the Internet. This would have been an embarrassment of riches when I started tinkering with personal computers in the early 1980s. And these languages range from the trivial (e.g. old-style BASIC) to the inscruitable (ADA anyone?). The motivated individual can get as close to the hardware as (s)he wants, with assembler or Forth, or as abstracted as desired, with for example XSLT. What is missing is not a simple-to-use language, but rather a lingua franca: A language that virtually everyone the least bit interested in computers is familiar with and has a facility for running, and -- importantly -- may be used to implement just about anything that people are currently doing with computers.

    Put this way, I think that everyone can see the problem and the reason why the author's goal is mere fantasy. Today, people just do too damned many things with computers, and there just is no single language that is appropriate for all those tasks. Moreover, I suspect that the number of kids, or possibly even the percentage of kids who are coding up useful stuff is comparable to, or likely greater than, the equivalent figures when he was copying BASIC programs out of textbooks. And if all he was doing was copying programs out of textbooks and running them, maybe changing a line here or there, such an activity would today just be a tremendous waste of time. Nobody hand-copies code anymore, they download it from the Internet, and I expect that number of kids doing this is huge compared to twenty years ago. The running it, and tinkering with it, still happens, one just gets to that point a whole lot quicker.

    I will also say that, if the author thought that learning BASIC was equivalent to understanding what was under the hood of his computer, then he clearly was not around when people were building Altair kits, programming drum cards for an 029 keypunch, or wire-wrapping backplanes. Certainly his elders looked down on his generation of BASIC-writing dweebs as little more than coddled dilitantes who would never truely understand the technology.

    I'm sorry, but you just can't go home again.

    1. Re:Author didn't even explain his own point. by try_anything · · Score: 1

      I think you're on to something with the lingua franca. I learned BASIC on Apple IIe computers, and I remember coming across an IBM-compatible in someone else's school, somehow getting into BASIC, and writing and running complete programs. I remember that some of the Applesoft commands for moving the cursor around on the screen didn't work, and I couldn't figure out how to renumber lines. Other than that, it was all the same.

      That isn't just a lingua franca, it's an entire programming interface, and it let me transfer my knowledge from the Apple II line to its mortal enemy and diametrical opposite, the IBM-compatible!

      And guess who we have to thank for that? (Hint: Replace the first five letters in "Applesoft BASIC.")

  84. Ruby is perfect for this! by dapendragon · · Score: 1

    Ruby is a perfect language to learn programming in. It has an excellent command line mode, and the syntax is easier to learn than most languages. As easy as BASIC, yet relevant for use today, and much more powerful. http://www.ruby-lang.org/en/

    1. Re:Ruby is perfect for this! by Junks+Jerzey · · Score: 1

      Ruby is a perfect language to learn programming in. It has an excellent command line mode, and the syntax is easier to learn than most languages. As easy as BASIC, yet relevant for use today, and much more powerful.

      I disagree. Ruby is good, don't get me wrong, but it's still not nearly as simple to pick up as BASIC and, more importantly, you can't just sit down with Ruby and start putting pixels up on the screen. Here's how I learned to do graphics on an Atari 800:

      GRAPHICS 7

      Now I'm looking at bitmapped screen with a few lines of text at the bottom, so I can still type commands.

      COLOR 1:PLOT 10,10

      Now I have a pixel on the screen. No page flipping. No waiting for vsync. No buffer flushing. No external libraries.

      DRAWTO 50,50

      Now I have a line.

      Lots of harder problems are tons simpler in Ruby, but not stuff like this.

    2. Re:Ruby is perfect for this! by dapendragon · · Score: 1

      I never claimed Ruby can do everything BASIC does or vice versa. BASIC was an excellent teaching tool back when it was actually being used (or even misused as an OS in some cases), but that does not mean it should be kept anymore.
      Line by line Ruby IS as simple to pick up as BASIC, and putting pixels on the screen is nowhere near as important as learning the basics concepts, such as objects, variables, control statements and so on.

    3. Re:Ruby is perfect for this! by SanityInAnarchy · · Score: 1

      External dependencies are such a non-issue it's not even funny. Ubuntu comes with Firefox, does that make Konqueror a less valid Linux browser? Oh, boo hoo, you have to type "apt-get install konqueror".

      Now, considering drawing the pixel on the screen, all you need is a decent library.

      More importantly, unless you NEED to be able to draw pictures to get them interested in the first place, why do you need graphical capability?

      Anyway, my own answer to all of these would probably be Squeak. Given OpenCroquet, and you can do 3D games.

      --
      Don't thank God, thank a doctor!
  85. Re:Kids today...... :-) by schiefaw · · Score: 1

    There are a number of problems happening all at once.

    1. It has not really sunk into the heads of the common man that getting a CS degree is the road to easy money. Many still go into CS for the cash, and are just not suited for it.

    2. Programming is like carpentry. Most people can do some of it, but only a few become masters of the craft. There are a lot of kids who have made their own web pages and maybe cracked into some remote systems so they think they are experts. They have no idea what it means to be a Software Engineer.

    3. The schools are busy teaching Math, not problem solving. I understand that Math does involve many problem solving skills, but the problems take place in a world of absolutes. I have written some rather complex algorithms, but I have not used much Math to do it.

    4. Look at society in general. The tenor of the political discussions should tell you how much the majority of the population is interested in deep thought. Answers that take more than 20 seconds to develop are just not in style.

    --
    Angleyne: You can't bend that girder - it's unbendable! Bender: Well I don't know anything about lifting, so that ju
  86. Re:Kids today...... :-) by Placido · · Score: 1

    Although if they don't have to learn some of the underlying foundations because it's handled automatically then they can focus on higher level programming and putting together building blocks to make new and more powerful systems.

    I think of it similar to engineering. Structural engineers don't need to know how to make concrete with the features they require... but they do need to know the different features of different types of concrete and what the limits are.

    If the foundations are solid then you can tell them to trust the foundations and concentrate on the building.

    --

    Pinky: "What are we going to do tomorrow night Brain?"
    Brain: "I would tell you Pinky but this 120 char limi
  87. Re:Kids today...... :-) by CastrTroy · · Score: 5, Insightful

    Do kids today that are interested in soccer not think it's fun because they can't bend it like Beckham the first time they kick the ball? Do people who like woodworking stop because they can't build a perfectly constructed table and chairs, and instead can only build a crappy bird house? I don't think that's really the problem here. Sure there's going to be some kids who are discouraged because they can't program Doom 3 the first time they sit down and code. But those probably aren't the kids who would end up having a career in computers anyway.

    --

    Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  88. Horowitz & Hill by Anonymous Coward · · Score: 0

    Horowitz & Hill?

    There's a great lab manual that goes with the classic introduction to Electronics by Horowitz and Hill.

    Over a series of lab projects you build a small computer more or less from scratch. The "final" is to program your computer in machine language (motorola 6800) to do something useful.

    You more or less learn exactly how a computer works.

    After you finish, move to a higher level language like python. You'll appreciate it's sophistication but you'll understand how it all works underneath.

  89. Javascript by ultrafunkula · · Score: 1

    That's what I thought too. In fact, how about Javascript? Nearly every machine will have a web browser, and all you need is a text editor to make a simple Javascript. Although it's quite restrictive it's a good introduction to many key programming concepts.

  90. Re:Kids today...... :-) by Mr.+Underbridge · · Score: 0, Troll

    I was coding 1000 line programs in BASIC at age 8,

    Of course no one could have debugged that spaghetti crap...

  91. Why can't Johnny become a dinosaur? by Anonymous Coward · · Score: 0

    A valid point. There's also the simple fact that there are other things that "Johnny" could be doing. Why is it a bad thing that Johnny doesn't program, or become a programmer? Why not write a story condemming the fact that there aren't more "shade tree mechanics", or more mechanics in general? That's as big a loss as the other. Right?

    "One could imagine as things continue to evolve, that these "low level specialists" could become quite expensive."

    Y2K and Cobol, or RPG.

  92. Right and Wrong by hey! · · Score: 1

    TFA:
    The "scripting" languages that serve as entry-level tools for today's aspiring programmers -- like Perl and Python -- don't make this experience accessible to students in the same way. BASIC was close enough to the algorithm that you could actually follow the reasoning of the machine as it made choices and followed logical pathways.

    The crux of this argument is more interesting than it appears at first.

    It is simply not true that BASIC exposes the way the inner computer works. You need assembler for that. The ability to code arithmetic expressions for example is huge. Underneath, you have to manage a lot of resources. The IF/GOTO statement is therefore tremendously more powerful than anything in assembler, because it creates an abstraction which hides the need to manage resources. The FOCAL language available on the PDP-8s was much closer to assembler in this regard: it's IF statement looked like this: "if (VARIABLE) L1 L2 L3", which would branch to L1 if VARIABLE was less than zero, L2 if equal to zero, L3 if greater than zero.

    But BASIC -- the kind of primitive BASIC early BASIC languages he means, has a dearth of control structures, and those that are there are very primitive: goto, gosub, if/goto, if/gosub, and ON GOTO.

    What makes this interesting is that one basic intellectual skill a programmer needs when handling an advanced task is the ability to transform a problem into a different representation. Thus in paleo-BASIC, with its bronze age era control structures, implementing algorithms forces you to represent the algoritm in terms of more primitive data structures. For example if you want to recursively search a graph, you have to represent the attributes of the nodes in the graph as a collection of arrays, you have to create your own stack in an array, you have to implement the recursion using gosubs and a global stack pointer variable.

    However, there is another critical intellectual skill, the habit of which BASIC undermines: the ability to abstract. You must be in the habit of taking your implementations and hiding the details so that sloppy assumptions don't propagate through your code. By way of contrast, LISP is an excellent language to teach abstraction with, because letting your implementation "all hang out" results in an impenetrable thicket of parentheses.

    What really discourages both these intellectual habits are RAD environments. The point of the RAD environment is that you are given ready made abstractions that you bolt together. A great deal of the time you can do everything you need to solve a problem by painting the components and throwing in a few simple event handlers. This is a good thing, but it encourages laziness and mediocrity because by making the problem easy to solve, the gap between an adequate solution and a good one is greater.

    If you are really interested in fostering coding skills, then start with a language that encourages abstractions, like Python. Then give interesting and challenging problems that will exercise the intellect's "transormation" muscles. The kinds of things kids did back in the day with BASIC won't do the job.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    1. Re:Right and Wrong by ClosedSource · · Score: 0

      Perhaps another difference is that in the old days the main goal was accomplishment, making something happen.

      Today there is much more concern for using the latest hyped language, doing things the "right" way, using the "right" license etc. Rather boring compared to getting the lights blinking.

    2. Re:Right and Wrong by calidoscope · · Score: 1
      The FOCAL language available on the PDP-8s was much closer to assembler in this regard: it's IF statement looked like this: "if (VARIABLE) L1 L2 L3", which would branch to L1 if VARIABLE was less than zero, L2 if equal to zero, L3 if greater than zero.


      That's the Arithmetic IF from early FORTRAN (ca 1956) that relied on an instruction from an early IBM computer and still available, though deprecated, on current Fortran compilers.

      --
      A Shadeless room is a brighter room.
  93. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Python with goto!

  94. On that note by Nichole_knc · · Score: 1

    All hale the mighty AMIGA!!! I have 3 and can still do more on them then I will ever be able to do on a clone... BTW that is what the machine you are using is... Just a clone...

  95. mathematics killed hobbyist programming. by Anne+Honime · · Score: 2, Insightful
    I have been thinking it is due to a few reasons. First off, it seems that math education is sorely lacking in many college students.

    Pleeeeeaaase... that's still the mantra I was hearing when I was 13 and happily beginning to code (in 1985). Why would 'we' be prevented from the right to code if 'we', litterature oriented people, despise mathematics ? There is still SO much to do with only 4 operations ! Granted, I won't dwelve into image processing, signal analysis or those fields where a strong math background is required. But I have a thing for databases, and in the 90's I was making nice applications to manage library catalogues. In Clipper, no less.

    Well I'm not a programmer, save some hobbyist gadgets when I need them now, but I still can code some ASM, Basic, and C. When I feel the need, I'm not afraid to alter some parts of a GTK+/C program to better suit my aim. And I've never felt the urge to become a mathematician.

    I think the mathematical mindset requirement is in fact more a deterrent for wannabe young programmers ; nobody knows how much good and creative ideas it cost the world to leave so much brilliant people at the door. Professionaly, I struggle everyday with mathematicaly clean softwares, written by certified engineers, softwares that are blatantly unfit to the mindset of my lawyer job. I have millions of ideas to improve the workflow I'm forced to follow, but when I bring them on the table, I'm sneered at because "I can't possibly understand computers". Stupid assh*les, I've had 3 time more computers in my life than them. But I need to eat, so I back off and go back to my paid work.

    It's not really different than before when I was a teen. We had one of the first computer lab in school, but the management of it was trusted by our mathematics and physics teachers. Access to the lab was granted as a reward for good science pupils, no need to say I've never seen those computers closer than 10 meters away. That's because I strongly felt frustrated at the time that I pressured my parents into buying me a Tangerine Oric 1.

  96. Re:Kids today...... :-) by arivanov · · Score: 3, Insightful
    It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
    -- prof.dr.Edsger W.Dijkstra

    IMHO Dijkstra is right and you are wrong. BASIC is a horrible language for learning to code and it is the wrong language to learn to code. It is not designed as a learning language. It takes the worst out of FORTRAN and mutilates it even further.

    There are languages that are designed for that purpose and allow people to learn to code without mutilating their brain beyond recognition. I learned to code rather late (at the age of 14) and I had the opportunity to chose between Pascal, GraphFort, ASM (6502 and x86), Logo and BASIC. I learned them in exactly this order and used BASIC only in the rare occasions when the school forced us to work with it on 6502 based Apple ][ clones that could not do anything better. Even in that case I had a list of procedures which simulate recursion (and a few other suspects from "adult" languages) memorised so I could code in the horrid presudolanguage puke.

    The problem with "Johnny can't code" is elsewhere. Johny does not have the stimulus to code. At all. In most households he is introduced at an early age to the computer as a toy and treats it as a toy while growing up. He does not look at it as a toolkit to assemble something usefull. He has no incentive to write anything in the first place and is getting less and less incentive as the personal computing continues to devolve to joe sub-average level. If you want Jonnie to code his parents have to provide him with a challenge which can be satisfied only by coding it. We grew up with it, trying to write a few "adult" programs which we (the adults) clearly know to be beyond Jonnie's patience and skill have not killed anyone. If Jonnie's parents have not bothered to provide him with such challenges and the tools to work on them (books on a real programming language), they should not bitch that he has no chance to become a programmer.

    --
    Baker's Law: Misery no longer loves company. Nowadays it insists on it
    http://www.sigsegv.cx/
  97. Re:Kids today...... :-) by MioTheGreat · · Score: 1

    .NET languages too. I've done quite a bit of C# coding with notepad++ when Visual Studio wasn't readily available (School computers.).

  98. So what about QBasic? by siesta+at+uni · · Score: 1

    Came with Windows 95, surely would run on newer windows systems?
    http://en.wikipedia.org/wiki/Qbasic

  99. Re:Kids today...... :-) by Shaper_pmp · · Score: 4, Interesting

    What does learning about the underlying system help with in programming?

    Architecting beautiful code? Nope.
    Learning powerful, high-level abstractions? Nope.

    Programming efficiently to the hardware.

    With computers getting ever-faster and more advanced, coding efficiently is less and less important than it used to be. Efficient algorithms are still pretty important, but that's more about using matrix calculations and streamlining progam flow than about the intricacies of memory-management and choosing where on the hard disk you place your data for minimum retrieval time.

    Witness the rise of interpreted languages like Perl/Ruby/PHP. Look at how semi-compiled bytecode languages like Java and the .NET stable are more mainstream than C/C++/whatever.

    Don't get me wrong - I first learned BASIC, then C, then C++ and a bit of assembler, and I wouldn't trade this knowledge for the world. Nevertheless, now when I write C# code which is compiled to MSIL/.NET bytecode, which is then interpreted by the .NET runtime and turned into CISC instructions which are sometimes even then converted into RISC instructions... what exactly should I be coding to? How can I know what's happening to my code after it's run through 4 or even 5 levels of automatic conversion?

    These days kids are learning how to use high-level tools first, and only learning the lower-level stuff as they get better and better. Sure this means an awful lot of nasty, bloated beginner-level PHP and VB.NET, but by the time they're ready to tackle compiler design they've generally already picked up the important bits as they go.

    When we were learning code we'd write crappy code in BASIC/C, and it'd sit on our home PCs and never go anywhere. Now when a kid writes crappy PHP or VB.NET it's generally posted to a forum or used to run their website, so of course it's more visible.

    We all wrote crappy code when we were learning, irrespective of the language. Certainly, I know I wrote some BASIC/C code that makes me cringe when I think of it now.

    --
    Everything in moderation, including moderation itself
  100. Just another old fart by famebait · · Score: 1

    Jesus, what a grumpy and blind-to-everything-new aricle.

    Javascript ships with all the major browsers. You can do line-by-line programming just fine for all those simple tasks, and use "alert" as your output. As you need more sphisticated output, you can learn document.write and then move on to manipulating the DOM, thus gaining an easy, early and intuitive understanding of simple object orientation.

    Several of the languages he mentions (perl python) also allow perfectly well the line-by-line stuff he complains about, but they're not installed by default on a PC. BASIC closer to the metal? Sure, Basic is simpler to implement than Perl, but these kids aren't implementing languages. And the BASIC interpreter's primitiveness in no way translates to the programmer following what the machine does any better than, say, Javascript does. You assign to variables in both. To a novice it is of no account whatsoever how much exstra occurs behind the curtian when you do that.

    --
    sudo ergo sum
    1. Re:Just another old fart by ab762 · · Score: 1
      Verily, fellow old fart. The Windows Scripting Host (WSH) makes javascript an attractive way to do quick little programming tasks, on a Windows box (shock, horror). And you can do serious things with it easily.

      On a recent Mac, there's the shell of your choice.

  101. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Here's the single most important reason why coding skills are on the decline: Being a good programmer doesn't pay. Children learn that money is in having people work for you or in trading, and they're right. The dude who creates amazing algorithms and knows how to code them efficiently is going to make less than his boss who can't tell HTML from C. If you want better coders, there's the problem that needs to be fixed. Or you could trust the market which says that good programming is actually not that rare and good business skills are a lot harder to come by.

  102. Re:TO EDITOR -- FIX TITLE by GundamFan · · Score: 1

    Yeah that's cool. :)

    --
    I don't give a damn for a man that can only spell a word one way.
    Mark Twain
  103. And why do they need to? by GlobalMind · · Score: 1

    This assumes that coding is what every child needs to do to be an IT professional. This is of course in the "real world" of enterprise IT, a flawed view.

    If the kid wants to code then they'll find a way to do it. Personally however, I run into more folks who can't admin an enterprise system for crap but act like they can. Folks with attitude because they code. Woo hoo, good for you. Being a programmer isn't a prereq to being in IT.

    Give me a qualified sysop who knows how to deal with performance tweaking, planning, migrations, backups etc...and how to kill off that app when the programmer screws up. ; )

    Teach that in our universities.

    K.

    1. Re:And why do they need to? by sedman · · Score: 1

      I've been doing IT for 20 years and I can tell you that if you are doing IT without coding, you are doing it the hard way. You are also probably not doing a very good job.

    2. Re:And why do they need to? by GlobalMind · · Score: 1

      Yep me too, and I can tell you that today you don't need to be a proficient programmer to properly admin a system. No student should ever be told that if you're going into IT then you MUST be a programmer. There are too many facets of the business to suggest that.

      Certainly there are some things you can possibly do better, especially automation etc but my point is that it is not a prereq for getting into IT. The message is both sets of skills are required and they don't have to be in the same person.

      I have known dozens of guys who were programmers who did not have the slightest clue how to properly configure a system for optimal performance or heck even how to manage output, users etc.

      K.

  104. Re:Kids today...... :-) by ultranova · · Score: 2, Informative

    c, c++, java, perl, python, php, pascal, javascript, whatever - you can write all your source the old way - line-by-line, and most of us do. Heck, even Delphi, one of the better IDEs, doesn't require the IDE environment if you really want to go the type-in-all-the-source route. Last I looked, both c/c++ and java were available for free for all the major platforms.

    None of those are line-oriented programming languages. They are block-oriented and some of them are object-oriented programming languages. A line-oriented programming language looks like this:

    10 print "Hello World!"
    20 goto 10

    A block-oriented programming language looks like this:

    int main(void) {
    while(true) {
    fprint("Hello World!\n");
    fflush(NULL);
    }
    return 0;
    }

    And an object-oriented one looks something like this:

    public class HelloWorld extends Object {
    private class NoMessageException extends Exception {
    public NoMessageException(String cause) {
    super(cause);
    }
    }

    private final String message;

    public HelloWorld(String message) throws NoMessageException {
    if (message == null)
    throw new NoMessageException("No message.");
    this.message = message;
    }

    public void printMessageInEndlessLoop() throws IOException {
    /*
    * Some subclass in some distant future might throw IOException,
    * so better make everyone catch it already.
    */
    while(true)
    System.out.println(message);
    }

    public static void main(String args[]) {
    try {
    HelloWorld world = new HelloWorld("Hello World!");
    } catch (NoMessageException e) {
    System.err.println("No message ?!? AARRGGHH!!!");
    }
    try {
    world.printMessageInEndlessLoop();
    } catch (IOException e) {
    System.err.println("Got IOException, exiting...");
    }
    }
    }

    I realize that there's easier ways to do it with Java than the one shown, but as many in Slashdot have said, the guy who doesn't produce code that makes a computer science professor get an orgams by just reading it is not going to get a job - I'm talking to you, whoever it was that said that using a goto results in automatic rejection of the applicant.

    So, anyway: if you were a kid, you might write the two-line Basic script, or even the C one; but would you bother with Java, or would you give up ? And more importantly, since kids mostly learn from other people's code at the beginning: which code is the easiest to reverse engineer ?

    --

    Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  105. Want to get your kids into programming? by Barts_706 · · Score: 2

    Buy them new Lego Mindstorms NXT - with the ease of graphical programming and instant results they may see the results quickly enough not to get discouraged. I think it might be an option.

  106. Anyone try "Alice"? by lthornto · · Score: 1

    http://www.alice.org/

    Alice is free from Carnegie Mellon University made just for kids.
    At Version 3 they are getting help form the people at Electronic Arts to be able to include the Sims characters.

    My 14 and 12 year old have had a lot of fun building programs with this.
    It has it's limitations but it's a great start.

  107. Re:Kids today...... :-) by tobiasly · · Score: 1
    Part of the problem is that projects suitable for newbie programmers are no longer interesting to those programmers. They've been brought up in a world of sophisticated graphics and they want to be able to produce the same very early in their learning process. That isn't possible for them, so they lose interest.

    Not only is it not interesting to them, it's not necessary. When I first started learning computers, you couldn't do anything without doing some programming yourself. Computer magazines came with programs printed in them that we typed in by hand. Who wants to do that today with the Internets?

    I would argue, though, that this "problem" isn't even a problem at all. Who cares if most people can't write computer programs? When cars first came out, they came in kits you had to put together and always tinker with. Now most people couldn't describe how an engine or transmission works. But really, who cares?

    Only people who are interested in how cars work tinker with them. Only people who are interested in how computers work tinker with them. That's progress in my opinion, not a problem to be solved.

  108. Re:Kids today...... :-) by januth · · Score: 1

    BASIC is a very easy language. Hell, I taught myself BASIC on a Commodore VIC-20 in 1982 at the age of 12. I didn't comment my code because you only had 3,583 bytes of memory to work with on the standard machine...but I learned enough on my own to breeze through a first-year college course using PL/1 while I was still a junior in high school. But that's just me; I also coded uphill both ways in the snow. As for math skills, a few of us in my office had quite a laugh yesterday when we went out to lunch. The kid working the register at the store just shutdown and looked at me with a blank stare when, after ringing up my $5.50 tab, I first handed her a $10 and then offered her another $0.50. She quite literally could not comprehend what to do. When our high school kids can't make change, we've got a problem.

  109. Basic is still ok, Tcl/Tk is ok, shell is ok by porttikivi · · Score: 1

    Well, there is always some sort of BASIC available. And it is good, because you can really build your system incrementally and interactively one line a time. Here are all the keystrokes you need. No editors, IDEs or compile cycles!

    <Launch the BASIC interpreter from menu>
    10 a=0 <Enter>
    20 a=a+1 <Enter>
    30 print a
    40 IF a < 10 THEN GOTO 10 <Enter>
    <fix errors by retyping the line with its number>

    A little different, arguably easier, arguably much more elegant would be to use Tcl:

    <Launch Tclsh from menu>
    set a 0 <Enter>
    while {$a < 10} {incr a; puts $a} <Enter>

    And if you want to do windows and graphics, there is NO OTHER WAY to teach modern GUI programming for 10 year old kids except Tk with wish. All other methods are 100 times more complex:

    set a "button not clicked"
    entry .field_in_default_window -textvariable a
    pack .field_in_default_window
    button .button_under_it -text "Click here" -command {set a "you clicked"}
    pack .button

    You can of course always use LOGO, but is arguably a "toy" language only, and the graphics is not much easier than tk, really.

    Actually teaching Bash is not a bad option. And that, if anything, is very interactive, and very general purpose and real life stuff. And you can do endlessly fun stuff with test, expr and text manipulation tools.

    --
    Anssi Porttikivi / app@iki.fi
    1. Re:Basic is still ok, Tcl/Tk is ok, shell is ok by Anonymous Coward · · Score: 0

      I can't believe how few people think of tcl/tk anymore. It's the best for getting gui up and going. Plain tcl is nice too, I use it every day. Leads into C nicely.

  110. Re:Kids today...... :-) by Richy_T · · Score: 1

    You can code spaghettic crap in any language. Basic just made it easier which means you were introduced to the reasons *why* you should write plain, procedural modular code at an earlier stage,

    Rich

  111. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    First off, I'm 22, I'm a High School drop-out, though not of my own will. The hand dealt to me was less than fair, anyways. I went to a tech trade school for about 2 months and all their teachers spare one was sorely lacking in knowledge of what they taught. I tried a junior college for a year and found myself hating it.

        The reason I hated it was because I had to take tons of other classes that I found tired, boring, and tedious. However, when I look back at it now, two years later, I wish I had followed through. I wish I had gone through, not because of the job opportunities it might afford me, but because I see now how related those "stupid things" are to *everything* else.

        An idea that popped into my head is that kids should be taught thoroughly the importance of the connection between what they love and the things they don't really love so much.

    Maybe they do this already, but if they did, it certainly wasn't taught to me.

    I am deeply considering a return to the college scene, but I wouldn't be returning for a degree. I want to return for my own sense of higher education and nothing more.

  112. When I started programming by Erectile+Dysfunction · · Score: 1

    at eight in Commodore BASIC, I found the line numbering to be a nuisance because I would invariably mistype a number somewhere at least once due to the tedium. I eventually made myself be more careful as I became more comfortable writing programs, but when I learned Logo in school I lamented how annoying using Commodore BASIC and BASICA was. There may be some conceptual simplicity in the imperative procedural programming style that makes learning to program easier, but I do not think that line-oriented programming languages are especially valuable. Further while various versions of BASIC served me adequately on my personal computers until I was 12, I didn't program in BASIC because it was easy to use, I programmed in BASIC because it was all that I had at home. If I could have programmed in Python then I would have picked that over any BASIC derivative (I even hate reading BASIC derivatives now, even though I have to contend with VBA on a frequent-enough basis when dealing with certain work-people). I also would have loved a Smalltalk implementation, because not only would it have come with a real IDE and debugger, it would probably have come with the source code for any non-primitives that I could have inspected to see how things were implemented. That could have its downsides, though, in terms of complexity. I suppose if there is any substantive barrier to entry it's the separation of the language and API from trivial programming in many popular languages today. You could create a full screen graphics context in a given resolution and color depth trivially, not have to contend with any system event loop, and draw various geometric primitives without tons of boilerplate. While there are libraries that simplify these sort of things, they aren't typically all collected together with a simple language and distributed with every computer into the bedrooms of children. You can't say that there's www.somewebsitethatwillprovideit.com and expect that small children will just find it and decide that they want to program. If it wasn't for an after-school program I wouldn't have even had anywhere near the time necessary to learn Logo in school, so it probably isn't realistic really expect to even just introduce this sort of thing in school and have it stick. Children need to be able to easily program from their own computers in their free time at home, or they'll be waiting until high school to pickup programming in any serious way.

  113. Re:Kids today...... :-) by WhoBeDaPlaya · · Score: 2, Interesting

    I disagree - turned out alright even after having dabbled in way too much BASIC, FORTRAN and PASCAL :P

  114. Best Java practices by CustomDesigned · · Score: 2, Interesting

    In my Java classes, when a resource is freed by a destructor - as opposed to by a close() method or equivalent - it logs a warning. Optionally, the open() method can capture a stack trace - which can help track down the leak, but eats too much memory to do all the time. Along the same line, the Boehm garbage collector for C/C++ has a mode where it can warn you about memory that has not had free() called as it collects it. This is very helpful for debugging manually collected C/C++ programs.

    1. Re:Best Java practices by Anonymous+Brave+Guy · · Score: 1

      In my Java classes, when a resource is freed by a destructor - as opposed to by a close() method or equivalent - it logs a warning.

      Whereas in my programming classes, we learned about different approaches to memory allocation and resource management, including that finalization in Java isn't the same as destruction in C++. In particular, we learned that there was no way to guarantee finalize() being called, so you can't rely on tricks like this to tell you anything you didn't already know.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    2. Re:Best Java practices by mrbobjoe · · Score: 1
      In my Java classes, when a resource is freed by a destructor - as opposed to by a close() method or equivalent - it logs a warning.
      Whereas in my programming classes...
      Er, I think he meant the Java classes that he writes, the programs themselves.
    3. Re:Best Java practices by Anonymous+Brave+Guy · · Score: 1

      I realised that, but thanks anyway. :-)

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  115. Re:Kids today...... :-) by Saint+Fnordius · · Score: 5, Insightful

    You managed to get David Brin's point terribly, horribly wrong. It's not that BASIC provided a good basis for future programming, but that BASIC awoke a desire to learn more programming. It was good for non-programers to grasp the concepts behind programming.

    I think the best candidate for a BASIC replacement was HyperCard, but alas, that too is a dead project. It was cool, and its scripting language - HyperTalk - was revolutionary in that it was geared to resemble "natural English". Sure, it was limited in many ways, but the original Myst was made with HyperCard, and those of us that fiddled with it were ready when the Web hit prime time, already armed with the concepts of event-oriented design. HyperTalk scripts were easy to read, so easy that commenting became scarcer.

    I can't find a worthy successor to HyperCard, though. IMHO Apple should release it under some open source agreement, so that it can be ported

  116. This article taught me... by Anonymous Coward · · Score: 0

    ... is that the author has written several novels, his kid is the best thing that has ever happened to mankind and that buying a C64 if you want to run some BASIC is considered 'ingenious'...

    Please...

  117. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Holy cow, I thought you were joking that CS students weren't taught a "compilers" class, but OMG, I looked at the University of Maryland CS requirements and, yep, the lowest level programming you do is one class of C! No compilers!

  118. The article is only partly right. by Tanuki64 · · Score: 2, Insightful

    Most of it misses the point. As do most of the replys to this article. Many here say, that there is Python, Perl, Ruby. You can even find 1001 flavours of BASIC. So what? What to do with it? When I was young, there were dozends of weekly or monthly journals, which contained game code. Sometimes I took me hours to hack it in. But I had the code. Even more, many magazines explained the code line by line. I was able to change things and see the results immediately. When I had no joystick, I was able to change the game to use keyboard inputs. This was interesting, this was fun. I really doubt I would have invested even half the time I used to hack in those listings, to learn a programming language when all I had where books, which started to explain how to print 'Hello world' on the screen. I think this is the real problem today. There are no materials to interest todays kids. When I go in a bookshop I see dozends of books, which fine if you are an adult who wants or has to learn. When I browse magazines I see game tests, hardware tests, rarely a small project, which is little more interesting than 'Hello world'.

    Does anyone today know a magazine like ANTIC for the Atari? Twenty years ago there were dozends. Today? None.

    So install whatever programming language you want on you childrens computer. It won't change anything.

  119. LOGO not Basic by jbtule · · Score: 1

    Logo is a line programing language for kids to learn on. And there are a ton of open source implementations. Even ones that run on JAVA or the CLR http://sourceforge.net/search/?type_of_search=soft &words=logo

  120. Re:Kids today...... :-) by smcdow · · Score: 1
    Remember Computer science isnt about the plumbing ...

    This is true only when Computer Science doesn't involve software running on computer hardware. When Computer Science does involve software running on computer hardware, only the foolish fail to remember that it is, in fact, all about the plumbing.

    It doesn't matter how abstracted the S/W is from the H/W -- at the end of the day there's memory, busses, clocks, devices, (in short: H/W resources) beneath the S/W. Everyone should try to remember that when they code. That is, unless they're writing software that doesn't run on computer hardware. No, you don't need to know everything about low-level arcana, but the more about it you do know, the more informed you will be when you write code. And you'll write better code for real-world purposes.

    I wish the Java wonks would remember that.

    --
    In the course of every project, it will become necessary to shoot the scientists and begin production.
  121. Re:Kids today...... :-) by Greyfox · · Score: 1
    Bash should be fairly easy to learn, though. Or squeak or ruby. Hell perl isn't even really all that bad if you stick to the basics. You're just trying to get the computer to do something. They taught BASIC, Pascal and Fortran when I was a young'un. Really though I think logo with turtle graphics would have served me better -- it had the advantage of letting you tweak a function and see what the results were immediately and the turtle graphics made for a very good visual indicator of how your change affected the program.

    I think part of the problem is there really isn't a university program that teaches programming per se. CS is heavy on the science and math parts of it and the business programs teach you about databases and other tools that you'd use daily in business. There doesn't seem to be a lot on programming, design, code and project management. You kind of have to pick those up as you go.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  122. Re:Kids today...... :-) by peragrin · · Score: 1

    haha that sucks. i 1985 at age 7, I had a TI 99/4a with the extended 32b memory unit. Of course I did manage to write a single program that filled all the memory. That was when i learned to create, and call seperate programs from within one. I still remember it. I had 8-10 games i had created/entered in from samples, and I had a menu Interface to switch games. So i could play for hours, I later added the word processor to it, so i could quickly switch to "doing homework"

    --
    i thought once I was found, but it was only a dream.
  123. Simple language available through open source by Thomas+Mertes · · Score: 1

    Probably I am biased, but take a look at Seed7.

    Greetings Thomas Mertes

        Homepage: http://seed7.sourceforge.net/
        Project page: http://sourceforge.net/projects/seed7

  124. Re:Kids today...... :-) by LWATCDR · · Score: 2, Interesting

    Dijkstra was right but limited in his thinking.
    It is practically impossible to "TEACH" good programming to a student that teaches themselves basic.
    Basic is not that bad for learning programing. It is terrible for teaching programing.
    When I was in school back in the days when dirt was a new idea and the SuperPet was the best computer for computer teaching programing. Hey it had an interpreted FORTRAN, Pascal, APL, and I think COBOL. I learned Pascal first followed by Basic, I know some very good programmers that taught themselves basic first and then went on to real programming languages.
    You are right in that we don't need basic anymore. Python is just as "easy" as Basic and a lot better thought out.

    I don't think the problem is the languages. The problem is expectations. When I was a kid everyone wanted to learn to program to write games. The games of the day where simple and you could wrap your brain around lunar lander, pacman, break out, or space invaders. A 12 year old could imagine themselves creating a new video game. Now the bar has been raised to Doom 3 and Half-Life2.
    I doubt that betting your name to print across the screen of flying a space ship in 2d on your monitor has the same thrill.
    The same chilling effect has hit model building. Why build a model of a corvette or a P-51 when you can fire up Grand Turismo 4 or FS?

    kind of gives me and idea for a new competive programing toy :)
    Now I just need three web cams two model tanks, some sensors, and some blue tooth interfaces.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
  125. Re:Kids today...... :-) by Eisenfaust · · Score: 1

    If you're writing a program from scratch it might take a little more to make something interesting than it did 20 years ago, but there are still a lot of easy and fun programming tasks. A great place for a lot of teens to get started would be to download (or install if its provided on media) the development kit for your favorite game such as Oblivion, Neverwinter Nights, Halflife 2 etc. I've been programming since I was about 12 and I still have tons of fun doing simple tasks like scripting quests for my friends Oblivion and Neverwinter Nights adventures.

    I remember when Quake first came out. I was pissed off that my brother kept killing me with the grenade launcher, so I silently made and installed a mod that randomly caused the grenade to explode in his face after leaving the launcher on his computer. It provided several minutes of extreme enjoyment as I looked over laughing my ass off at the expression he had on his face as he tried to figure out what just happened to him.

    If anything I notice that kids (and adults) lack motivation. I knew when I was 12 years old that if I went and downloaded a C compiler and read some books eventually I could write a game or something else really really cool. It just requires that you persist instead of giving into immidate gradification.

    So kids... Go download the Quake or Quake 2 source, get a compiler and get it building. Once you do that go nuts changing stuff around. If you screw it up too bad just unzip the source again and start over. Eventually you'll figure out how to do some cool stuff. There so many webpages, forums, newsgroups and IRC channels you can use as learning resources. I can also tell you specifically that Neverwinter Nights and Oblivion both have great online communities with tons of HOWTOs, script snippets etc. Even if you've never programmed before you can do a lot with these two games by just merging things from different online tutorials and guides.

    --
    Grrrrr... don't bother me, I'm thinking.
  126. Been a while since my BASIC days but... by corporate+zombie · · Score: 1

    10 query="BASIC freeware"
    20 google $query
    30 end

        -CZ

    PS - I agree with the Salon article. If kids are going to go past
    BASIC then in time they'll learn its deficiencies. If they aren't
    then BASIC is as good as anything to play with.

    I totally disagree with his contention that it's impossible to find
    a BASIC interpreter. Heck, he should just write one if he wants it
    for his son so badly and can't seem to figure out Google.

  127. I used to agree by Craig+Ringer · · Score: 1

    I used to agree with the person you're responding to. These days, I tend to take your view - that understanding the guts is IMPORTANT.

    Part of what convinced me was seeing the total lack of understanding of the critical difference between heap and stack memory in the C++ programs I was reading. Some people didn't even seem to know you could allocate objects on the stack (java users? It looked like it, but they'd never used Java it turned out) so I'd see code like this:

    MyObj * o = new MyObj(...);
    o->doSomething();
    delete o;

    which is not ALWAYS stupid ... just almost always when compared to:

    MyObj().doSomething();

    I also had some eye-opening experiences with how a failure to understand the difference between byte strings and unicode strings can lead to amazing code horrors - including images being stored in unicode strings by shoving each byte into a unichar ... because the strings were implicitly shared and thus easy to work with.

    It's crucial to understand how to understand and design systems at a high level, and it's equally critical to understand how they work internally. The better I understand the lower levels of functionality understanding the systems I use, the better a programmer I become in the higher levels I actually work in day to day.

    I'd love to see someone combine these two approaches by starting students on something like Python or maybe some RAD in one unit while hand-coding asm in another, then drilling down and up until the two meet somewhere near C++.

    1. Re:I used to agree by Gr8Apes · · Score: 1

      Well, I started long ago, migrated to C, then C++ before the horrors of STL ;), and then on to Java. (I'm not that old though, just started young, something about game programming ...)

      The errors I see in Java are mind-boggling to say the least.

      One of my favorites is the supposedly lazy initialization of a singleton (bah - stupid pattern that should be banned from use by anyone not at least at a true SR level) that does nothing more than create an instance of the class with the default constructor. And they used the non-working double-check lock pattern to "initialize" it. Just statically assign the instance. What's even better is when this instance has no data members and could just as easily have been a fully static class.

      Then there's the most common mistake I see from a performance standpoint - the use of Vector local variables that are completely encapsulated within a method. Vectors are synchronized, meaning a nice cache flush before every operation. Since the variable is encapsulated within a method and never gets passed out, why on earth would you use a Vector? Even better is when multiple local Vectors are used to sort an array. (Don't ask, this was a former Sun employee, I leave you to guess why...;)

      This example is indicative of a complete failure to understand higher level abstractions including memory models, performance impacts, and threading. It also underscores why understanding those lower level functions is important even for beginning programmers, even in Java.

      Java is simple to learn and understand, just like C#. It's also simple to screw up with and forgiving enough to still work. A language does not prevent bad code written by the ignorant. I have personally seen an 18,000 line class with multiple "inner classes" with methods over 900 lines long that consisted of if-else blocks based on flags such as "isDone" and "is". The highest cyclomatic complexity in this code base was 218 after refactoring, followed by another class with 140. I'm glad I no longer have to look at that code.

      To finish off, I just wish that when they taught a langauge, they also taught the importance of the underlying concepts, not just the syntax. Matter of fact, no class should be just about syntax and stringing together syntactically correct statements. These days, I notice many don't even know or understand some of the simple algorithms, and would be hard pressed to write a bubble-sort or a comb-sort, or to write or even properly explain a binary tree or a binary search, much less concepts such as skip-lists. If you don't understand what they are, how can you possibly make the decision when to use them properly?

      --
      The cesspool just got a check and balance.
  128. No choice: catch-22 by Randolpho · · Score: 1
    Yet here on Slashdot everyone whose jobs basically consists of writing CRUD software, spitting out webpages, or babysitting servers complains incessantly about how their college education was superfluous. Well if you choose to do something that's not related to what you studied then big surprise that it doesn't entail considerable mathematical expertise.
    "Choose to do"? You're kidding, right? CS students fresh out of college do not have a choice on what they do unless they're already wealthy enough to do what they choose.

    For the rest of us, those "CRUD" software jobs are all that's available. If we want to do real computer-sciency type stuff, we need to take a "CRUD" job and hope we can get the other folks there to do computer sciency type stuff as part of their process. That's like herding cats.

    There are *very* few *real* computer-sciency type jobs out there. Unless you have a PhD and at least 10 years of experience doing computer-sciency type stuff, of course. Oh, and you can't get 10 years of experience doing computer-sciency type stuff without 10 years of experience doing computer-sciency type stuff.

    I'd love to work on real computer sciency type stuff. I'd love to architect compilers or natural language processors. I'd love to build the next gen OS from the ground up. But I live in the real world and have bills and dependents.
    --
    "Times have not become more violent. They have just become more televised."
    -Marilyn Manson
    1. Re:No choice: catch-22 by Anonymous Coward · · Score: 0

      > I'd love to work on real computer sciency type stuff. I'd love to architect compilers or natural language processors. I'd love to build the next gen OS from the ground up. But I live in the real world and have bills and dependents.

      There are very few jobs in any pure science, but if you want to work in compilers, NLP, or any of the other "hard" fields that will benefit from applied CS, there's plenty of them. My department was desperate for a mathematically inclined data mining person for doing cluster analysis (we finally just now found one). That's more statistics than CS, but the same idea. The research lab in the same company is expanding and could always use machine learning folks. More math, closer to pure CS.

      We all make compromises, but when you regret them, don't bitch about it being the world's fault.

    2. Re:No choice: catch-22 by Erectile+Dysfunction · · Score: 1

      Frankly no one cares that you feel trapped into doing CRUD software for a living, it's simply irritating that on Slashdot every manner of person whines about the CS curriculum because it didn't prepare them to write interfaces for Oracle databases in VB all day long. That isn't what CS is about, so big surprise that you don't need to understand dynamic programming to do it.

      Slashdot is rife with resentful anti-intellectuals that are angry because they majored in Computer Science instead of attending DeVry. Sure, many of them didn't need a Computer Science education for what they do. Dijkstra warned them and they didn't listen.

  129. Re:Kids today...... :-) by Mycroft_514 · · Score: 1

    Sorry, but you are totally wrong here. And what's funny about it is the way to break them of the bad habits brought about by early exposure to BASIC is a methodology that comes from Dijkstra himself.

    After letting me learn BASIC, and play with it thru most of my first class in it, my Dad sat me down and introduced me to the 5 structure diagrams. And I have been using structured code ever since. (Note to others, Go TO less programming and Structured coding are not the same thing. Depending on the language, you may have to use GOTOs to simulate portions of the structure diagrams.)

  130. Re:Kids today...... :-) by Mabonus · · Score: 1

    It all depends on the college folks. I went to a liberal arts college for my CS degree and made a point of taking electronics. From that I've worked in various languages, covered Church and Turings work, assembeled electronics, programmed them in assembly, controlled them via serial port, written a compiler, and done all the other great stuff that puts the science in computer science. Just pay attention to what college the whippersnappers go to and what their program offers and you'll be fine.

  131. When the liturgy was in Latin, by oldwarrior · · Score: 0

    ...the Laity knew their place. We don't have a peoples language anymore - just specialist OO/B&D obscenities like J2EE and .net.
    Kids today would do better with an Apple II or TRS-80 to get their minds around computers.

    --
    If it were done when 'tis done, then t'were well it were done quickly... MacBeth
  132. an old fogey, and not even 40 by kakapo · · Score: 1


    I have been wondering about these issues as well - I am not so concerned by the lack of BASIC per se (although I learned to program on an Apple //e, and BASIC there was truly in your face, since firing it up produced a blinking cursor which just asked you to start typing code).

    Fast forward a few years, and I am a theoretical cosmologist, supervising PhD students and teaching Mathematical Methods to grad students. I have noticed that comparatively few of the students who walk into my office to ask about projects are proficient in *any* low level programming language (i.e. C/C++ or Fortran 77/90 -- all of which are widely used in my line of work), but they will often turn in their problem sets as a Mathematica notebook. However, in order to get my work done I need to do some fairly heavy duty simulations, and these run in Fortran or C/C++. The tools the students do know, such as Mathematica, are fine for simple things and prototyping but they are just too slow for "production" use, and there is a big learning curve for students who have not *any* programming before to get to the point where they can understand and extend code written in one of these languages.

    These students (all very smart -- juniors and seniors, and beginning grad students) are often extremely computer literatate -- they just have little idea of what goes on under the hood. Whereas back in the day of the Apple ][, under the hood was pretty much all there was. In my teaching I try to present problems where I know that Mathematica will choke, to force my students to think more carefully about the tools they are using. (This is primarily to improve their analytical skills -- computer algebra is great for doing away with drudgery, and it has largely supplanted integral tables -- until the day you meet a problem Mathematica can't evaluate, in which case you are in deep trouble since you haven't developed the skills that might let you tackle it on its own).

    Perhaps computers should all ship with Apple ][ or Atari emulators?

  133. Ruby / IRB by lukegalea1234 · · Score: 1

    I was feeling similarily until I discovered IRB (Interactive Ruby).

  134. What About Lego?!? by lys1123 · · Score: 2

    If you want to talk about amazing incentive for getting children to program, look no further than Lego. I remember loving Lego Bricks as a child when all they did was fit together. Now you can learn to make actual working robots from them, using a programming language which was designed for children!

  135. Over simplification. by krunk7 · · Score: 1
    Does education need improvement? Sure.

    Is less of the intellectual realestate being dedicated solely to programming? Probably.

    But this may have nothing to do with line programming (or lack thereof) on personal pc's today.

    I'm "the computer geek" research assistant at a neurology lab. Though I have more expansive knowledge of computers themselves, not a single researcher in my lab can't knock out a quick and dirty script. Many of them have written entire suites of tools to accomplish the tasks they require in languages as varied as bash, perl, C, C++, java, tcl, gtk, Obj-C, etc.

    I'd ask when you were hacking away at line programming, was there a significant number of young kids doing [url=http://www.deviantart.com/[/url] with their computers? No, because the capability didn't even exist.

    The fact is, there may be less "programmers" per se. But programming [i]isn't that hard[/i]. In fact, just about any language is easy enough for anyone with intelligence to pick it up with little effort if the need arises. We may be seeing less folks dedicate their learning, hobbies, etc. exclusively to programming....but that simply isn't necessary anymore. Programming is becoming an aside, a secondary skill to the more primary skills of medicine, research, mathematics, biology, physics, art, and design.

    And you know? I have a feeling that's probably the way it should be.

  136. So True!!! by RingDev · · Score: 1

    "The same chilling effect has hit model building. Why build a model of a corvette or a P-51 when you can fire up Grand Turismo 4 or FS?"

    When I was in high school and the military I spent a lot of time doing amateur work on models for Doom, Quake, and Need For Speed. I remember making my first NFS2 car model. I think the high poly count model had 600 polygons, and that was well above the other cars, the low poly count model had like 40 or less polygons.

    Last week I went to a seminar where the project lead from Prey (Human Head game studio) talked about the development of Prey. The LOD models in Prey were upwards of 7000 polygons, the HOD models were 20,000. Not that the 20k models where used in game, they were used to create textures, bump mapping, and other effects at design time for the LOD models.

    But still, I can't imagine the tools or work that are required to make a 7,000 poly model, let alone a 20,000 poly model while looking back at my 600 poly model.

    -Rick

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
    1. Re:So True!!! by Fjornir · · Score: 1

      Heh. And when's the last time you saw a kid down at the hobby store picking up some more exacto blades, a tube of model airplane glue, and another pot of paint? I mean a kid the age you were when you first assembled a model tank or whatever?

      --
      I want a new world. I think this one is broken.
    2. Re:So True!!! by Si · · Score: 2, Funny

      Haha! What country do you live in, pal? because here in the UK there's laws agin that kind of thing! Kids buying knives? AND GLUE??? Are you living on Mars?

      --


      Why is it that many people who claim to support standards have such atrocious spelling and grammar?
    3. Re:So True!!! by AJWM · · Score: 1

      Um, I hope you're joking and I'm just missing the subtle hints that might prove it, but the gp was talking (at least, I thought he was, maybe I'm wrong) about physical models, not digital models. You know, plastic kits, acetone-based glue, tiny Testors paint jars, that whole scene.

      You know, something not requiring a computer. (Yeah, I know, on /. that's close to heresy.)

      (Besides, polygons? NURBS, man.)

      --
      -- Alastair
    4. Re:So True!!! by LWATCDR · · Score: 1

      Yes I was. I was also extending to flying models. Why spend hours making a rubber band powered P-51 or piper cub when you can fire up FS and fly a real one around New York?
      I do think that there is value in making that first balsa glider and triming it.
      FS is also great. A 12 year old can get simulated stick time in FS. I would have loved that when I was a kid. I wonder how many of the latest Air Force pilots in training have flow a few hundred hours in Falcon before they ever get to sit in a Tweet or a Texan.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    5. Re:So True!!! by DaveV1.0 · · Score: 1

      Hmm the last time I visted my nephew who makes model planes and cars.
      Or more recently, when I was at my local hobby shop.

      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
  137. Re:Kids today...... :-) by Anonymous Coward · · Score: 0
    "You should know that the University of Utah has a long history of academic excellence in computer science."You should know that your personal evaluation of the students you see is statistically meaningless when discussing students across America. I know you're very proud of yourself and you have a real need to be accepted (Slashdot is not the place where real intellectuals go to have thoughtful discussions, btw.) but come off it with this nonsense. The University of Utah is adequate but it is both a single school and not impressive.
  138. WRKACTJOB by Ranger · · Score: 1

    I think all children should be taught to use the VMS OS and AS/400 OS. For those who don't quit from frustration in the first five minutes when they switch to DOS and Linux, those shells will seem intuitive in comparison.

    --
    "You'll get nothing, and you'll like it!"
    1. Re:WRKACTJOB by frank_adrian314159 · · Score: 1

      Can I have an AMEN!?!

      --
      That is all.
    2. Re:WRKACTJOB by Ranger · · Score: 1

      AMEN!?!

      --
      "You'll get nothing, and you'll like it!"
  139. graphical calculators by Anonymous Coward · · Score: 0

    BASIC is standard in graphical calculators from TI and Casio.
    I coded pong in my Casio in fact.

    1. Re:graphical calculators by mrshoe · · Score: 1

      Mod parent up.

      Graphing calculators are a great way to learn BASIC. The math libraries are great, and the graphics libraries are simple. The huge benefit is that you can easily hack away during (some non-CS boring) class and carry your project with you wherever you go. That's more than you can say about the C64 the author bought on ebay.

      I spent much of my time in high school making games like pong and space invaders on my TI-85. Z80 assembly is also very accessible on these machines if you want to learn how they work at a lower level.

      I think kids today with these calculators can have an experience not unlike what the autor had with BASIC on the Altair or C64 - just in a more convenient and portable form factor

      --
      There are two types of people in this world: those that categorize other people and those that don't.
    2. Re:graphical calculators by Anonymous Coward · · Score: 0

      I agree. After/During my time playing with BASIC on a Laser 386, my TI-82 and later my TI-86 (featuring a much cleaner design and more user memory) both included a BASIC interpreter. This occupied much of my time not only in, but out of class, optimizing my code to run more efficently on the sparce processing power.

      Admitidly, the interpreter does not come bundled with Windows, however, a quick google search brings up many options . The benifits of of many of these are they are capable of generating executables. Microsoft even provides a Free Microsoft Visual Basic Express Edition.

      Everyone seems to complain about 'bloat' and bundling uneeded/unwanted software. The software is still there, and is still usable. Being we are posting/reading Slashdot, I would assume we all have an internet connection - download it.

  140. Re:Kids today...... :-) by MP3Chuck · · Score: 1

    It may not be the problem, but it's still certainly one. I see people posting on forums all the time who want to make a MySpace clone or code an MMORPG but have ... well, no coding experience. They claim to be "willing to learn" but when you start going on about starting small and learning the basics they get flustered and either tell you off or lose interest.

    There's something with computers/softare ... people don't see 1,000 lines of PHP and SQL queries, they see a couple hundred lines of HTML and think "Well, how hard could that be?" They don't see shader models and memory management, they see some cool explosins and thing "Screw 'Hello World,' I want to do that!"

  141. A few candidates... by jpellino · · Score: 1

    I've had this discussion with a Noted Industry Guru, and his reaction was just get them started on the dominant pro language as soon as you can - simpler programming environments just delay the inevitable. But then again he and I and many of us all learned BASIC on a PDP-11 - so our programming schooling was based on a gentle intro that made us brave enough to then dip into assembler, Pascal, etc... Then you have the problem of teaching to the AP, which was built around Pascal for a long time, then C++ for a couple of years, and now Java, so it's been a moving target.

    For a few years, I did every "need it now" thing for our school in HyperCard - it was fast, made sense, drove you in the direction of higher level languages (or at least made you think reasonably hard early about the structure of the data and the nature of the challenge). It also got a lot of kids interested in "real" programming and willing to spend the time to get something meaningful and immediately useful out of some increasingly challenging code.

    I love Mindstorms for getting kids to be techy, but I wish it was still driven by LOGO as the first TC sets were. My undergrad and grad students were always required to do a LOGO project, and they rolled their eyes at the beginning, and were pumping their fists in the air in victory when they saw the results on the screen. In contrast, they were all convinced Making Web Pages was going to be the bomb, and they were ready to throw their hands up after the first few iterations with coding HTML. Some of that is inherent - a inadvertent change in LOGO still makes something that makes you think more and harder, the same sort of "goof" in HTML makes an unholy mess.

    Our kids love Stagecast, but it's still not what it was intended to be - IIRC when it was "Cocoa" at Apple, the intention was to be able to see the source code, which was Java, behind the cool things you were building. And the GUI "actors" largely mirrored the OOP behavior (data, methods, classes, inheritance, etc.) of the underlying language. That would have been very cool, but that last bit of linking the elements to their underlying code just never got implemented in the commercial product.

    And of course the math skills have to parallel the CS skills. I've seen kids in middle and high school simply shut off their algebra and stats skills when presented with a programming challenge, and vice versa. They've not been shown that there is significant resonance between them. Graphing calculators provide something of a bridge there, but there's no parallel system on a computer that can reinforce theta behavior.

    On the other hand, I sat in a presentation at the (then, spring 1990) Soviet school in Sofia, with the science and math teachers were going thru their respective curricula like a four hand piece for piano, matched virtually unit for unit. My boss and I sat there with our jaws on the floor. I jokingly said we should just surrender now. Touring their computer classes, though we could not speak each other's languages, I was able to communicate with then in a very cool fashion by way of a dueling-banjos exchange using hires graphics in BASIC to do some math-based graphics routines on their Pravetz Apple II clones. They 'got' the connection between the math and cs and art they could do with these systems, and could use it as comfortably as a spoken language.

    With things being as labile as they are, I'd rather have a brave and encouraged student, with some programming skills expanded progressively, willing to go the next step, than start a kid with a course in C++ or Java that could flatten them without the preparation we all enjoyed and which could make them adaptable to what comes next. It's probably fair to say the language they'll get paid to use hasn't been invented yet.

    --
    "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
    1. Re:A few candidates... by vivin · · Score: 1

      On the other hand, I sat in a presentation at the (then, spring 1990) Soviet school in Sofia, with the science and math teachers In Soviet Russia, Computers Program You! ...sorry.

      --
      Vivin Suresh Paliath
      http://vivin.net

      I like
  142. Re:Kids today...... :-) by LeRandy · · Score: 1

    Certainly when I was younger - my BASIC programs were neither stunning (even compared to the games of the day), nor particularly well written. They did, however leave a certain "I made that" feeling - which is what pushed me onwards to make bigger, better programs.

    As a non-programmer today, I would say that learning BASIC definately helped my abilities in being a "power user". When I was a clerk, my bosses truly appreciated my understanding of Macros and scripting that came out of my BASIC experiments as a child. When "can you take these spreadsheets and generate this monthly summary?" turned to "if you give me a little extra time, I'll make a button that will do that automatically, so it will take 30 seconds to produce each subsequent summary", they were pleased with the results - and often gave me a raise.

  143. Hmmm by Anonymous Coward · · Score: 0

    Sounds like a Microsoft problem. Linux systems have incredibly easy access to programming languages.

    Maybe there are too many to choose from and it's daunting to start: Obviously C is probably not what Johnny is looking for at age 8.

  144. VBScript and JScript by thethibs · · Score: 1

    Every Windows system ships with VBScript and JScript, both of which are easier to code and more powerful than the earlier Basics when used in command-line mode. The problem is not the lack of an easy and accessible line-oriented language—it's the confused and crappy-to-nonexistent documentation for these scripting languages and wsh. It doesn't help that MS seems to want to keep them a secret.

    This shortfall extends to every beginning Windows book I've seen. It seems that even the cheerleaders are unaware of these resources.

    --
    I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
  145. That's not like any BASIC program *I* ever wrote! by Valdrax · · Score: 4, Funny

    You're missing the ^G to make it beep after every line.
    Amateur.

    --
    If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
  146. Applicants today by wonkavader · · Score: 1

    I get a lot of job applicants at my company for Java programming positions. They have CS degrees. Some have masters. They can talk for hours about MVC and Hibernate and rattle off IDEs and frameworks they use.

    Around 90% of them (yes, NINETY PERCENT) cannot write a simple rescursive function. Around 80% have trouble writing a for loop.

    It's like night and day when you give them the problem. Some bang out the recursive function in 30 seconds, and they do equally well with a for loop. (Often the recursive function comes faster because the task lends itself to recursion.) But that's the 10% that we get interested in. The rest get the door. And it's demoralizing, because we've just talked for 30 minutes and been impressed by their buzzword command and talk of past experience.

    It's notably awful watching the masters degree holders fail in the same way.

    CS is not making programmers. I'm not sure it ever did. Maybe programmers have always made themselves. But clearly the crop of students I'm seeing now are not programmers. They are not interested or capable of understanding algorythms and lines of code. They assemble parts. I think of them more as web designers, but a level deeper in the guts.

    I've found myself wondering out loud if CS has become the same sort of catch-all "I don't know what I want to do so I'll do this" as law school. We've all seen people go to law school after college because they don't know what to do. They finish, and then drop out of lawyering quickly to go into some job which works better for them, given that they can no longer put off the job market by schooling.

    A further worry is that CS is now the law school for second-tier people. Good in English or History? Go to law school. Not good with anything? Get a masters in CS. But then, for most, that decision is coming in late high school/early college, rather than after college/before the job market, as most CS folk I see have CS undergraduate degrees (sometimes accompanied by a masters).

    If programmers always educate themselves, then maybe we have roughly the same number of good programmers coming from CS departments now as we did in 1980, just along with a huge bunch of also-rans, now.

    If you look at all programmer job applicants, maybe you'd find the same competance in a fixed NUMBER of applicants as in 1980, but that only the percentage of bad programmers has increased, as more people go through CS.

  147. Javascript is on practically every computer by Rinzai · · Score: 1
    ...by virtue of one web browser or another being on practically every home computer. Sure, it's not exactly the easiest language with which to start (but far easier than many of the choices posited in prior messages), but the C/C++ syntactic similarities get one headed toward C, C++, Java, and C#. All one need do is start up the local non-word-processing text editor (Notepad will do, I suppose vi or emacs if one absolutely must), toss out a few HTML tags, and code away.

    I'm not seeing the difficulty here.

    Of course, for Perl and Python addicts, this will seem absolutely heretical, but what's the big daggone deal?

  148. Its true! by sobachatina · · Score: 2, Funny
    Its true!

    I have a CS degree and couple years experience and I wouldn't even know where to start to code myself out of a paper bag! :)

    1. Re:Its true! by Anonymous Coward · · Score: 0

      Job World: When can you start?

  149. Re:Kids today...... :-) by Mr+Z · · Score: 1
    companies don't want to hire people who understand the compilers, they want people who know C++, C, Java, SQL, PHP...

    So that explains why most the people I interviewed the various times we've tried to hire people had no clue about assembly language or what a compiler actually did to make the code run. Hint: I work at a company, so your statement doesn't hold for all companies. Oh, and we have to deal with the crap code that these folks end up writing when these other companies come to us as customers and 3rd parties. *bangs head on desk*

    Just because many companies don't care if you demonstrate knowledge of the low level details, it doesn't mean it doesn't matter. Some companies actually look for this. Other companies will benefit from this, even if they didn't know to ask.

    --Joe
  150. IMO by zerosix · · Score: 1

    Good programming is an art just like watercolor or oil painting. While it is possible to learn the art some are born with the internal ability to throw around lines of code like paint onto a canvas. Though the result may possibly seem absract to the unknowing, it's really a beautiful piece of work.

    --
    Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. ~Albert Einstein
  151. Re:Kids today...... :-) by houghi · · Score: 1

    Sometimes kids SHOULD give up. At some point you must realize that you just can't do it. Learning to accept defeat is just a part of growing up. It is about learning your limits. Just look at the kids that started programing Duke Nukem 3D or Vista.

    --
    Don't fight for your country, if your country does not fight for you.
  152. What about Squeak? by flimflam · · Score: 2, Interesting

    I've only played with it a bit, but it seems like it could be an ideal learning environment -- the kind of thing that feels like you're playing but are actually learning something.

    --
    -- It only takes 20 minutes for a liberal to become a conservative thanks to our new outpatient surgical procedure!
    1. Re:What about Squeak? by Anonymous Coward · · Score: 0

      With the help of a knowledgeable teacher, Squeak is great. Right now, there is a barrier to entry in that the environment, as shipped, is daunting to a novice.

      Squeak/Smalltalk has it , but it is difficult to get started. Once kids get started, however, they can really do some interesting, powerful programming.

    2. Re:What about Squeak? by __aaasvk1266 · · Score: 1

      Mod the parent up. I was skimming through responses, and was surprised not to see Squeak mentioned. Speaking as an ex-comm professor, squeak is a great place to start: Plenty easy, plenty powerful, plenty immediate. Good Call.

  153. Who Cares? by masnare · · Score: 0

    So what if Johnny can't code? Does everyone really need to be able to code? What if the article lamented the inability of the Johnny to fix the family car. Who cares? Coding is a specialty -- not one of the three 'R's. That Johnny can't code is not a concern. Tell Johnny to go outside and play.

  154. Re:Kids today...... :-) by Kipper+the+Llama · · Score: 1

    The problem is not a dearth of math education--MOST high schools offer classes like AP Calculus--but low standards for entry into colleges. Furthermore, with AP Calculus, the test itself is often taught at the cost of actually teaching the concepts. This is done so "bad math students" who are otherwise intelligent can still take that all-important AP class to solidify their class rank. Just ask any student who has recently gone through AP calc at a traditional public school.

    Despite being only 21, I still got to cut my programming teeth on BASIC in middle school and VB, Java, HTML and JavaScript in high school. Neither langauges that are highly admired, but I had fun taking the classes. (My school also offered C++, PASCAL and Flash.) I have no intention, however, of being a programmer; I'm not that kind of geek!

  155. Re:Kids today...... :-) by MrAnnoyanceToYou · · Score: 1

    I'd personally call Python easier to learn than BASIC. But there's not a whole lot of motivation. I mean, the first thing most people programmed was games. Um..... How long would it take you to make a competitive game then, and how long would it take you now? I mean, NetHack, Moria, Adventure.... These games all could be approached on a graphic level within a few weeks of learning to code. Take a look at a modern game recently? How accessible are the libraries to make a game like it? How easy is it to replicate?

  156. Re:Kids today...... :-) by UltimApe · · Score: 1

    I entered into a computer engineering program to learn how to make games... But I DO know how much is required and I am interested in solving new and inovative problems. Does that mean I win?

    --
    "Infecting minds with my own memetic virus, one post at a time." Ultimape
  157. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
    -- prof.dr.Edsger W.Dijkstra


    Dijkstra was a great computer scientist, but I doubt he was a better programmer than Linus. And Linus' first language was what? Yup, that's right. His computing path was BASIC -> ASM -> C, where he has stayed since.

    I started with BASIC. I bet most Slashdotters did as well, maybe even you. So enough with the hyperbole already.

  158. Johnny Can Code If he/she Really Wants To by ursabear · · Score: 1

    I've read lots of responses to the article, and find lots of interesting (and mostly well-thought-out) thoughts/opinions. Many aspects of truth are revealed in the posters' responses - but I must say that the "kids these days do xxx wrong" thing is over-rated. I think it is far more important to have the attitude of "what can be done to mentor/help the next generation of software professionals."

    In my very humble opinion, it seems like (not enough) good solving-thinking is going on, in combination with the fact that computers are generally viewed as a commodity (from the viewpoint of folks my kids' age). Solving problems with programming languages/environs is very much like the creative process for making music: An understanding of structures and critical key concepts is absolutely imperative. Whether the understanding comes in an innate way or is learned from mentors/teachers/peers, structure and conceptual strength are paramount.

    My kids see our computers as simple commodity things (like a phone or an iPod) - not as fascinating worlds to explore. Getting a young person to seek and find the wonders inside how computers work is not necessarily built in. As always, inspiration is something that cannot be taught or given - only experienced.

  159. Re:Kids today...... :-) by dhasenan · · Score: 1

    I'll never be able to write Doom 3's equivalent alone, at least not within a reasonable period. A kid might eventually be able to equal or at least approach Beckham's success; it's possible, and people do it--alone.

    The first difference is hope.

    The second difference is competition. A kid's interested in soccer especially when he can beat all his friends. Doom 3 is a game with singular complexity; implementing it is one task with one difficulty. Playing soccer is as difficult as your opponents, so you can improve by playing people as good as you or better, or massage your ego by picking easy fights.

    And the thing is, the fun is when you beat someone slightly better than yourself. If you see Doom 3, you won't be satisfied soon with your games until you write something in three dimensions with decent shadows and textures; but if you're playing soccer, you can find decent opponents for your skill level.

    Once you've decided to start programming, then writing a Space Invaders clone can make you positively joyful. But ask a person on the street whether they'd like to do so, and you get a lukewarm response at best.

  160. OOOH, *I'll* tell yuo why Johnny can't code by revlayle · · Score: 4, Funny

    Because Johnny is an idiot:
    * Johnny is the one at your company that has been working there for 10 years
    * No one fires him becuase he "knows a lot of things about the process"
    * Johnny talks about his technological exploits
    * Eveyone else has to debug and fix Johnny's bugs
    * He never asks the other developers any question on how to do something, for fear he will look inferior (too late Johhny!)
    * AND WHEN YOU NEED A FREAKING IP ADDRESS FROM HIS PC???
    You: "Johnny, can you get me your IP Address?"
    Johnny fumbles around his desktop, going through all the Control Panel Options
    You: "'ipconfig' Johnny"
    Johnny: "EYE PEE CONFIG?"
    You: "Yes, you know, the command prompt?"
    Johnny: "What?"
    You: "Never mind... what the status on your code module?"
    Johnny: "Module??"
    You: *head explodes*

  161. Re:Kids today...... :-) by BWJones · · Score: 1

    But I DO know how much is required and I am interested in solving new and inovative problems. Does that mean I win?

    You win if you can then translate those skills into an effective job, succeed beyond your wildest expectations and then as an alum, give money back to your alma mater. :-) Then they give you honorary doctorates and stuff...... :-D

    --
    Visit Jonesblog and say hello.
  162. There is no sample code available anymore by ablaze · · Score: 1

    I remember having sample code for small programs in both the manuals of my C64 and C128D. That's where you could get started. Actually most of the manual was about how to program your computer. That's where I got hooked. I found the computer under the christmas tree und read the manual. It was rather technical, but fascinating nonetheless.

    Then there have been many magazines that had sample programs in it. And I don't mean special programmers' magazines, but normal mainstream magazines for the C64. It was amazing and I miss it very much.

    I don't mean high level software projects like: Understanding OpenOffice.org sourcecode in 24 hours/years, but small, simple fun stuff.

  163. Re:Kids today...... :-) by jimicus · · Score: 1

    Most modern implementations of BASIC (by "modern", read "anything after about 1982" - certainly BBC Basic from 1982 did ;) have implemented some form of support for procedures, FOR loops and WHILE loops.

    Thing is, when Dijkstra wrote his paper, that wasn't the case. Indeed, I don't think support for any of these constructs was ever standardised, so anything which depends heavily on them is likely to be limited to one dialect.

  164. Re:Kids today...... :-) by lowrydr310 · · Score: 2, Funny

    When I was 8, the only code that I knew was load "*",8,1

  165. Re:Kids today...... :-) by Tim+C · · Score: 2, Insightful

    In most households he is introduced at an early age to the computer as a toy and treats it as a toy while growing up. He does not look at it as a toolkit to assemble something usefull. He has no incentive to write anything in the first place and is getting less and less incentive as the personal computing continues to devolve to joe sub-average level.

    You could have said exactly that 24 years ago when I got my first computer (a 16K ZX Spectrum). All most people did with those things was play games; the closest they got to programming was typing LOAD "" and hitting enter.

    It was only really those of us that not only did that, but also typed in program listings (in BASIC) from magazines that went on to experiment with writing code ourselves. My parents didn't provide me with programing resources (although from memory, the Spectrum came with a BASIC manual), or particularly encourage me to experiment, I did it all off my own back. Of course, being me, they didn't *need* to encourage me; at times, it was all they could do to stop me taking things apart to see how they worked...

  166. Re:Kids today...... :-) by Catbeller · · Score: 1, Interesting

    Bingo. I am an olde tyme computer fart, the kind that started in BASIC back in the day. In business, they taught us COBOL and various add-on packages like FOCUS.

    I noticed the rise of object-based code when I was very young, and unlike most, I said "What the HELL is this crap? Are they trying to get rid of normal humans in the coding business?" and like statements.

    Unlike most who jumped in and swam with the OO fishes, I declined the honor. Explanations, in my ignorance:

    OO code was developed by people who think in calculus and set theory. It seems natural to them.
    Most people don't know calculus and never will. The opinions of math majors are immaterial; people don't need calculus, matrix algebra, set theory, information theory, all that you need to even begin to write good code in OO languages.

    Math major are usually geniuses, or have aberational mental processes that let them focus on a problem for days or weeks at a time. I know, I'm one of those people. But most people aren't geniuses, don't care to work on code for days, and don't know why anyone would want to. But OO is designed by those people for those people. It's like a lodge of math geeks.

    This reliance on mathematical geniuses to use languages created by mathematical geniuses lead to some nice job security. But it doesn't help the actualy world, because the world needs code that is simple to write, debug, and maintain. OO is NONE of those things, and yes, I do know about spaghetti code in BASIC and the simple reusability etc. of OO code. But resuability and such can be done in non-OO languages as well; it just takes discipline.

    We are moving into a world where absolutely everything is dependent on code, and the code is incomprehensible to people who haven't had four or five years of solid math training, then years of CS instruction. This is intolerable because there aren't enough such people in the world. People usually don't want to spend a decade of their lives reading books and drinking Jolt just to write a banking app.

    The usual counter argument is "Fuck you, learn math and CS, the past is over, etc.". But I've been both in and out of CS and I have to say that fundamental problems in the real world are not being solved because of the bottleneck caused by the mountain placed in the way of coding for apps needed on the fly. David Brin is right: students and businesses are now consumers of code, not producers.

    Perl is good, Ruby is good, these are things that alleviate the problem a lot. But even now, they are OO-ing Perl and making the CS profs happy -- and it's becoming yet another incomprehensible language with a steep learning curve.

    Um, let me make a simpler argument, the same one I'm responding to, and it's a damned good one. Look at the VERBIAGE on those "modern" programs. What the HELL are you people thinking? Just typing all that slows down development enormously.

    I guess the next thing to do (if I'm so clever) would be to develop a simple, usable language for non-CS students. I kinda think someone did it already, many times. But no students will ever see it.

    CS professors and coders are logjamming development of simpler solutions, because they are fundamentally conservative, deeply so. They have invested most of their lives in learning Rube Goldbergian code architecture and aren't going to change.

    I'll just continue to watch the meltdown.

  167. Grad School by artgeeq · · Score: 1

    I am working on an MS in computer science. It seems that in my program, there is a noticable percentage of young students who can barely write code. ("Perl? What's that?") These students often go into computer security or some area such as networks where, supposedly programming is not required.

    Having done most of my coursework, I have found that I have had a tremendous advantage in being able to program, whereas I have seen students who cannot run into problems. If nothing else, I am better at dividing and conquering, since writing and maintaining moderately complex, good code requires a way of thinking.

    Maybe the University just wants a broader student ba$e.

    Here is an idea. The languages that people use to produce many applications, like Java and Visual Basic, are not the best languages for learning programming.

  168. He could have just downloaded a C64 emu by Anonymous Coward · · Score: 0

    He could have just downloaded a C64 emulator. They don't cost anything. It isn't even too big to download, IIRC.

    That said, it's not *quite* the same as everybody "just knowing" that a BASIC is on their system.

  169. David Brin by westlake · · Score: 1
    Not just kids - article writers too. "Dearth of line programming languages" my arse. the original article itself was a "nothing to see here" filler by someone who needed to write *something* before deadline. Sheesh!

    This is David Brtin.

    Master's in Applied Physics, 1973. Doctorate in Philosophy, 1981. Hugo and Nebula award winner. Author of The Postman.

    While trawling through eBay, one day, (my son) came across listings for archaic 1980s-era computers like the Apple II. "Say, Dad, didn't you write your first novel on one of those?" he asked.

    "Actually, my second. 'Startide Rising.' On an Apple II with Integer Basic and a serial number in five digits. It got stolen, pity. But my first novel, 'Sundiver,' was written on this clever device called a typewrit --"

  170. Re:Kids today...... :-) by Tsa05 · · Score: 1

    I feel as though I advocate Game Maker (gamemaker.nl) to at least 1 new person every day.
    LWATCDR is quite thoroughly correct: "I don't think the problem is the languages. The problem is expectations. When I was a kid everyone wanted to learn to program to write games. "

    The only problem these days is that it's really quite a daunting task just to put animated pictures up on the screen and move them around. In fact, I (who like many here has been programming since the age of 8) found myself losing interest in programming early in college as the dreary tasks like "make Scrabble as a Java Applett!" began to erode the fun I'd once had making text adventures in GW-BASIC.

    I can only imagine that I'm not alone in dreading the amount of "stuff" that goes into what often seems like a simple little game idea (and just to get it to show up on the screen!). I think that's why there are so many Flash games out there--it's a way to get at the graphical side much more quickly. But anyways, my interest in programming was fully restored by this Game Maker software for precisely the right reasons; it's object-oriented, but it sets up the objects for me in a nice point and click interface, there's no "windowing freakin' toolkit," the built-in language provides all the functionality I'd need to make simple 2D and 3D games without requiring me to know all the under-the-hood stuff that practically every other package requires in order to trick the game into working with my hardware. I think things like that are going to be absolutely crucial in the effort to encourage folks to learn programming, and to further the whole homebrew games scene.

  171. Re:Kids today...... :-) by MBGMorden · · Score: 1

    I would just posture a guess (and it's just a guess), that it's moreso because computers can do so damn much these days. I got a Commodore 64 when I was 9 years old or so (it was used and a bit outdated at the time, but it was still a computer; something I desperately wanted). The thing was, you couldn't do much but play a few simple games and program on something like that. Even when I got my first PC (a 486SX 20mhz, 2mb RAM, 80MB hard drive) yeah it had Windows - but besides typing a paper for school (which I still used WP 5.1 for DOS for), it still didn't do much, and I ended up playing around in QBASIC a lot. Despite hating when someone says these days when someone rails against GUI's, back then I really did just hang out in DOS rather than loading Windows. Eventually all that programming paid off; I went to college and cot a CS degree.

    These days though, when a kid gets a computer, he also gets internet access, iTunes, online games, and all sorts of other goodies. The boredom required to play around w/ a compiler never sets in :D. I don't see this as necessarily a bad thing, just an observation.

    --
    "People who think they know everything are very annoying to those of us who do."-Mark Twain
  172. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    BASIC stands for 'Beginners All-Purpose Symbolic Instruction Code'. It was developed at a university by a proffessor and his students with the main goal being to create a very simple and easy to learn programming language. Its widespread adoption and countless remakes were a direct side-effect of its success in this venture.

    admittedly, it had a number of problems and deficencies, chiefly:
    a) it was too simple and couldnt adapt to new methodologies and best practice standards (structured programming, dont use GOTOs,etc.)
    b) the language had no central standard and was constantly recreated, resulting in a lot of versions of BASIC with extraneous, distracting features or designed to do types of programming that BASIC should never have been used to do (pretty much everything other than whats at the back of a math textbook)

    admittedly BASIC is obsolete and there are a range of better choices available as a first language (Pascal,LOGO), and the author exaggerates greatly its absence (I dont see why a mac/win BASIC interpreter was insufficent for what he and his son were trying to accomplish, or why you have to code in simple line by line instructions for getting a feel for how the computer executes an algorithm, particuraly as I believe myself to understand this quite well, and never learned BASIC) but it is very unfair to say BASIC is a horrible learning language.

  173. Ruby by wandazulu · · Score: 1

    As a parent, I was thinking pretty much the same thing that the author did, and have come to the conclusion that Ruby is the way to go; it's fully object-oriented, but doesn't impose such rigorous requirements like Java, it's easy (really really easy), comes built in on my OSX machine, and with irb (the interactive ruby interpreter), I can show my daughters the results in real time. When the program gets bigger than 10 lines, we switch to an editor and write the programs out that way. Simple and straightforward, but with limitless possibilties.

    I looked into Squeak, which is Smalltalk with a kid-friendly feel, but it felt to me (and to them) like being thrown into a candy store and told to take anything and everything; they spent too much time clicking on things just to see what they did or what happened next and didn't get anything done.

    Ultimately I want my kids to understand what's going on behind the curtain, and getting them to understand how "programming" works in general is a good way to go. But more than just showing them that you can write a program to print a Fibernacci sequence is to get them to understand that a computer can do *anything* if you tell it to if you spend the time to figure it out.

  174. Don't forget "Insightful" by Mateo_LeFou · · Score: 2, Insightful

    Parent is dead on in so many ways. Programming is all process (teh P in CPU). Our societal demand for convenience and instant gratification has many victims, but one of the saddest is the general level of intuitiveness among kids & teenagers. Accomplishing something requires steps (an algorithm, if you will). If you generally have accomplished everything by pushing a single button, your ability to analyze a problem -- viz., break it down into steps -- languishes.

    Later in life (in the unlikely event you actually get a job coding) you become one of those guys that just throws hardware and buzzwords at everything

    --
    My turnips listen for the soft cry of your love
    1. Re:Don't forget "Insightful" by gregmac · · Score: 1
      Our societal demand for convenience and instant gratification has many victims, but one of the saddest is the general level of intuitiveness among kids & teenagers. Accomplishing something requires steps (an algorithm, if you will). If you generally have accomplished everything by pushing a single button, your ability to analyze a problem -- viz., break it down into steps -- languishes.


      I'm sure everyone has worked with people that, for example, enter names into a database very inconsistently. We had a bookkeeper at work who did this. The accounting system only had one field for customer name. So sometimes names were entered "Smith, John", other times "John SMITH" or "Mr. John Smith" or "john c smith, mr" etc. (and apply this across the board, not just to names but addresses, phone numbers, and pretty much every other piece of information entered). When we migrated to our new system (which has separate first/last, or company name) I wrote a small program to try and clean it up, and I still spent two days going through by hand fixing things, removing duplicates, etc.

      What really boggles my mind though, is she failed to see why there was a problem at all. How do you teach people the skills to understand why data should be entered logically? I was actually talking to my friends about this the other day. We came to the conclusion that in throughout public school there should be actual graded classes (or 'units') about problem solving, ie doing logic puzzles, and soduku and teaching other deductive reasoning skills. If you can't solve the puzzle, you can't pass the test. You start out simple in grade 2 or 3, and gradually work your way up. By the time they introduce basic algebra ("4 = x + 2") the kids would be laughing at it.

      I realize some people are more logically minded than others, but this style of deductive reasoning is a basic life skill that can be used in every profession, and everyone's daily lives. It's really something they should teach people at a young age.

      --
      Speak before you think
    2. Re:Don't forget "Insightful" by try_anything · · Score: 5, Insightful

      Funny that kids today are pretty good at video games that are longer and more complicated than the ones we played, eh?

      What kids are after is fun. I did a ton of programming when I was a kid, and I never seriously considered doing it for a living until after I graduated from college. It was just fun.

      What's missing is that programming languages used to be built into the computer. For me, BASIC was there when I booted up the computer. Documentation aimed at complete beginners like me was the norm. It would have been hard *not* to program.

      These days the easiest way to start out would be with Python. It seems simple to us, but...

      1 - know it exists
      2 - know how to download the right version for your computer (not a mac or linux version)
      3 - find the installer and know to run it (and know that it's safe)
      4 - figure out how to invoke the installed program (ok, that one's easy)
      5 - find documentation written for beginning programmers
      6 - figure out why python won't run the programs you saved as .doc files

      Can you imagine an eight-year-old Windows user with clueless parents doing all that by himself?

      I didn't have to download anything or know anything about operating systems. I don't remember having to sort through tons of titles like "Advanced BASIC Beowulf Architectures in 2 Minutes for J2EE Certified Hardware Astroengineers" at the bookstore to find one that was right for me. In fact, I'm pretty sure the book I used came in the same box as the computer. Plus, all the computer magazines had program listings in the back that you could type in.

      Microsoft would earn big brownie points with parents if they included an extremely simple IronPython-based (or even Logo-based) "Learn To Program" IDE with every copy of Windows. Twenty years ago, people knew how to write documentation for beginners. (Not children or computerphobes. Not people with congenital learning disabilities. Just beginners, of all kinds and ages.) I'm sure it could be done again.

    3. Re:Don't forget "Insightful" by drauh · · Score: 1

      get your kid a mac, and make sure Terminal.app is in their Dock. OS X comes with Python and pico pre-installed. if you want, install ipython for them.

      --
      This is a tautology.
    4. Re:Don't forget "Insightful" by HiThere · · Score: 1

      Python's a better language, but JavaScript is available without taking any extra work to get it on every platform. (The dialects may differ from browser to browser...but you won't notice that until you start doing something at least a little sophisticated...and that was always true of Basic anyway.)

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    5. Re:Don't forget "Insightful" by rfquerin · · Score: 1

      Ahhh, you brought memories flooding back of column upon column of BASIC code in the back of Compute! magazine. I not only learned basic programming, but learned to type as well. Debugging was basically a search for typos, and of course you had to have complete faith that *they* got the listing right in the first place.

    6. Re:Don't forget "Insightful" by Osiris+Ani · · Score: 1
      OS X comes with Python and pico pre-installed.

      It's nano, actually (err... GNU nano; sorry), not pico.

      [Satori:~] osiris% ls -al /usr/bin/pico
      lrwxr-xr-x 1 root wheel 4 Jul 28 02:53 /usr/bin/pico -> nano

    7. Re:Don't forget "Insightful" by try_anything · · Score: 1

      Maybe along with the "Learn to Program" IDE Microsoft could offer a programming magazine for kids, like "Ranger Rick." Typing in programs from a magazine might be more fun for a kid than downloading them.

    8. Re:Don't forget "Insightful" by caller9 · · Score: 1

      Here here!

      I had the commodore 64. Without an internet to research the process I managed to learn basic and even peek/poke commands to do lower level access. My least favorite learning experience was a code listing of something purported to involve a dragon that started every line with an asterisk or some stupid character. I was so lame that I coded in the * before each line. Can you guess how many synatax errors there were? I hate that publisher to this day, never saw a dragon.

      Load * (the software magazine) was awesome though. Potty Pigeon rocks!. Played some jumpman, some moon lander, some more jumpman.

      It was downhill from there though. Got a Gateway 486/SX 25 eventually, then doing QBASIC and messing around with GORRILAS was freaking awesome. Learned the DOS / Win3.1x OS inside and out, but I was way hooked long before that. I learned C++ in a Borland DOS IDE and was doing some cool stuff even a rudimentary encryption program (for the swimsuit model jpgs of course) in no time.

      I think what contributed a lot to the learning experience was the exposure of the guts of the system. If you couldn't make it work, you got screwed. You had to have a basic understanding of modem initialization commands to play a doom deathmatch, or at least be able to RTFM (after the SoundBlaster Pro + DX/2 upgrade of course).

      So long story short, give your kids BSD. Those little twerps will go from newb to security expert before they're 12. And probably have more karma points on slashdot than you do, you old fart.

    9. Re:Don't forget "Insightful" by Burz · · Score: 1

      On Panther it really is pico, not nano. Or perhaps something you did with Darwinports or Fink replaced pico...

    10. Re:Don't forget "Insightful" by Osiris+Ani · · Score: 1
      On Panther it really is pico, not nano. Or perhaps something you did with Darwinports or Fink replaced pico...

      I'm sorry, but the current shipping version of Mac OS X is Tiger, not Panther. Let me put it this way: The latest version of Mac OS X 10.4.7 (Intel) — you know... the one that ships with my MacBook Pro and my Mac Pro — comes with nano installed, not Pico. Further, the Mac OS X 10.4.7 (PowerPC) that's installed on my Power Mac G4 came with nano, not pico. Once again, there is a static link from /usr/bin/pico to the binary for nano.

      But please, don't just take my word for it. You will find nano, not Pico, on this list.

      To my knowledge, it's always been this way, and it's probably for the same reason that Pico doesn't ship with the Debian Linux distribution. Pine/Pico don't actually have a fully free license, which severely complicates matters when distributing them commercially.

    11. Re:Don't forget "Insightful" by epee1221 · · Score: 1

      Add in a few "figure out what goes in this blank" lines and you've got a pretty good teaching/learning tool.

      --
      "The use-mention distinction" is not "enforced here."
    12. Re:Don't forget "Insightful" by Dasaru · · Score: 1

      I program because it's fun :D And right now I'm in college, and I learned how to program in Visual Basic *Yay!*

    13. Re:Don't forget "Insightful" by raduf · · Score: 1

      Funny that kids today are pretty good at video games that are longer and more complicated than the ones we played, eh?

      Are you kidding?! Last time i watched someone play a contemporary game for half hour i was "WTF?! It's like click, point, click, point, click, point, click, point, click, point, click, point, click, point". Boring as hell. I remember about a week after discovering Dune 2 I was eating with my parents and suddenly i let the fork fall into the plate (splashing stew around) and exclaimed: "U! If i shape it [the defence] like an U, they'll all come right in!". My parents were a bit put of :) Warcraft 1 I couldn't finish because of the "puzzles", but once i got the rules for 2 (defend and harvest i think) i won easely.

      I agree btw, when you say: "It would have been hard *not* to program". Now programming is designed to be done by the few, and it feels. I don't think any amount of work can make that go away. A "programmingforbeginners.org" would help a lot, though...

    14. Re:Don't forget "Insightful" by Technician · · Score: 1

      I remember the 3 pound book that came with DOS 3.21. I aslo noticed the book that came with Windows 98.

      In DOS I could look up the pramaters to set DRIVEPARM to install a 720K floppy. In the Windows book there is nothing regarding editing any system files. It's more geared on how to click, right click and drag and drop.

      --
      The truth shall set you free!
  175. Re:Kids today...... :-) by KermodeBear · · Score: 1

    I wish I had known this eight years ago when I was looking for a college to attend. That's an impressive list of names! At least now I know where to start looking when I feel like going back to school.

    --
    Love sees no species.
  176. Getting Started by Anonymous Coward · · Score: 0

    There are many fine languages and tools which can be used, the problem is the level of setup and understanding some of these tools require.

    Java is nice, but it's still a toy. It requires understanding class libraries, setting up a classpath, and other trivial/non-trivial things. It was meant for beginers, but does a rather poor job of helping the newbie (ie: enforcing certain conventions, file naming, CLASSPATH etc).

    C/C++ are a little bit better, but there is still that pesky #include bussiness.

    Perl suffers from the same problem.

    BASIC was / is nice, because it's a totally self contained language. ROM basic was totally self contained. No Linking errors, dependencies, CLASSPATHS, just type and go.

    Even BASICA and GW-BASIC were as simple as possible. A single file / command and your "development environment" was all setup.

    Modern programming languages today are nothing but cruft. Full of worthless "content" useless poorly documented libraries (I'm talking to you Sun, Java enthusiasts), and non-standard bullshit (looking at you, MSFT, C#,J#).

    Best to start with the BASIC(s), something that just plain works (TM).

  177. Re:Kids today...... :-) by Skrynesaver · · Score: 2, Insightful
    Funny and all though your remark is you are entirely correct. Writing a version of blackjack used to be an impresive feat "when I were a lad"(TM). For kids today, if it doesn't render a credible 3D world, play music(not ^G), and generally act as a complete Multimedia experience no one is impressed anymore. The bar has been set higher and klutzes like me who never got into polygon topography maps just wouldn't have the impetus to code themselves as the bar was set to high.


    Of course you could just point and click in an IDE and have a 250M app that provides you with a windowed environment and voila the same functionality but with theme music and a spinning globe in the background. You'll still need the same 30 lines of logic.

    Sorry I had to ...
    When I were a lad we had to buy Spectrum magazine and type in pages of uninteligable register commands, then we'd run the program and we'd discover we mistyped a garachter on the first page and then you'd go to bed and try again tomorrow, but you tell that to young people today, and they won't believe you!

    --
    "Linux is for noobs"-The new MS fud strategy
  178. Re:Kids today...... :-) by Anonymous Coward · · Score: 0
    *bing!* Nailed on the second post by tomhudson. Class dismissed.

    This is the typical article done by someone who grew up in the Microsoft vaccuum. Of course there's a shortage of good programming tools... if all you've ever seen is Visual Basic and .Net. Try stepping out of the little box that Windows puts you in and you'll discover whole new worlds of programming. Try Python or Ruby - they are just as easy to pick up as Basic was, and my kids are proof.

  179. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Those classes have been replaced by Java, where you don't even worry about resource leaks. Hey, garbage collector takes care of it!

    Bingo... java will be the death of CS programs everywhere. It is such an unbelievable load of crap it makes me want to puke.

  180. Re:Kids today...... :-) by stonecypher · · Score: 1

    Interestingly, a large number of students it seems coming into CS programs at the undergraduate level want to program games, but have no idea how much math and algorithm development goes on when one is crafting new material.

    Interesting: people are going to school for things they don't already know, requiring their professors to teach them things that are part of their curriculum. ... wait, why is that interesting again?

    --
    StoneCypher is Full of BS
  181. Why should Johnny... by Organic+Brain+Damage · · Score: 2, Funny

    ... in the USA bother to learn to program? When Johnny grows up and wants a program, he can just hire a Viruru in India to do it for less than he pays Juan at Taco Bell to make his lunch.

  182. Blah, blah, blah by caderoux · · Score: 1

    Coding of all kinds is hard and requires discipline. It always will. So it will always be restricted to people who have both the aptitude and the initiative. Even someone who wouldn't really categorize themselves a programmer (say a web designer or report designer) will still only be slightly more numerous because the nature of the job requires certain analytical skills and discipline.

    The overall lack of skilled programmers really has nothing to do with the language or a particular choice of programming paradigm - whether COBOL/BASIC/FORTRAN or something more OO or something more exotic or something less readable. Those technologies tend to be matched to problems by being the best tool for solving a particular problem in the best way.

    There can always be a debate about whether it's the right way to teach it, and some people may or may not get exposed to it who could do it, but we don't lament it and make everyone take a top-notch cooking class even though some potentially great chefs may be exposed to terrible cooking teaching as a child and thus be lost to gastronomic history.

    The problems programmers need to solve are programming ones, not try to subvert society to produce more programmers.

  183. Re:Kids today...... :-) by westlake · · Score: 1
    IMHO Dijkstra is right and you are wrong. BASIC is a horrible language for learning to code and it is the wrong language to learn to code. It is not designed as a learning language. It takes the worst out of FORTRAN and mutilates it even further.

    The point is that kids arwn't learning any programming language. Nor are their parents.

    You could have fun programming in BASIC and interesting stuff could be found in the books and magazines available in every drugstore. No one knew or cared if they heading onto a career track.

  184. Peeks and pokes by wonkavader · · Score: 1

    The syntax of peeks and pokes always annoyed me, but you're wrong.

    This stuff rears it's head over and over, and if people knew it, they'd work faster and smarter and without bothering ME.

    Example from last week: Read a binary file, byte by byte, and you need to know about big-endian/little endian differences. A little playing with peek and poke would have trained 'em and I could have spent more time on something else.

    Computer people should know how computers work. Using the old analogy about how you don't need to know how the car works to drive one: We're not drivers, here, we're mechanics/designers. We should know how the car works. Would you want your children driving cars designed by people who didn't know how they worked? I know, I know, it's all little black boxes, and we can design a car the same way -- only the sports model will have to be the size of a Winnebago to hold all that abstraction -- kind of like software, today.

    1. Re:Peeks and pokes by Gr8Apes · · Score: 1

      That depends upon what you're coding in. For instance, that isn't an issue with Java, Smalltalk, or C# (unless you're coding in unsafe blocks).

      --
      The cesspool just got a check and balance.
    2. Re:Peeks and pokes by wonkavader · · Score: 1

      Your answer proves the point. Unless you know about it, you don't know whether you're safe in a given language. In this case, the programmer was using perl. Yes, you can change language to avoid the problem, but if you don't know there's a problem because you have no idea about byte ordering differences, you're either leaning on others because you have mysterious bugs you cannot fix, or you're stuck in your playpen, designed by someone else to protect you from your ignorance.

    3. Re:Peeks and pokes by Gr8Apes · · Score: 1

      I'm all for keeping those folks in their own playpen!

      You make a good point. You should at least know what your language(s) insulates you from.

      --
      The cesspool just got a check and balance.
  185. prof.dr.Edsger W.Dijkstra Is An Idiot by Petersko · · Score: 1

    It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration. -- prof.dr.Edsger W.Dijkstra

    Countless people got their programming start on a Vic-20/C64/C128 in BASIC, and a great many of them went on to learn to program well. If this guy thinks it's practically impossible to teach them good programming, it's because he's a spectacularly bad teacher. His statement sounds like typical elitism-based jackassery.

    1. Re:prof.dr.Edsger W.Dijkstra Is An Idiot by Doctor+Faustus · · Score: 2, Informative

      Do you even know who he was (he died a few years ago)?

      Yes, I think he overstated the case against BASIC (although I believe BASIC was much worse when he wrote that than by the time Commodore came along), but he's probably one of the top ten or so computer science figures of all time, along with John Bachus, John McCarthy, Tony Hoare, John Von Neuman, Alan Turing and a few others.

    2. Re:prof.dr.Edsger W.Dijkstra Is An Idiot by westlake · · Score: 1
      prof.dr.Edsger W.Dijkstra Is An Idiot

      a tad harsh, I auspect. but the geek does tend to cling like grim death to his favorite quotes or misquotes. without ever examining them too closely.

    3. Re:prof.dr.Edsger W.Dijkstra Is An Idiot by Petersko · · Score: 2, Insightful

      "Yes, I think he overstated the case against BASIC (although I believe BASIC was much worse when he wrote that than by the time Commodore came along), but he's probably one of the top ten or so computer science figures of all time, along with John Bachus, John McCarthy, Tony Hoare, John Von Neuman, Alan Turing and a few others."

      I know who he is. But if some guy tells me that the sky is normally a lovely shade of salmon, I don't care if he has a list of credits a mile long. When he says that, he's being an idiot. At least at that point in time.

      I'm a pretty smart guy. My IQ is comfortably nestled around 140. But occasionally I, too, am an idiot.

    4. Re:prof.dr.Edsger W.Dijkstra Is An Idiot by Anonymous Coward · · Score: 0

      My IQ is comfortably nestled around 140. But occasionally I, too, am an idiot.

      Pssh, 140? You're always an idiot ;-)

  186. Kids don't WANT/NEED to code anymore by Opportunist · · Score: 2, Interesting

    That's my rather annihilating verdict on today's youth. If you WANT to create code, it's still possible, and maybe more possible than ever, given that today you have a lot of different and very interesting languages available to you. Yes, they don't come with your computer (unless you're using Linux, which almost invariably has a set of languages bunched with the Distro), but there's lots available online. For free. And on top of it, you get a ton of very sophisticated libraries too that take away a lot of hassle.

    But why bother? Anything you might want is available already. And better than you could do it. We used to write "simple" games like hangman or (later) space invaders, and it was cool 'cause first of all, those games were popular back then and you could actually BUY them. But hey, I could code them and give them to you FOR FREE (which was something back then, without internet and P2P).

    Why bother coding today? Anything you could come up with is invariably inferior to anything you could download.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  187. A language that IS on every computer by aoism · · Score: 1

    While I will probably get flamed for mentioning it, JavaScript interpreters do come with all major operating systems that include web browsers. It seems a natural progression for a kid who is doing a web page for his/her favorite band to decide 'Hey, I want to ask a user some information and use that on my webpage'. This is to say they don't have access to PHP or ASP or any of the 'web' languages in the first place. In addition to that, a lot of games provide rich APIs. Just last night I was marvelling at how extensive of an API World of Warcraft has. These methods aren't exactly as simple as lauching your favorite MSDOS editor and typing away, but there are a variety of options for any aspiring programmer to learn the art or at least dip their toes in the water.

  188. Best quote from TFA by etresoft · · Score: 1
    For all of their high-flown education initiatives (like the "$100 laptop"), they seem bent on providing information consumption devices, not tools that teach creative thinking and technological mastery.

    Bingo!

    PS: I passed on my moderator points to post this!

  189. Re:Kids today...... :-) by Opportunist · · Score: 1

    NO. No, no, no and no!

    I started with BASIC. You have no idea how hard it was for me to grasp the idea of C. When you're set into thinking of a program as a really long thread of lines with the occasional gosub that does little more than "menial tasks", when you're accustomed to global variables and other nonsense that is taught to you through true BASIC, then your step to sophisticated languages is a very far leap.

    Don't poison your kids' minds with BASIC. It's bad for them.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  190. Re:Kids today...... :-) by Opportunist · · Score: 1

    I think what he means is that people join classes and don't even have the basic underlying principles right to be TAUGHT. When someone wants to be taught the principles of computer graphics, I don't want to start with explaining how trignometry and matrix calculations work. I want to presume that they bring this kind of "basic math" with them when they come and sit down to hear how to apply that knowledge to computer graphics.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  191. Re:Kids today...... :-) by Fordiman · · Score: 2, Interesting

    Using the CScript interpreter (comes with windows):
    while(true) WScript.echo("Big Tits");

    Which is technically one line of code, even though it contains five different fundamentals of the language (looping, boolean values, Object indirection, function calls, string values).

    If the question is "Why are there no line languages", then the question is fallacious. They're all line languages. Some of them have non-line editors, but they're all line languages.

    I like CScript for this purpose for a couple of reasons:
    --It's insanely powerful, so far as Javascript goes.
    --The separation of abilities by objects (fso, WScript, etc) makes it easy to poke around to see what you can do in a particular --javascript environment, so you end up with a tigher curve when moving to, say, ActiveScript.
    --It's complex enough to be useful, but simple enough to learn in your spare time (much like PHP, but without the extra download).
    --With a good instructor, it's an excellent primer in object oriented programming.
    --It doesn't teach bad habits like BASIC did (ie: GOTO and spaghetti code)
    --You can't break your computer with it (remember all the shit you could do with Peek and Poke? I lost a system disk that way.)
    --Ok, well, you can, but it's a pain in the butt (using FSO and WScript.Shell...)

    --
    110100 1101000 1101000 1100110 0 1101111 1101000 1100011 1
  192. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Math major are usually geniuses, or have aberational mental processes that let them focus on a problem for days or weeks at a time.

    Maths faculty everywhere wish that were the case.

  193. Re:Kids today...... :-) by Directrix1 · · Score: 1

    I miss Commodore.

    --
    Occam's razor is the blind faith in the natural selection of least resistance and in universal oversimplification. -- EF
  194. Re:Kids today...... :-) by wirelessbuzzers · · Score: 1

    You're trolling, but I'm bored, so I'll respond anyway.

    OO code was developed by people who think in calculus and set theory.

    Not so. The people who think in calculus and set theory developed Haskell. And if you were arguing against Haskell, you might have had a point.

    Perl is good, Ruby is good, these are things that alleviate the problem a lot.

    Perl was designed for writing short, simple programs which do lots of string manipulation. For that it's often the best thing out there. For anything large and complicated, it often becomes difficult to maintain.

    Ruby is as object-oriented as they come, and very clean (but slow) as a result. In fact, it's directly based on the grand-daddy of object-oriented programming, Smalltalk.

    Um, let me make a simpler argument, the same one I'm responding to, and it's a damned good one. Look at the VERBIAGE on those "modern" programs. What the HELL are you people thinking? Just typing all that slows down development enormously.

    That would, in fact, be Java. Also Objective-C. Occasionally C++, but not so much. Pretty much everything else out there has shorter lines.

    I guess the next thing to do (if I'm so clever) would be to develop a simple, usable language for non-CS students. I kinda think someone did it already, many times. But no students will ever see it.

    Hah, like AppleScript? Really, I think a better thing to do would be to teach a Smalltalk-derived OO language like Python or Ruby.

    --
    I hereby place the above post in the public domain.
  195. This article is flawed on many counts by neelm · · Score: 1

    First, do we have any facts to back up the claim kids aren't programming as much as they used to? In an age of greater access, kids able to program is less? Maybe kids using basic are less, but what about the number involved in JavaScript for their MySpace pages? Programming is programming, and if we are just talking about what is your first exposure than we need to look beyond BASIC.

    Next, the author obviously has not looked at python and IDLE. Instant feed back, and the ability to execute statements to see what they do immediately. While other aspects of python may be up for debate, python is the best language for teaching we have ever had.

    Last point I want to make is that kids will overcome anything. I first started with basic, dealing with MS-DOS on a Tandy 1000 and a floppy drive. I learned how to connect to local a BBS and setup Kermit or ZModem to get files to learn more. I learned how to create my own programs and share them on the BBS. Compare that to the Internet and I had a huge barrier to entry - but I never saw a barrier. That's the gift of being a child, your curiosity will lead you and the only thing that stops you is someone tells you can't do that. Even then that doesn't work most of the time.

  196. Re:Kids today...... :-) by An+Onerous+Coward · · Score: 3, Insightful

    Python is easy enough to learn. Easier than BASIC, and much more powerful to boot.

    python
    Python 2.4.3 (#2, Apr 27 2006, 14:43:58)
    [GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> print "Hello, World"
    Hello, World
    >>> 4 + 4
    8
    >>> while True:
    ... print 'sex'
    ...
    sex
    sex
    sex
    sex
    sex
    [and so on]


    Then, when this gets frustrating, teach the rugrat how to save the program in a file, and run it that way.

    I've been reading over the many, many letters that this article generated at Salon, and I'm blown away by the sheer number of people who claim that BASIC programs are somehow interacting with the computer on a lower level than C++, that BASIC somehow underpins the whole object-oriented system. Can someone explain what they're talking about?

    --

    You want the truthiness? You can't handle the truthiness!

  197. Nice Javascript Web IDE by Anonymous Coward · · Score: 0

    Here's a nice web page with a simple "IDE" for playing with JavaScript. Without too much effort, it could be extended to provide a nice enviroment for learning the language.

    http://www.squarefree.com/jsenv/

  198. Re:Kids today...... :-) by Fordiman · · Score: 1

    "make Scrabble as a Java Applett!"

    Hm.

    It would be more easily done in AJAX, sans XML (unless you want score recording or multiplayer).

    --
    110100 1101000 1101000 1100110 0 1101111 1101000 1100011 1
  199. Re:Kids today...... :-) by Opportunist · · Score: 1

    I have made that observation myself. We have a few people with 3+ years of experience with C who are unable to answer what a linker ACTUALLY does with those libraries (or how they are used), what the difference between static and dynamic linking is (beyond "uh, the file gets bigger") and who use breakpoints extensively to debug their code but couldn't answer what an INT3 is.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  200. To code yourself out of a paper bag by The+name+is+Dave.+Ja · · Score: 1

    It's trivial:

    10 GOTO END

    --
    * Using BAGIC language

  201. Coding4Fun! by westlake · · Score: 1
    They are stuck with Windows at home and thus cant program without parents spending thousands on the IDE and other items.

    Visual Studio Express is free. XNA Game Studio Express is free. Microsoft maintains the handsome Coding4Fun site.

    Kid's Programming Language: Missile Command!

    Introduction to Programming LEGO MINDSTORMS

  202. Re:Kids today...... :-) by Opportunist · · Score: 1

    Instant gratification is nice, but you quickly hit the wall with it. Yes, your first steps are leaps, but they are leaps into a dead end, because as soon as you have to get closer to the core with your code because your high level attempts are unable to reach it, you gotta backpedal all the way to zero and relearn (and more often than not, unlearn what you already know first of all) a very different approach.

    It's a bit like Windows and Linux. Yes, the learning curve is a lot steeper with Linux, but in the end you can do a lot more with it.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  203. Re:Kids today...... :-) by LordLucless · · Score: 1

    To build on what dhasenan said...

    A kid playing soccer might eventually become as skilled as Beckham, or at least come close. There is room in the game of soccer for individual skill. 20 years ago, a programmer could write a state-of-the-art game solo, and you probably couldn't tell it from commercial offerings (as they were probably developed in the same fashion). There was room in the industry for an individual to shine.

    Nowadays, however, the state of the art has progressed, and commercial games are developed using teams of 30+ people of various skills, from graphic artist to musician to programmer, and budgets of millions of dollars. An individual just can't compete against that. A kid playing soccer might one day play like Beckham; a kid tapping away on his computer will never be able to recreate Doom 3. It's just not possible. There is no room in the modern game industry for the individual at that level. Game designers might be celebrated, but not game programmers. Programmers are just one cog in the machine, and an easily replaced one at that. Kids want to dream of being a hero, not a cog.

    --
    Just because you're paranoid doesn't mean there isn't an invisible demon about to eat your face
  204. Re:Kids today...... :-) by LiquidCoooled · · Score: 2, Insightful

    The GP was remarking not just on the lack of languages, but the simple fact that right out of the box on day one straight in front of you was a BASIC command prompt.
    You could load a game or write a program.
    Nowadays you have to choose before bootup (consoles) or go out of your way and find the language.

    --
    liqbase :: faster than paper
  205. Re:Kids today...... :-) by ameoba · · Score: 1

    There's plenty of tools out there for any kid who wants to learn, and they -are- doing it. The thing is that, unlike 20 years ago when the author was playing on his Commodore or his Apple, computers are in nearly every home. 20 years ago, fewer people, those more likely to be tinkerers and gadget freaks, had computers. Their children would, more than likely, get interested in tinkering with the machine as well. There's probably more curious kids tinkering with programming today than there ever were.

    He talks about the death of BASIC as a bad thing because it "maps to how computers really work". I'm pretty sure that these days GOTO is considered harmful. Sure, we have all those that had to cut their teeth on assembly that still say it's the best way to learn but programming is -not- about pushing bits around - it's about logic and abstraction. In this day of high-level, interpreted scripting languages and 'limitless' RAM and CPU, why not start higher up the tree?

    --
    my sig's at the bottom of the page.
  206. Perl objects by goombah99 · · Score: 2, Insightful

    perl -we 'print "Big Tits" until 1==0'

    Perl seems to fit the bill, since it can be as simple as you want and doesn't even have the type issues Basic has.

    Object oriented perl is a wonderful was to learn objects. Wait don't scream. I said "learn". I'd been object oriented programming for years in Java and other languages. But I truly did not understand how all the pieces worked till I wrote perl objects. In perl it's like one of those "visible man" models. You learn how inheritance works. You learn how binding of an instance to a class works. You understand closures for the first time. You understand how the namespaces are kept separate and how instance memory is allocated. It's not just some voodoo that simply works, like in JAVA. Moreover all of the voodoo is not out of reach but right there for you to mess with. An instance can change it's own inheritance if you want it to. An instance can create a new method and write it into it's own namespace if it wants to. An instance can trap calls to it's own methods and redirect them or intercept calls to methods that don't exist and respond to them.

    Those features are not unique to perl (for example pyhton implements objects identically to perl). The difference is that All of that object management occurs in perl itself and is not hidden behind syntactic sugar (like python and java). You quickly appreciate what dereferencing costs, etc...

    The other thing that is nice about perl for learning is all of those prefixes like $ @, and so forth. They may make perl look like cursing but they force you to think about what a variable is. When I index out an array, I get what? an array? no I get a scalar, so $X[2] is how I index @X. You can look at someones perl program and if it's written well tell what every word is. You cannot look at a bare name in python or java and tell if it's a method, an array, a hash, a scalar or reference. Perl you can. (Oh and by the way let me explode a perl/pyhton myth. python has more special markup characters in use than perl, the main difference is that in python they are suffixes instead of prefixes and are overloaded with multiple meanings--try counting how many modifiers there are some time (e.g. () , [] ** and so on))

    Now once you learn perl objects. Well it's time to put down the perl and back away slowly. Python, java are much better languages for writing re-usable, easily read, complex object oriented programs. Perl is still a much more powerful language than either. But it's powerful for efficiently creating compact or single use programs quickly. Not for well designed complex systems.

    --
    Some drink at the fountain of knowledge. Others just gargle.
  207. Re:Kids today...... :-) by Mr.+Underbridge · · Score: 1

    You can code spaghettic crap in any language. Basic just made it easier which means you were introduced to the reasons *why* you should write plain, procedural modular code at an earlier stage,

    Not without a jump/goto.

  208. Moo by Chacham · · Score: 1

    Why does everyone need to code? Keeping more people away from it is a good thing, which will raise the overall quality of code.

  209. I have a similar idea about teaching by r00t · · Score: 1

    Several classes at once:

    a. Python
    b. shell scripting and intro to UNIX concepts (awk, sed, sh, etc.)
    c. 1999 standard C, including "restrict" keyword
    d. assembly (x86 and a popular embedded chip, including SIMD and OS instructions)

    None of those are useless shit that nobody uses outside academia.
    There is enough variety to avoid students getting weird ideas like
    "all programming languages use curly braces" or "garbage collection
    is always included and has no cost". Toward the end of the semester,
    do a bit of benchmarking of various simple things.

  210. Graphing Calculators by Anonymous Coward · · Score: 0

    A lot of the kids I know are exposed to simple line programming on their graphing calculators, TI model or what have you. That's how I got started.

  211. Re:Kids today...... :-) by DanQuixote · · Score: 1


    BASIC is a horrible language for learning to code

    So what, we're not talking about optimization here, we are talking about getting kids to sit at the computer, think logically, use APIs/Libraries, and CREATE!
    Yes there are better languages to use, but don't forget just how many many kids found their calling in life despite the shortcomings of BASIC.

    he is introduced at an early age to the computer as a toy and treats it as a toy while growing up.

    This is a "good thing". It is the natural way to go. Small kids pick up a hammer, and HEY, it makes sounds. Toy. Later they go "hey, let's build a tree-house", still a toy, but becomming a tool. Finally they have a home workshop, and the hammer has become indispensible.
    I have played hundreds if not thousands of games over the years. I still think of the computer as a toy. However, that doesn't stop me from getting paid a very competitive wage for working on it.

    On a related note:
    I tried some BASIC with my boys, but it just really wasn't working. I switched to Logo, and got better traction. Finally, I found GameMaker, and it is a real treat! I think it promotes an excellent balance of creativity, logic, and computer savvy.

    Main GameMaker page here.

    --
    "We think people rightly feel that once they buy something, it stays bought," --Suw Charman, Open Rights Grp
  212. Re:Kids today...... :-) by Strolls · · Score: 1
    You should know that the University of Utah has a long history of academic excellence in computer science.
    Not to forget their pioneering work in teapot rendering!!

    Stroller.

  213. Edlin is for wimps by DrewCapu · · Score: 1

    I used to always use copy con

    1. Re:Edlin is for wimps by DaveV1.0 · · Score: 1

      Whimp! I edit the individual bits on the disk platters using a magnet!

      --
      There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
  214. Not text oriented by Spazmania · · Score: 1

    Seems to me absence of a line-oriented programming language is meaningless. The real issues are several:

    1. The OS that came with your PC (Windows) doesn't include ANY programming language at all, line oriented or otherwise.

    2. Today's entry-level computing experience is graphical/windowing oriented, not text oriented. Typing text in an editor (line oriented or otherwise) is not the next natural step for a kid who wants to make the computer do a little more than what his commercial programs already do.

    3. When you're a kid, the very first program you want to write is a game. If you can't impress your friends with your very own game, why bother? A Pacmanish game using the text character set was pretty easy to write in basic. Even a rudimentary first person shooter is quite a bit more difficult.

    --
    Moderating "-1, Disagree" is simple censorship. Have the guts to post your opinion.
  215. Re:Kids today...... :-) by stonecypher · · Score: 1
    No self respecting school gives out an honorary doctorate for a donation. For donations, one gets buildings (or in extreme cases, campuses) named after one's self. A doctorate is a measure of competence. The only situation under which an honorary doctorate should be given out is for an individual who has displayed an extreme competency in a field. Thus, a president who achieved strong ends in foreign policy might get an honorary doctorate in political science. To give a doctorate out in exhange for a donation would be horrific, would ruin the reliability of said university, and is a good way to get a president / provost / chair thrown out on their ear.

    What may be confusing you is the complete lack of standards that many scientific fields, both comp sci (here) and neurophysiology (there) currently have to measure competency. When Bill Gates was given his honorary doctorate, well, it seemed like common sense. If you ask why, you look like a jackass: he is Bill Gates after all, and most people will argue that he has had a profound impact (regardless of good or bad, folks, let's not turn this into a flame war) on computing.

    This is actually a serious problem.

    The person who invented the alkaline hood was a seventeen year old fry cook. In the late 1970s, places like fast food joints had a serious problem: if one of those giant friers caught fire, it was just damned difficult to put out. Fire extinguisher, pah, and unfortunately, fast food doesn't attract the best or the brightest, so many people tried taking it out with water. Brilliant. It was some highschool kid taking a chemistry course who figured out that all you do is dump a bunch of alkalines on the grease, and wham, problem solved. Why? Because the alkalines turned the grease into soap, the fire sped the reaction up, and the soap doesn't burn. Yank the cord, a bunch of white powder drops down, and wham. Common sense, after a fashion; people advocate throwing baking soda on grease fires for the same reason. But this kid turned it into a reliable piece of safety equipment. Needless to say, he patented it, OSHA required it, and this kid was worth nine digits in just a few years.

    Do we give him an honorary medical degree?

    Now, before you yell "of course not," possibly after spitting soda or coffee on your keyboard (sorry,) let's think this through, yes?

    When one asks why Bill Gates has an honorary degree, and keeps asking until an actual answer is had, two responses tend to come about. One is that he made a huge impact on computing that everyone who uses a computer is familiar with, or two, that he got stinking rich. The same is true in both cases of this kid: he had a huge impact on the resteraunt industry with which everyone who works at a resteraunt is familiar, and he got stinking rich. Bill didn't discover any fundamental algorithms or solve any capital-d Difficult problems. He's a pretty decent hacker (look at his Basic ROM before you disagree based on his employees' work, please) who happens to be a highly successful businessperson.

    But we're not giving honorary degrees to Sam Walton, or to Sheikh Zayed Bin Sultan Al Nahyan, or to Larry Ellison. Nobody's chasing around the Vanderbilts, Carnegies, Astors or Rockefellers of this world around with a piece of paper stamped Ph.D.

    There are three fundamental reasons that a university chooses to dole out an honorary degree. Mind you, this doesn't conflict with the single basis I gave earlier. If you want to find a way to flatter someone, you choose some physically adequate feature as a basis. Universities are very good at finding justifications ignorant of their motivations. Anyway, those three fundamental reasons are:
    1. the individual has done something so spectacular that a university feels the need to say thank you. This is spectacularly rare. You see it for people like Louis Pasteur, Noam Chomsky (you should see his stack of honoraries) and Thomas Kuhn. This is for the half dozen Dijkstras that are alive at any given ti
    --
    StoneCypher is Full of BS
  216. Re:Kids today...... :-) by Matilda+the+Hun · · Score: 1

    The same ones they always did--at the age of 8, I was in the computer lab learning Logo. A year or two ago, while flipping through some Linux distro's preinstalled packages, I found Logo's open-source implementation. It's not that there's a dearth of languages, it's that teachers don't want to bother teaching it anymore. And that's a seperate issue entirely.

    --
    Tluin natha Linux xxizzuss uriu olt bwael mon'tun.
  217. Re:Kids today...... :-) by soft_guy · · Score: 1

    When I was 8 years old, I got an Atari 400. Mine came with two add on kits: programming and games. The games kit contained two joysticks, Star Raiders, and Missile Command. The programming kit contained a cassette recorder, a tutorial on BASIC, a BASIC cartridge, and a reference manual.

    The first thing I did with the computer was hook it up verify that it works. Next, I played Missile Command. When that got boring, I played Star Raiders. When that got boring, all I could really do was learn to program. In fact, that summer I was pretty much home alone all day. The only thing on TV was soap operas and it was over 100 degrees outside. Programming was by far the most interesting activity available to me. Making progress and learning a new thing was exciting (and it still is).

    Today, a kid would have 60 channels on TV, a game console probably with tons of games, and the internet to explore.

    That said, I kept reading the article thinking: why not just download an emulator and program in BASIC on that? There are free emulators for the Apple II, Atari 8 Bit, and C-64.

    --
    Avoid Missing Ball for High Score
  218. Re:Kids today...... :-) by An+Onerous+Coward · · Score: 2, Insightful

    Okay, what part of x86 assembly coding does not mutilate your brain beyond recognition? :)

    While I'm at a loss to explain Brin's obsession with BASIC, I think that you and Brin are saying the same thing. There isn't much exposure to the inner workings of the computer by default. If you have Linux, the kid might have a chance, but what comes with Windows by default? cmd.exe? Yech. More important, even on Linux, there is no need to touch the command line in order to do all the fun, eye-popping things that computers are already trained to do. You could become quite adept at manipulating your computer without learning anything about how the computer operates.

    Nor do most kids have an adult on hand to guide them, or even get them started. If a kid tells his parents, "I want to learn to program," they might go out and buy him a computer, then scour all over the Start Menu for the programming program. Teachers generally aren't any better when it comes to knowing how to get a kid on the path to 1337-ness.

    I'm trying to think what a simple programming curriculum for grade schoolers would look like. What programming language would I use? What concepts would I try to teach, and how would I make them comprehensible to the rugrats? I think I'd start with Python, teaching them to use it as a calculator, then teaching them to output, then teaching them to get input and use it as output, then basic program flow. Objects would be a whole big ball of wax that I might not want to start them on straight off...

    --

    You want the truthiness? You can't handle the truthiness!

  219. And thats why Linus can't code Java ;) Its a good thing that whole Linux thing turned out ok for him. I'd hate to image him having to find a job with just those three on his resume.

    --
    Well.. maybe. Or Maybe not. But Definitely not sort of.
  220. Re:Kids today...... :-) by SethEaston · · Score: 0

    I totally agree. I learned IBM assembly language in college and we had to figure out our errors by reading a friggin CORE DUMP. Talk about nerve-racking!! But this taught us the fundamentals of computer theory, not to mention stuff like hexadecimal and octal base numbering systems.


    This helps even today, where I still have to point out my integration testers that 1 gb = 1024 mb, 1 mb = 1024 kb, etc. You would be surprised at how many people are simply not aware of these simple things, people who work in IT. That is why our company imports so many software engineers from India or China. They seem to have learned more of the basic concepts.

  221. Kids Programming Language by Anonymous Coward · · Score: 0

    Even though kids don't have BASIC, there are IDE's publicly available that allow kids to learn how to program in a fun way. I learned about this company while reading through Technology and Learning (magazine geared towards teachers/tech admins in the K-12 arena). http://www.kidsprogramminglanguage.com/

    KPL uses the dotNET framework and allows kids to program in .NET. Now, I know many of your open-source folks are going to freak on that, but, any impression of programming on young minds is better than none. :-)

  222. Pedantic hogwash by The+name+is+Dave.+Ja · · Score: 1

    How about this comparison?

    It is practically impossible to teach good design to students that have had a prior exposure to LEGO: as potential engineers they are mentally mutilated beyond hope of regeneration.

    -with apologies to designers, engineers (especially design engineers), architects, LEGO company, people living in LEGO houses, etc. or anyone else offended by the comparison.

    As with BASIC, kids love playing with LEGO. It's easy to grasp the concepts, but leaves enough space for imagination and creativity. Some of the kits today appear too purpose-built, you can't use your imagination to create much other than what's shown on the box.

    No, I don't know where I'm going with this. But I thought it was a good comparison. I started with BASIC, and ... well, look at me now!

  223. Re:Kids today...... :-) by cant_get_a_good_nick · · Score: 2, Insightful
    It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
    -- prof.dr.Edsger W.Dijkstra


    IMHO Dijkstra is right and you are wrong.

    Hmm, i started on a Timex Sinclair 1000. Ithought for a while i was cool, i had the best alpha geek story around me. Then I moved a couple rows over, and of th3 7 other guys around me, 3 other guys had also started with Timex Sinclair 1000s. Not only did that thing run BASIC, but on a machine so limited it didn't even have a tokenizer, you had to enter your program in a weird pre-tokenized form with BASIC keywords single keys on a keyboard when you were in the right mode. Somehow we were able to get past the mental mutilation and move on to other thngs. I mostly program in C, Shell, and Perl, with some code lying around in C++. The other guys around me program Perl and SQL mostly (i feel sorry for the SQL).
    Most of us MS basic in a variety of forms, on the cheap 650x processor based machines of the 80s (Commodore 64, Apple ][, Atari 800), the age this article is talking about.

    Dijkstra's quote is a fun thing to banter around when you want to stop debate on BASIC, but in my experience is very wrong. Getting your head around how a computer works, there is a CPU coordinating things, what a memory address is how a parser works, getting exposed to these things early and cheaply and fun is the most important. The language has importance yes, but the jump from being a passive user to someone who wishes to control the internals of the machine and able to make an internal model of how it works is a much larger jump than going from BASIC to say, C.
  224. Re:Kids today...... :-) by hikerhat · · Score: 1

    I started with apple basic in elementary school, and I didn't have a problem learning anything else later in life. The idea that by learning one language you somehow can't learn something else later, or have difficulty learning something new, is absurd. It doesn't matter how famous the person who said it is.

  225. MIT Scheme by DimGeo · · Score: 1

    I thought I would be the one to propose Python first, but since it's been done already...

    How about MIT Scheme? Nice, easy to use, powerful.

    Besides, it also gives a great theoretical approach to computing.

  226. Re:Kids today...... :-) by mallardtheduck · · Score: 1

    Dijkstra's comment is hyperbole, not literally true, and is about the BASIC interpreter of his day, not later ones.

    I first programmed in BASIC2 on GEM DESKTOP on an old Amstrad. I moved to QBasic later.
    QBasic was a nice langauge, because it allowed you to write traditional BASIC code or procedualised BASIC (and mix the two). As I became more proficient, my code became more procedural.
    I eventually moved to VB, then to C, then I leared Java, C++, PHP, etc.

    QBasic was a great "gateway" langauge to programming. The fact that a limited copy of it came with every copy of MS DOS and Windows NT/2000 (and was on Windows 95-ME and XP's CD's), meant that it was always available and there was a great online community of QBasic programmers. (Until XP's release meant that most QB 4.5 apps broke.)

    I'll never forget the good old variable type postfixes...

  227. Re:Kids today...... :-) by rk · · Score: 1

    Remember also that Doom 3 (as is the case with most (all?) the big games) was written by a team, and requires much more than software development talent: Programmers, writers, designers, artists, musicians and composers all contribute to the finished project, and a single person with top-flight talent in even two of these categories is unusual, much less in all of them. Beckham might be the best football player in the universe, but I think he'd have a hard time winning by himself against a full team of average talent 13 year olds.

  228. Re:Kids today...... :-) by AJWM · · Score: 1

    Well, not to dispute your main point, with which I agree, (my first two computer languages -- simultaneously -- were Algol and APL, talk about mixed paradigms) but:

    BASIC is a horrible language for learning to code [...] It is not designed as a learning language.

    Unfortunately, it was designed as a learning language: Beginners' All-purpose Symbolic Instruction Code. Of course it was developed in the era of Fortran and Cobol (and years before Paul Allen and Bill Gates created a stripped-down version for the MITS Altair), so I guess it seemed like a good idea at the time.

    But Dijkstra mostly has it right, although he's a bit pessimistic about "without hope of regeneration". There's always some hope, although it's probably inversely proportional to the amount of BASIC the programmer has been exposed to.

    --
    -- Alastair
  229. Salon site: why can't I see the article? by KWTm · · Score: 1

    Somewhat OT, but: when I tried to RTFA (now you see why this is OT?), the site just showed a summary that ended with: "Click on the sponsor logo to read this article and all of Salon.com for FREE".

    I don't see any sponsor logo. Maybe that's because I've got Adblock + Filterset.G Updater, or maybe the Javascript slammed into my NoScript extension.

    Can someone confirm that surfing with IE would show some big flashy logo that you have to click on to see the article?

    Anyway, if they make me choose between clicking on an ad and not reading the article, it's a pretty easy choice for me.

    --
    404555974007725459910684486621289147856453481154 in hex is "You sank my Battleship?"
    [GPG key in journal]
    1. Re:Salon site: why can't I see the article? by $calar · · Score: 1

      Same thing with me. I have no idea, but by the time I figure it out I will have lost interest. Sites that pull this shit I just ignore.

    2. Re:Salon site: why can't I see the article? by nwbvt · · Score: 1

      There is a tiny little banner there which leads to a page with a link to the article and what I assume is a giant fancy Flash ad (I have Flashblock installed, so I didn't have to actually see it).

      --
      Mathematics is made of 50 percent formulas, 50 percent proofs, and 50 percent imagination.
  230. Re:Kids today...... :-) by BWJones · · Score: 1

    Yikes, I think that you did not see the sarcasm in my post... As a scientist I believe that the "winning" is achieving the understanding and knowledge and the sarcasm was intended to be just that in response to a query on winning.

    However, all of that said, I appreciate your post, the time you took to write it and I completely agree with the points you have made.

    Now, I think it's time for *my* coffee. :-)

    --
    Visit Jonesblog and say hello.
  231. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Back when I was learning I thought it was cool to be able to make a simple text guessing game, and making ASCII animation on a Commodore PET was just awesome. It'd be considered totally lame today.

    Yeah, awesome! (reality check: it was pretty lame then too)
    Oops! No, I didn't mean you! Yeah, you were cool.

  232. Python, Javascript. Less common: Logo, Squeek... by dwheeler · · Score: 2, Insightful

    This is bogus. There are many languages that are "easy to learn and give you a response quickly".

    For example, Python is a very good language for teaching the basics of programming, and it's really simple to learn. Javascript also works.

    The old BASIC that he probably remembers (e.g., what ran on Apple IIs, etc.) was actually pretty nasty; functions didn't have parameters, loops were primitive, you couldn't create your own datatypes. You had to UNLEARN a lot of stuff. Yes, modern BASICs are better, but they're now competing with many other also-good languages.

    --
    - David A. Wheeler (see my Secure Programming HOWTO)
  233. Graphing Calculators by HoldenCaulfield · · Score: 1

    I'm surprised that none of the comments mentioning graphing calculators has been moderated highly.

    While I'm not sure what options are available on newer calcs, I know on my trusty old TI-85 using TI Basic, we did a fair amount of programming. By we, I mean I had the good fortune to be in the advanced math classes in high school, and some of our assignments involved writing simple programs (i.e. factoring, quadratic formula, etc).

    I remember that we'd discuss as a class how to write the program, with my teacher writing pseduo-code on the board. He gave us a brief intro to how to do inputs, use variables, and do output, and then we turned us loose, where we were free to work alone, groups, whatever for a few class periods. Granted, there were some students who'd just copy programs from others, but I'd say the vast majority learned about programming (and the math skills that are mentioned in the article) . . . Not bad for public schooling . . .

    The other nice thing about this was being able to read other's code - there are plenty of resources to get TI Basic programs, and reading through the code helped me learn about new features and things (some unique to the TI, others that were just functions, algorithms, etc).

  234. Re:Kids today...... :-) by bladesjester · · Score: 2, Interesting

    I started out programing in BASIC on my CoCo when I was a kid and I had no problem switching to C++ later.

    Maybe I'm just weird, but the point is that using BASIC as a kid doesn't necessarily destroy your brain.

    --
    Everything I need to know I learned by killing smart people and eating their brains.
  235. Dont forget calculators by imaginieus · · Score: 1

    Today's calculators are yesterdays computers. A Ti-83 has about the same resources as an old computer, and it is very easy to write a simple program in BASIC. My first real programming experience was on a TI-83 writing games while I was bored in class.

    I think it a great first language because you dont need to know anything. The calculator has menus of functions you can use (if, else, while, ...) so you can figure out how to program with no instruction. The BASIC on a TI-83 isnt very powerful, but it is very good at sparking a kids interest in programming.

  236. Re:Kids today...... :-) by ultranova · · Score: 1

    OO code was developed by people who think in calculus and set theory. It seems natural to them.
    Most people don't know calculus and never will. The opinions of math majors are immaterial; people don't need calculus, matrix algebra, set theory, information theory, all that you need to even begin to write good code in OO languages.

    I disagree. The main problem with learning OO code is that people overcomplicate it. Objects let you write spaghetti code that makes worst GOTO jungles turn green in envy. Based on code I've seen, that's what often also happens. However, this is not an inherent feature of OO; Java, for example, is no more difficult that C to get started with, and in many ways a lot easier (automatic memory management, built-in thread and GUI subsystems), but most Java projects seem to develop seemingly infinite layers of abstraction; everything gets turned into an interface or subclassed in weird ways, leading to a situation where it's impossible to tell what code is actually being executed at a given point. Add the fact that using threads and not sticking to Java Memory Model (which seems to be too bloody difficult to most people) leads to mysterious random NullPointerExceptions, presumably since the JVM rearranges code with the assumption that JMM has been followed.

    The problem is not OO itself, but rather that people have no idea what problem it was designed to solve (the same is true for procedural programming, but it's a lot simpler so it doesn't show as much). Consequently we get code like I wrote: it looks OO, the same way random letters and spaces look intelligent text, but is completely inane.

    I still say as I've always said: teach people programming techniques in the order they were invented. Start with line-number basic; when programs grow complex enough that subroutines start needing parameters and to call each other, introduce a stack made from an array and a pointer to its current position; then show that the computer can manage the stack itself (procedural languages, like C), and proceed from there. Let the students hit a problem first before showing a solution (and preferably let them work it out themselves); that way they have some idea why and where to use the solution.

    Starting programming studies with a good dose of proper OO techniques (or any "good programming habits", even commenting) produces a programmer that has no idea why he should follow them, and consequently won't bother.

    I guess the next thing to do (if I'm so clever) would be to develop a simple, usable language for non-CS students. I kinda think someone did it already, many times. But no students will ever see it.

    Bash ?-) It has a simple syntax and allows you to use hundreds of specialized programs for solving particular problems. Sure, it's no good for graphical UI, but for automatic background jobs it's supreme.

    --

    Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

  237. scorched earth by Zaharazod · · Score: 1

    I don't think it's because the barrier to entry is too high, rather the barrier to do something cool is in the stratosphere.

    Exactly. Who out there remembers Scorched Earth?

    It was seriously the coolest game I had for my computer at the time, and it was free (well, shareware, but the author probably wasn't making a living off it). It was also pretty simplistic, but at the time, a free/shareware offering from some self-taught hobbyist was competetive enough to be "the best" for some of us, because things like HL2 didn't exist to compare it to.

    The guy who wrote gorillas.bas probably had a similar sense of accomplishment; it was pretty basic (no pun intended), but visually similar to SE. The range of available software (at any price) has simply gotten wider, and its not as easy to impress your friends with a few hundred lines of.. well, anything. But without those interim victories to encourage a novice programmer, a far smaller percentage of hobbyists will go on to learn the (massively more complicated) set of skills necessary to take it to the next step.

  238. What happens when complexity gets out of control by poopie · · Score: 3, Interesting

    This is not just programming... it's everything.

    Programs used to be simpler and written by *ONE PERSON* - you could read and learn from someone else's code. Nowadays, most programmers are just a cog in a wheel using an IDE to implement one function in one library, and they rarely grasp the code in it's entirety

    Cars used to be simple, mechanical entities where the underlying workings hadn't changed much in decades. Nowadays, cars are so chock full of electronics and there's hardly anything improvable by a single person these days

    Electronics used to be "simple" - circuit boards were single layer and traces could be easily seen with the naked eye. ICs were standard parts you could by at Radio Shack. Parts could be hand soldered, removed, and replaced. Nowadays, parts are all custom, miniaturized, with 5-layer circuit boards, and they're just too complex for any one person to fully understand.

    Phones and radios were originally very basic and simple and easy to understand / fix. Nowadays, we satellite radio and cellular phones that VERY FEW people understand enough about to actually work on.

    People used to know how to do everything that it took to run a farm. Managing livestock, crops, construction, markets etc. Nowadays, people just vegetate in their condo, drive to work, sit in front of a computer, and drive home. They don't need to know how to SURVIVE.

    I've said this before... if there were a catastrophic event that destroyed most of society, very few people would have enough knowledge to rebuild what we currently have.

    Therefore, I believe that we as a society are getting dumber because we need to know less, and because modern medicine can keep nearly anyone alive long enough to reproduce, I'd say that evolution of the human species has stopped and that as a species, we're getting weaker.

  239. Re:Kids today...... :-) by AJWM · · Score: 1

    number of people who claim that BASIC programs are somehow interacting with the computer on a lower level than C++, that BASIC somehow underpins the whole object-oriented system. Can someone explain what they're talking about?

    It's hard to explain the inexplicable ;-) My guess is that they've been exposed to VB (like one would be exposed to a virus or to radiation) and generally been braindamag^H^H^H^H^Hwashed by Microsoft.

    --
    -- Alastair
  240. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    >>Why change what isn't broke. Let's keep things simple. For the kid's sake!

    A quick search turns up several line-by-line basic implementations. (YMWV)

  241. Re:Kids today...... :-) by dslauson · · Score: 3, Insightful

    I'm a software engineer. I love writing code, but I'm afraid I'm not seeing the problem here.

    I look at it like this: being a programmer is to computer literacy what being an expert mechanic is to the ability to drive a car. We don't need a society where everybody knows how to write software, just like we don't need a society where everybody knows how to rebuild a carburator.

    Of course, I think it sucks that Windows doesn't ship with a C++ compiler (or whatever, language is not the issue). The anyone willing to do a little tinkering can have the tools they need to write some code quickly, and for free, on the internet. They just need a little encouragement and mentoring.

    Johnny can't play chess. Johnny can't appreciate Fellini films. Whatever. If Johnny's not into those things, then he can pursue something else. The whole "Johnny Can't Code" thing is just nonsense. So what? As long as a kid learns to effectively use a computer, which in todays society means being able to navigate an OS, use a word processor, and run a browser and email client, they're going to be fine. For those of us who enjoy it, there are great and promising careers out there, but don't try to push it off onto everybody else.

  242. Re:Kids today...... :-) by Khmer+Luge · · Score: 0

    And I think you've hit on the central truth with that. Established industries discourage hobbyists. They frown on autodidacts. They recoil in absolute horror at ground-up innovation, because it's something they can't completely control. This won't become an anticapitalist rant (mostly because I'll keep reminding myself not to make it one) but it seems pretty clear that every fascinating, crucial generation of industrial hobbyist, from steam to electricity to electromechanical switching to tubes to IC to hex codes to kernel dev to OOP, has been utterly quashed by big business. Maybe not intentionally, maybe not by evil guffawing overlords in suits, but when's the last time you heard of a guy generating a novel new processor architecture with his C&C machine in rural Canada? He doesn't have the 65-nanometer process. What good is he? It's the same with programming. As a new field, the challenges, tasks and frontiers of programming were within the reach of the intrepid individual. The best games were still a single layer of functionality. Even sprite-based games (Commander Keen, anyone?) were mostly developed by, say, a dinner party full of people. Now there is absolutely no popular computer anything that hasn't been run through three or four separate levels of professional expertise and approval: from engineering through legal through gloss through marketing, back through legal, through sales and through distribution channels. This isn't all explicitly designed to shut out the individual. It's just the scale of the business. It's just the way it is. Remember Preston Tucker? Well, obviously it can't be that way forever. I can't think of any good computer anything that was primarily designed and advanced by a faceless organizational entity (ooh, this one should spark some replies). Innovation needs a place in the market. Where is it? I don't have a really well-defined or well-researched answer, but my general feeling is that much like film and music, a respected "indie" IT industry needs to develop. As intolerably pretentious as that sounds, we need a small-but-growing community of hobbyists, enthusiastis, people who author their own code and personalities who develop impressive, inventive things. Oh wait...we've got that. But the difference between the FOSS/Linux/Unix/whatever world and the indie film/music insustries is simple: The big guys, the money guys, the corporate guys, they haven't figured out how to live and let live. They haven't tried to ape indie culture a little, found they were mostly unsuccessful, and allowed for a slight reduction in their dominance in the name of more innovation in the total marketplace (even if it wasn't coming from them). I've seen this happen over the past 50 years in music and film. Maybe the big fat money guys aren't so thoughtful, but the industry as a whole takes steps to maintain its own existence, relevance and flexibility. IT isn't doing that. Someone doesn't get it. Actually, I'd say everyone doesn't get it. Look at other industries. There is a happy medium. Let's get there and be square.

  243. Not true by kernel_pat · · Score: 1

    I'm 17 and I know a whole host of programming languages.

  244. Re:Kids today...... :-) by atokata · · Score: 1

    I agree. Learning BASIC was the technological equivalent of being in first grade writing, "Mi dae at the zoo!" -- Of course it's not Shakespeare, but it's the foundation of literacy. No one expects an 8 year old to whip out an office suite and more than we expect him to write a concerto, or recreate the works of Dostoyevsky. The key point is that, for some kids, it's *fun* to write silly little programs in BASIC. Hell, look at MySpace right now-- I'm seeing CSS that's definitely the modern day equivalent of:

    10 print "Tits!"
    20 goto 10.


    Yes, we all know Myspace is annoying as all get-out, but at least there are kids who are learning some of the fundamentals of interacting with a computer at a more basic level. Writing annoying profile templates is what's 'cool' right now, and I'll bet that the people who are 12-16, 17, etc, doing so will eventually tire of their childish persuits, and perhaps eventually start programming for real.

  245. Logo, Squeak, Scratch, StarLogo TNG, KPL, ... by KevinGlenRoyGreer · · Score: 1

    There are plenty of compelling easy-entry programming environments out there and they're all better than BASIC. Logo, Squeak, Scratch, StarLogo TNG, Linda, MS's Kid's Programming Language, etc. More information with links on my blog.

  246. Re:Kids today...... :-) by utnapistim · · Score: 1
    Do kids today that are interested in soccer not think it's fun because they can't bend it like Beckham the first time they kick the ball? Do people who like woodworking stop because they can't build a perfectly constructed table and chairs, and instead can only build a crappy bird house? I don't think that's really the problem here.

    I know that doesn't seem to be an issue, but it is. The problem comes from the fact that you have to know a lot of information, for the subtle differences to make sense (and unless you know those, the code you write doesn't get past mediocre).

    It's the same in all activities that require speciffic detailed knowledge: for photography for example, most people go around for the next +XX Mpixels camera and belive a more expensive camera will make them take amasing photographs. On the other hand a good photographer will get excelent results with a consumer camera also.

    Good coding takes time, but programming wannabees don't want to know about that.

    --
    Tie two birds together: although they have four wings, they cannot fly. (The blind man)
  247. Re:Kids today...... :-) by alexq · · Score: 2, Insightful
    This is true, but there is no reason that the level of abstraction needs to be the same as it was 20 years ago. Once you are a hard-core programmer, you are free to learn the lower or higher level as you see fit/need to.


    The "scripting" languages that serve as entry-level tools for today's aspiring programmers -- like Perl and Python -- don't make this experience accessible to students in the same way. BASIC was close enough to the algorithm that you could actually follow the reasoning of the machine as it made choices and followed logical pathways.


    What the author describes here in the article is just the specific 'sweet-spot' that existed for him and many others 20 years ago, but it wasn't necessary. I'm sure 20 years ago people were complaining that learning this code was not right - you needed to know the actual machine code, or the layout of the processor internally, what registers mean, etc. There are always levels of abstraction, but attaching such and important meaning to "the way I learned things" when there really isn't one is kind of meaningless, I think.

  248. hmmm makes me wonder...? by tfarrell67 · · Score: 1

    Being an avid Linux user I have to wonder where I would be if a young Linus Torvalds did not have access to his first computer (I think a Commodore 64) and if all the software he wanted was readily available. I guess we wouldn't have Linux. Maybe David Brin, the auther of "Why Johnny Can't Code", has a valid point after all.
    I think his point was; as we are moving forward, which is good, let us not make the past obsolete in the process. To use his automotive analogy: new cars today are amazingly tech, but you can still buy a brand new recently manufactured 350 small block to put into your muscle car. For all the new the old hasn't been forgotten or written off as useless.
    More importantly I believe the auther wanted to give you something to think about not complain about.
    One other note: Why is it whenever someone writes something thought provoking there are so many people that view it as a last minute article to meet an editor's deadline?

  249. Re:Kids today...... :-) by stonecypher · · Score: 1

    Perhaps you didn't read my entire post. I certainly did see the sarcasm, which is why I wrote "Just because you meant it as a joke doesn't mean that saying it isn't a serious problem." I'm the first guy on the barrel telling inappropriate jokes, except about what I do for a living. You don't see me cracking wise about how Nintendo games are really a (insert paranoid theory here.) Why? Because some people take jokes seriously, when given by authorities.

    Saying it's a joke makes it more serious, not less so. Glib disregard for your authority - as a neuroscientist teaching other neuroscientists - is frankly terrifying.

    --
    StoneCypher is Full of BS
  250. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    My university used Java as a teaching language, but only had one or two classes that focused on actually teaching Java (one of which was the initial class, and managed to weed out a large portion of the fuckwits that were in CS because they thought they could make a lot of money). Basically, their assumption was if you didn't have the will to learn the language on your own, you were weed out material.

    That said, I only took about a half dozen classes that actually used Java. The rest, used a lot of other languages, from ASM to C to Lisp. In all of those classes you were expeced to learn the language yourself (with help from the teacher/TA's). For example, in the Operating System Design class, there was not in class instruction on C++, but all the coursework was done with it. It was sink or swim for the most part.

  251. Re:Kids today...... :-) by jffkg0il · · Score: 1

    Don't forget about kid specific languages like Netlogo and Squeak (http://squeak.org/).

  252. Re:Kids today...... :-) by A*OnYourA** · · Score: 1

    The key is what "awoke a desire to learn more programming."

    With my generation (I'm 24) and younger that's video games... and to a lesser degree robots and web programming. I went into Comp Sci because of video games, and finished my degree liking programming enough where I didn't need to program games after college.

    Given the attention span of the current generation, kids need to see quick results. I would recommend messing around with the script editor in Second Life because you see results instantaneously. You can bring objects to life within minutes.

    For making robots, there's Lego Mindstorms. For web programming I recently fell in love with Google's GWT, but that's a little too bleeding edge for some parents. Maybe giving them some html to "pimp out their myspace" might inspire them? I don't know.

  253. Re:Kids today...... :-) by iamacat · · Score: 1

    int step = 5;
    for (;;) {
         step = myFunc(step);
         switch(step) {
         case 7:
              ...
              (no break)
         case 1:
              ...
              break;
         case NNN...
         }
    }

    Guess what, it's even a recommended practice to model a finite state machine. And gotos would be more readable in some cases - for example when states have their own case statements.

  254. Re:Kids today...... :-) by drinkypoo · · Score: 1
    The issue is one of pedagogy--which language can kids learn at an early age? I was coding 1000 line programs in BASIC at age 8, and I wasn't alone in that.

    The fact that you were using a brain damaged language isn't what enabled you to code in it. I was using Logo at the same age, and Logo is procedural, unlike Basic.

    BASIC is fine without line numbers. Line numbers are stupid. There is no reason to use them today. When you program in assembler, you don't use line numbers. In fact, normally we use macro assemblers, and we have access to macros, labels, and other niceties so that we don't have to keep track of addresses, which would be the equivalent to line numbers in this case.

    Now, I agree that IDEs are not an appropriate learning tool if they hold your hand too much. I'm picturing someone using VB as a learning tool, where you start typing the name of a function and it pops down, and you can look everything up in the online help. When I learned assembler (as much of it as I learned anyway) we did it on DOS/x86, and mind you this was just a few years ago. We used MASM, and its built-in editor (because it does build/test/debug) but it doesn't have all the niceties of visual studio, of course.

    But look, if line numbers are the answer, it must have been a stupid question. Their day is done.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  255. Re:Kids today...... :-) by Doctor+Memory · · Score: 1

    Actually, I understood the GP to mean that lots of people sign up for CS programs, then wind up bailing or failing because they didn't know how much "extraneous" work was involved.

    --
    Just junk food for thought...
  256. Re:Kids today...... :-) by orasio · · Score: 1

    You learned BASIC because you just wanted to.

    I learned LOGO on a Texas Instruments color computer the size of a spectrum computer (I don't know which model or processor but it was Z80s time, 1985 probably ), at age 8, and it had if, while/for loops, and a nice structured layout.
    Even the rudiment of objects was there, with "actors", AKA sprites, you could draw some single-color character, then told it to move, and ok, everything worked right away.
    We even built a little game with collision detection (the "you are a fish and you try not to bump into the other moving fish in the fishtank" game) .
    Then some interactive illustrated stories.

    At age 9, I did the second module, and learned BASIC on a green screen PC.
    I couldn't believe how difficult it was to program with GOTO and GOSUB, and the lack of ability it had for simple tasks. And line numbering, I never understood that . Well, of course, I understood why BASIC was that way, when I learned assembly language 10 years later, of course.

    This was all 20 years ago, but my point is that the good thing about BASIC is not that it was easy, it was much harder than other languages, much harder than Pascal, (from a human point of view only, of course, I know BASIC is much easier to implement).

    The "BASIC" name refers to implementation, not programming in it. There's nothing basic about programming in BASIC. It's more complex for a human than structured programming, making sense of GOTO. Line numbers are unneeded complexity. What I think is that BASIC owes its popularity _only_ to availability, and not ease of use. Any structured language is much easier to grasp for people without any knowledge.

  257. Emulation by Anonymous Coward · · Score: 0

    I think he just inadvertently brought forth a solution to his dilemna. A C64 emulator provides what he is looking for... A console based BASIC interpreter.

  258. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    For this don't go to college/university, but evening class. A good college education is teaching you stuff BEYOND the mechanics of the discipline, so that one day you (OK, definitely not YOU, but a generic you) can contribute your part to human knowledge. Go and get your eyes checked, your myopia must hurt!!!!

  259. Re:Kids today...... :-) by Forge · · Score: 1

    Ohmm. There are a few places to download QBASIC still and it dose run on XP (if a little too fast to play Nibbles on a 3Ghz machine). Too lazy to create links though so here are the 1st site and the actual zip file I found there.

    http://www.uv.tietgen.dk/staff/mlha/Download/DOS/# QBASIC
    http://www.uv.tietgen.dk/staff/mlha/Download/DOS/m icrosoft/qbasic11.zip

    --
    --= Isn't it surprising how badly I spell ?
  260. Re:Kids today...... :-) by drinkypoo · · Score: 1

    Jesus H Christ, what do you people have against Logo? FMSlogo is a free, Open Source implementation of Logo which even supports modern features like TCP/IP networking. It's procedural and straightforward, and most importantly it immediately gets kids interested in programming because they can type things and see things happen on the screen right away. Logo is in many ways the ideal first language for this reason. It doesn't teach you a bunch of crap you have to unlearn.

    With that said, line number-based BASIC was a reasonable language to prepare someone for writing assembly code by hand, without the benefit of an assembler. It is a grave mistake to use it for anything else.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  261. Why Johnny can't read? by ErGalvao · · Score: 1

    The link leads to a page where I've found on big ugly Times New Roman Letters "Click on the sponsor logo to read this article and all of Salon for free". Okay, I click it, and then here comes the huge ad movie...

    Gee, thanks... Instead of finding why the hell johnny can't code now I'm driving an Accura...

    --
    Er Galvão Abbott - IT Consultant and Developer
  262. Why does everyone assume people AREN'T coding? by Anonymous Coward · · Score: 0

    Look around folks....how many PHP scripts and scripters under 10 do you see? I see a lot of them. That's all code.

    Hell, I won't even go into the Javascript coding and myspaces pages. Yes, lots just find code snippets and slap them on their page without thinking....but isn't that what most people did with our 10 PRINT "Hello World", 20 GOTO 10 BASIC programs?

  263. Re:Kids today...... :-) by ProfFalcon · · Score: 1

    I started out programing in BASIC on my CoCo when I was a kid and I had no problem switching to C++ later.

    Maybe I'm just weird, but the point is that using BASIC as a kid doesn't necessarily destroy your brain.

    --

    Everything I need to know I learned by killing smart people and eating their brains.

    I think your sig sums it up. You did have your brain mutilated but you learned C++ through brain-dinners.

    I also learned on BASIC on a CoCo. Studying the long lists of code as I was transcribing it from the magazines until I knew what was going on. BASIC itself allows someone to destroy their brain. It does not force them to. Early on, I learned (un)maintainability of spaghetti code and made better use of GOSUB than was generally the case. I observed the code of others and saw how bad things really could be. I made myself more disciplined with my code because not being disciplined was incredibly painful when you were loading to and from cassette tapes.

    The transition to other languages was not that painful. ASM caused me to be disciplined as well.

    --
    Simply stating [Citation Needed] does not automatically make you insightful or brilliant.
  264. Re:Kids today...... :-) by Marxist+Hacker+42 · · Score: 2, Insightful

    Not without a jump/goto.

    What do you think a procedure call is, if not a Gosub? What do you think an if statement is, if not a JNE or JEQ?

    --
    SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
  265. Re:Kids today...... :-) by mrbooze · · Score: 1

    I learned BASIC first as a child, like a lot of people, then in college I went to Pascal, where I had to actually learn how to do things "right" then moved on to Fortran, C, etc.

    It's pure bolognium that someone who has learned basic first can't be taught good programming. The fact that BASIC teaches bad habits doesn't make correcting those habits impossible. Correcting bad habits is practically what much teaching is for.

  266. Re:Kids today...... :-) by Doctor+Memory · · Score: 1
    the good thing about BASIC is not that it was easy
    No, the thing about BASIC was that it was interpreted, so you had immediate gratification ("? 'cool!'" and your computer said "cool!"), plus it made debugging pretty easy:

    INTEGER OVERFLOW ON LINE 430
    > LIST 430
    430 LET Z=2^X+1
    > ? X
    X: 16
    > 430 IF X CONTINUE

    This was the great strength of BASIC.
    --
    Just junk food for thought...
  267. Depends on the variant of BASIC used by Space+cowboy · · Score: 1

    On the BBC micro I don't think I ever used a GOTO or GOSUB. It was all DO...WHILE, REPEAT...UNTIL, DEFPROC and DEFFN (procedures and functions), etc. etc.

    And then there was the built-in 2-pass assembler with access to the BASIC variables and functions. Truly an awesome (in the real, not the Californian sense) machine to learn on. Oh, and it had co-processors, floppy and hard disks, a network interface, a user-io port (digital and analogue), plug-in ROMs, etc. etc.

    A 32-bit version of the BBC micro would *still* be an excellent way to learn programming. It was designed for the education market, and it was designed really well - elegant, fast (for the time), and structured. One of the best micros ever invented IMHO, and a tribute to the designers.

    Simon

    --
    Physicists get Hadrons!
  268. Au Contraire by vtcodger · · Score: 1
    ***IMHO Dijkstra is right and you are wrong. BASIC is a horrible language for learning to code and it is the wrong language to learn to code. It is not designed as a learning language.***

    Most of your discussion is a matter of taste and fashion, but one point is I believe just plain wrong. Kemeny and Kurtz most certainly DID design BASIC as a learning language. A few minutes research on the Internet should make that clear. See http://www.columbia.edu/~jrh29/kemeny.html There's no way to know if they would have designed their language the same way a decade or two later. I'd guess probably not, but I doubt Dijkstra would have liked whatever they designed then any better. Kemeny (who has a record every bit as illustrious as Dijkstra's) and Dijkstra worship at different alters in the church of computing.. While I'm not particularly a fan of BASIC, I can't say that I'm overwhelmed by the products of Dijkstra's ideas. There have been innumerable times when I have felt that code readability would be enhanced by a few judiciously placed GOTOs. And frankly, I'd rather deal with a well written 50,000 line FORTRAN program than 3000 short "encapsulated" subprograms in some "modern" language. When a simple task is fragmented into more than 5 entities, I run out of fingers to mark pages.

    --
    You can't see ANYTHING from a car, You've got to get out of the goddamned contraption and walk...Edward Abbey
  269. Re:Kids today...... :-) by Doctor+Memory · · Score: 1

    D'oh! That should read:
    > 430 IF X < 16 THEN Z=2^X+1 ELSE Z=-1
    > CONTINUE

    --
    Just junk food for thought...
  270. Re:Kids today...... :-) by Dan+Morenus · · Score: 1
    10 PRINT "Big Tits"

    What? You had lowercase letters? Luxury!
    --
    -- Conserve binary trees; recycle your email. --
  271. Re:Kids today...... :-) by Doctor+Memory · · Score: 1
    The same college, now starts teaching kids some RAD languages, Java, C# and whatnot.
    This isn't necessarily a bad thing. When I started college, the language du jour was Pascal, so that's what we learned and used for our first-year courses. However, in order to take any of the high-level courses (language design, compiler design, OS design), you had to take the assembly language course.

    We also had a file systems design course where we implemented the UNIX v6 filesystems (block devices, inodes and all) in Pascal. Now THAT was nasty.... (At the time. Now I see it as one of the best courses I ever took.)
    --
    Just junk food for thought...
  272. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    I disagree with this for a fairly strange reason (Dijkstra's quote, not the rest of your post). I started off with BASIC, then moved on to x86 assembly and then C++. My first high school program was in QBASIC and as an extra credit program I wrote a huge graphical baseball game. It was *a mess* full of GOTOs and other horrible programming concepts. After writing this project I moved on to my school's Pascal then C++ classes. It took me about a day after working with real languages to realize how horrible those QBASIC practices really are. So basically the reason I disagree with you is because I learned the hard way exactly why GOTOs are bad. Maintaining a 2000+ line program full of literally hundreds of GOTO statements is next to impossible. When I compared my QB projects next to my Pascal and C++ ones, it was so much easier to read the code and maintain larger projects.

    Basically...it's important to teach why you should *not* do something too.

  273. It's David Brin, and he's right.... by Ying+Hu · · Score: 1

    Some have noticed, and the rest should - the article was written by David Brin, physicist and writer, author of some of the best science fiction novels of any era, but certainly of his - great stories, acceptable technical extrapolation, containing fascinating intuitive insights.

    The pure programmers commenting here in various threads may object to Basic as a useful language, and even as a (beginning) training language, but Brin's viewpoint would not be that of a pure software developer. His background is as a physical scientist - someone with wide curiosity and extensive technical expertise. He believes that tinkering as a child with something like Basic, with its low barrier to entry, will foster general technical curiosity, introduce the idea of programming, and teach something about the plan of the machines on which it is run. Among those of us of a certain age, who has not heard engineers and professors complain about young people nowadays not being able to do general problem-solving because they have never spent extensive time just taking apart and reassembling machines (orignally it was cars - Brin's comments are dead-on there), and later, for some, early computers and other electronics, especially ham radio. My grandfather, a building engineer, took his first car, a Model-T, apart and spread it out all over the lawn before reassembling it, correctly. How many of us have done, or could do, that?

    And how many of the programmers who, during the 80's, built the main 'infrastructure' of Unix, the Macintosh, and the Internet got their starts using Basic ten or so years earlier as kids?

  274. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    I miss the Amiga...

    I also don't know why the article writer doesn't get an emulator.

  275. Emulators by figa · · Score: 1

    I took someone's advice from Slashdot a while back and tried to teach my daughter programming using Squeak. I made the mistake of stumbling around, thinking we would both learn about it as we go. It was a disaster, and after a half hour of fumbling with it, I gave up.

    I started thinking about how to approach programming with her again, and I found myself wishing she could work with computers the way I did when I was a kid. Then I realized that all the computers I loved are still around as emulators. So I'm going to give it a shot again with a vintage BASIC book for kids and a C64 emulator. When she's comfortable with BASIC, I'll move her to KPL. I don't think kids will be put off by the primitive graphics if you start them early enough. My brother has been writing Atari games for fun, and my daughters enjoy those.

    When I started programming, the thing I found that was hardest was working with the keyboard. BASIC on the Palm or Windows CE might work well as an option, with handwriting recognition.

  276. Re:Kids today...... :-) by Opportunist · · Score: 1

    ASM can teach you discipline or spaghetti code. Depending on whether your projects have to be maintained later. :)

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  277. Yeah, and asm, debug, and call -151 (n/t) by Anonymous Coward · · Score: 0

    n/t

  278. Re:Kids today...... :-) by Fordiman · · Score: 1

    ?
    [Start] [Accessories] [Notepad]
    *typity tapity some JavaScript*
    [File] [Save As...] "myscript.js"
    [Start] [Run] "cmd" <Enter>
    "cscript myscript.js" <Enter>

    That's 'Out of your way'? Granted, it's not in the start menu, but it IS a global command from the command line. I mean, if you're programming, you expect a little system navigation, right? Hell, get 'em used to it early, I say.

    --
    110100 1101000 1101000 1100110 0 1101111 1101000 1100011 1
  279. A possible substitute - PLT Scheme by Ying+Hu · · Score: 1

    Another possible solution to this problem is PLT Scheme - a functional programming language with an 'IDE' that has a marvelous code-stepper, to watch each step of what happens, and which can be set for levels of language skill - beginner, intermediate, etc., whose error-messages are specific to that skill level. Oh, and it has a widely admired training book, How to Design Programs, as well.

  280. Re:Kids today...... :-) by ncc74656 · · Score: 1
    Before they did anything else they were writing programs. Simple ones that started the game. Next they were playing with loops:

    10 PRINT "Big Tits"
    20 GOTO 10

    Something like this would've been more likely (and more useful):

    10 PRINT CHR$(4);"PR#1"
    20 FOR I=1 TO 200
    30 PRINT "I will not hide behind the Fifth Amendment"
    40 NEXI I
    50 PRINT CHR$(4);"PR#0"
    --
    20 January 2017: the End of an Error.
  281. Re:What happens when complexity gets out of contro by bnenning · · Score: 2, Insightful

    Division of labor is good. If everybody has to be fully self-sufficient, that greatly reduces the opportunity to focus on a particular area and make advancements that everyone can benefit from.

    if there were a catastrophic event that destroyed most of society, very few people would have enough knowledge to rebuild what we currently have.

    True and unavoidable. Unless we go back to the caves, so "rebuilding" would be easier.

    Therefore, I believe that we as a society are getting dumber because we need to know less

    Collectively we know far more than we did in the past, and thus the percentage of that knowledge that any one individual can have is less.

    because modern medicine can keep nearly anyone alive long enough to reproduce, I'd say that evolution of the human species has stopped

    Give biotech a few decades.

    --
    How to solve most of our problems: 1.Lots of nuclear plants. 2.Cure aging.
  282. Re:Kids today...... :-) by slim-t · · Score: 1
    Dijkstra said it was impossible to teach good programming to students that have had prior exposure to BASIC.


    I had prior exposure to BASIC. In fact, the only programming class I ever learned anything in was a summer "College for Kids" BASIC class when I was 11. After that, I was self taught. Paid for quite of bit of college writing shareware. When I finally got around to taking programming classes my 3rd year of college, I'd taught myself well enough that I didn't need to go to class except for the exams. It seemed most of the other students struggled. I hated group assignments in computer science classes.


    My argument to Dijkstra would be it's hard to teach good programming to anybody. The person needs to learn it for themselves.

  283. Re:What happens when complexity gets out of contro by theonetruekeebler · · Score: 1
    You're absolutely right. My first computer was an Atari 400 and at the age of 12 or so I was able to learn almost the entire computer, and certainly was able to examine the entire computer. Want cyan letters? Put a 3 in this memory location. Want to read the joystick? Its output is at this memory location. Want to design your own character set? Here's the layout and here's how to make it point to your charset. Here's how to link a pair of eight-bit sound channels into a single sixteen-bit channel. Here's how to make it play Bach's Toccata and Fugue. My first real programming project was a little joystick game where my dot could chase my brother's dot all around the TV screen. I rigged it so my dot could cheat.

    No operating system, no system calls, no object-oriented API -- just a BASIC cartridge, three books and a magazine subscription. I picked up some awful habits learning how make my code run faster.

    Being able to examine and manipulate every single component of a system, being able to see how the entire thing worked, was an invaluable experience. I'm saddened that my boy may not have a chance for that level of intimacy and control over a computer. OTOH all the things I spent years learning are a natural part of his world, and in a few years he'll be doing things so far beyond my comprehension that not having a prehistoric computer is probably a much smaller loss than I'm taking it for.

    --
    This is not my sandwich.
  284. Re:Kids today...... :-) by ncc74656 · · Score: 1
    You can code spaghettic crap in any language. Basic just made it easier

    I'd like to see you try to create spaghetti code in Pascal. It's kinda like the idea behind 1984's Newspeak: if certain words (like GOTO) don't exist in a language, then "bad" ideas (like spaghetti code) become impossible to express.

    --
    20 January 2017: the End of an Error.
  285. Re:Kids today...... :-) by Brickwall · · Score: 1
    I studied programming at university, and learned various versions of Fortran, Assembly Language, Algol, Lisp, and some strange one-offs like Spitbol and Snobol. Of course, I learned BASIC too.

    Today, I work in an office developing applications in Visual Basic to support our sales teams. I know all about structured programming, and most of my apps are streams of CASE statements and sub and function calls. I haven't used a GOTO (or even an EXIT SUB) in years. I know that using GOTO's might make it marginally quicker to develop an app; I also know it makes it infinitely harder to maintain it six months down the line. So I make the extra effort to do things the right way.

    I think the Visual Basic IDE is a good development environment. It gives me tons of easy to use trace and watch features, it automatically checks syntax errors (when I get on a roll, my typing is not so good), etc. I wish its error messages were a little less cryptic, but I had the same problems in Lisp and Pascal.

    Granted, I'm not developing high graphics games, or interactive web sites, and I'm not conversant with Perl, Python, or php. So if someone wants to say they are better, I'm not going to argue. But to say that Visual Basic can't produce readable, structured code is just wrong.

    --
    What was once true, is no longer so
  286. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Consider the learning curve of C++ vs. BASIC!

    Also... Which one was intended as a small educational language, and which one is a bloated 'design by committee' reference implementation of a fundementally flawed object model?

  287. missing the point by c0reboarder · · Score: 1

    This article focuses too much on, 'There is no good "learning" programming language that is installed with modern OS's that kids can actually stumble upon and gain interest in.'

    Ok, someone pointed out you can create a .vbs and run it, but how is some kid going to find it? It takes a programmer parent to show them. When I got my first computer it loaded a DOS prompt and I had to type a command to open windows, or a game, or whatever. This forced me to do something, and BASIC was there, one command away and I was in an editor just as easy as I was in windows.

    If I was 15 years younger I don't think I ever would have started playing around with a programming language. In this sense the article is right

    However, I think times change and there are still plenty of opportunities. In jr high and high school math classes they are teaching kids how to program their graphing calculators that have easy to learn line programming languages on them. At some point this could make a kid curious enough to move on to VB or something of that sort. There's also the internet. Everyone wants to have a web page or customise their myspace page or something along those lines. Sure it's not mathematical programming, but it could be enough to spark interest in computers and programming.

    As so many people here agree (and many disagree) line level languages may not be the best tools to learn how to really program. But I'm sure that we can all agree there needs to be somthing that sparks an interest in programming for an individual to actually pick up the trade. The CS program at the university I graduated from started with 2 semesters of Java, then C/C++, then you took a compilers course, and a micro architecture course, at some point you learned assembly. The point is some of this stuff that the older generations were forced into from the begining just seems boring to most kids until they are emersed enough so that the lower levels of computing can interest them. Sure when I started my degree just 6 years ago there were a handful of self taught programmers like myself in the intro level classes, but 75% of the new CS majors were interested in it because they liked using modern programs, or creating things on the web.

    It would be great if we could just expect future generations to be inspired the same way we were, but it's not going to happen. The class room is going to need to evolve in order to get kids that don't grow up with geeky parents interested in coding. It's a process that's already begun, but as we know evolution can take time. The article has some good points, but it is kind of like saying that because modern cars are so much more complex and difficult to work on that we won't have enough people interested in Mechanics. No, we just need to realize times have changed and that we need to adjust our lines of thinking and the courses we offer students to get them interested.

  288. the end says it all by 6 · · Score: 1

    The last paragraph of the article ...Microsoft and Apple and all the big-time education-computerizing reformers of the MIT Media Lab are failing, miserably. For all of their high-flown education initiatives (like the "$100 laptop"), they seem bent on providing information consumption devices, not tools that teach creative thinking and technological mastery...

    Sums up the change in our society nicely. No longer are we citizens called upon to create our countries future. Instead we are more and more seen as nothing more than consumers whose purpose is to purchase the output of our corporate masters.

  289. Re:Kids today...... :-) by prmths · · Score: 1

    I work as a contractor at a large computer company. All the code i've seen coming out of my peers is spaghetti crap code. All in C. A lot more dangerous IMHO because they dont free malloc'd strings, lots of potential seg faults and just a general lack of understanding of the language. I had to spend an hour explaining why a standard function that returns a string pointer requires its returned string to be freed after use.... I still dont think he understood.
    Not to mention a complete lack of understanding in the difference in how much time and resources it takes to process a file live on the disk compared to in memory. (small files, but still)
    and he was at a complete loss at why his printcap processor took 2 minutes and mine worked instantly.
    I'm no programming god, but SHIT! 2 minutes to process a printcap file with 10+ entries?
    quite sad.

  290. Basic... by CFBMoo1 · · Score: 1

    Started with a Radio Shack Coco 2, 16k of ram. All basic, and it was a blast. Got me excited about doing more programming later on and tearing apart my old 286, which had to go back to the shop and get repaired. Then I tore it apart again after I got it home. Though successfully rebuilt it the second time around.

    When I was coding on my old coco I did programs that had light cycles of tron, tape cassette drive access, and other fun stuff. I even tried coding pictures of Voltron and other fun things. It was neat to play with and simple. Got me more interested in doing computer programming and other things as well. No real structures or concepts to worry about right off. Just good clean fun and an introduction to take the first fun step to learning more if I decided to learn more.

    Not many other languages these days are as easy to run a program in as basic was. You just typed 'run' and boom your off. This helped eliminate the boring parts because kids don't always have long attention spans. The fact that I could punch out a couple lines of code and run it instantly without dependancies, libraries, etc made it all the friendly to a new person.

    Basic needs to live again as a default programming environment in OS's like back in the day. Nothing serious, just good clean fun to learn basic things in.

    --
    ~~ Behold the flying cow with a rail gun! ~~
    1. Re:Basic... by TrikerBob · · Score: 1

      My 1st 'PC' was an Atari 800 with a cassette tape drive for storage - usually worked about 1 out of 3 times. It had a native Basic, which I learned on. I still remember how excited I was when I purchased my 1st 5 1/4" floppy drive for the Atari (over $500)! When I graduated years later to a 'real PC' (home built 286), I started using MS QuickBasic and wrote software to control laboratory instruments for years, occasionally delving into assembler routines when absolutely necessary for speed (but never by choice). I still use QuickBasic today to write utilities, file parsing / extraction, etc.

  291. But it has to be BASIC by bitspotter · · Score: 1
    Brin does this alot, insisting that we not only learn to do things, but that we learn them the way he did.

    Just look at his "revolutionary" Holocene chat program, where he sneers the same way at IRC, impuning the chat protocol of choice for thousands of geeks worldwide - all because HE doesn't like it.

    From the Holocene Chat FAQ:


    What is wrong with "chat" as we know it today?
            What's right about it? The standard chat interface consists of brief, mutually-interrupting text snippets -- often not even finishing a thought or a sentence -- shuffled together like randomized cards in one big, upward-scrolling pile. That's conversation?

    One of us (Brin) experimented with exactly the same interface at Caltech, using several teletypes that were distributed around campus, way back in 1972!

    ("It never occurred to me that such a kludged, dopey interface would still be the standard 30 years later." -- DB)

    Look, there's nothing wrong with teens flirting shallowly online. They'll still be able to do that - and strut around with sexy avatars - on any Holocene-agumented world.

    But let's recall that this generation is actually writing down more words, by far, than any other that ever lived! Shouldn't some of these people be empowered to write some of those words with more sophistication, interest, realism, passion and creativity, if that happens to be what they want to do?

    We plan to end the forced lobotomization of online conversation.


    Smell any bias? Last I checked, IRC wasn't primarily a place for "teens flirting shallowly online".

    Want a simple, easy, accessible language for doing basic programming? Try //shell//. Lots of people start there. Granted, you're using WINDOWS most likely, but not one peep is made about what's included with the default distribution of the most popular desktop OS; it's about the alleged usability of programming language interpreters one needs to actually download and install. BASH, Perl, and Python all come installed by default on every distribution of every major operating system - except Windows.

    No, this all seems to be because he's stuck on the way he learned his first programming skills - and because he's got an old textbook that isn't forwards-compatible with the way beginning programming is taught today. Teaching methods improve over time, too, you know. Personally, I started on gwbasic, and remembered how fast it took me to get frustrated with it because I couldn't edit it in a plaintext format in another editor, being locked into it's binary format. Those are not the days I want to return to, and those definitely aren't the ways I'd want to force my kid to learn programming.

    He never really explains why Perl or Python are somehow unsuitable, except to say they don't do things "the same way". It sounds more like they don't do things the same way he did them.

    "BASIC was close enough to the algorithm that you could actually follow the reasoning of the machine as it made choices and followed logical pathways."

    Why can't you do that in Perl? Even without knowing much about how to use Perl? Beats me. I'm sure if his sacred textbook were using Perl code, it would be no harder to do, and it would no less effective as a teaching tool.
  292. Re:Kids today...... :-) by Gr8Apes · · Score: 1

    Actually, I'm not saying that you need to learn it how I did. Matter of fact, I'm positive that it would be a massive waste of time as there were several now dead languages in there, not to mention entire systems. But, there are certain things that should be taught, so entire classes of errors due to lack of understanding can be avoided. Check out my previous post for a sampling.

    --
    The cesspool just got a check and balance.
  293. Ehhh by RingDev · · Score: 1

    I was never much into models. I did a pair of back yard rockets in scouts one year. And after my parent got divorced my Dad and I joined the local remote control car racing association. But I was never much for the acetone and plastic. I was much more of the nuts, bolts, legos, gears, etc... kind of kid. The joys of growing up in a family full of engineers.

    When I was 10 I tried teaching myself Turbo Pascal, and failed miseralbly. When I was 13 I took my HS's first programming class, in Basic, another Basic class the year after that, then Turbo Pascal the year after that. Eventually wound up learning ADA in MOS school for the Marine Corps, but I wound up working in VB5/6 for four years. Ever since then it's been a mix of VB6, Java, PHP, and for the last two years primarily VB.Net, ASP.Net and HTML.

    -Rick

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
  294. Re:Kids today...... :-) by smorken · · Score: 1

    What about GLBasic? I know that when I was a kid writing a program that could do graphics easily would be very exciting. The gurus of today never had an oppurtunity to try this kind of stuff when they were starting out.

  295. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    I don't know if you consider this "not worthy", but if you want a successor to Hypercard you should check out both Supercard and Revolution. I don't know if they are as kid-friendly per se, but Revolution offers a superset of Hypertalk and runs cross-platform with a ton of additional features.

    In fact, it's one of the best cross-platform RAD tools out there.

    www.runrev.com

  296. Re:Kids today...... :-) by tombeard · · Score: 1

    How could you possably live without: ...
    50 On I goto(100,200,300)
    60 stop ...
    100 print "Am I here?" ...
    200 print "or here" ...
    300 print "or here?" ...

    --
    The reason we subjugate ourselves to law is to better procure justice. If law does not accomplish this purpose then it m
  297. Re:Kids today...... :-) by de+Selby · · Score: 1

    "So what, we're not talking about optimization here, we are talking about getting kids to sit at the computer, think logically, use APIs/Libraries, and CREATE!"

    From the sound of TFA's description, we're talking about a kind of BASIC that doesn't have libraries or APIs, nor a variety of useful functions. It sounds like the kind of BASIC I knew when I was a kid, which nobody (even children) finds useful for creating anything of any interest these days.

  298. Re:Kids today...... :-) by DragonWriter · · Score: 1
    I totally and completely disagree. The issue is one of pedagogy--which language can kids learn at an early age?


    Logo. Of which there are several modern implementations oriented toward pedagogy.

    I was coding 1000 line programs in BASIC at age 8, and I wasn't alone in that. BASIC is an easy language to learn. Is it limited? Definitely. Would I prefer today to code in BASIC instead of the Perl, Matlab, and Fortran that I now use? No. But the author's point is about _learning_ to code. Perl isn't terribly easy to 'learn' nor are c or c++ or java, at least not to an 8yo.


    I don't think being line oriented has a lot to do with that: having an "immediate" console environment and plain-language commands helps: I think, aside from Logo, REBOL would be fairly easy to teach young novices.

  299. Re:Kids today...... :-) by DragonWriter · · Score: 1
    For kids today, if it doesn't render a credible 3D world, play music(not ^G), and generally act as a complete Multimedia experience no one is impressed anymore.


    Heck, for kids of my day, back in the 1980s, if it didn't play music and provide some kind of multimedia experience, lots of people weren't impressed. Two of the most popular things among my fellow TI-99/4A BASIC-using elementary-school classmates were animated sprite graphics and sound/music programming (which the -99/4A did far beyond the "bell" level.)

    So, yeah, kids today expect more. If the people teaching them kept up, I don't think this would be much of a problem: modern descendants of BASIC and Logo that provide exist whose graphics and multimedia capacity has kept up with modern demands seem to be available.
  300. Re:Kids today...... :-) by XdevXnull · · Score: 1
    --
    "I'm a Laver, not a Phyto[plankton]"
  301. >Not to knock VB, but if you learn BASIC or VB you can
    >basically program in... BASIC or VB.

    You know, I used to knock VB, but VB.NET is actually quite nice. And it's nice, for example, to grab some database lookup code from my web page and pratically drop it in to a Word macro.

    As for a learning language - I mean, big deal, line break instead of opening bracket, "End If" instead of closing bracket, "Sub" instead of a function returning void, etc. If that's a big barrier to a switch, then perhaps somebody doesn't have the aptitude anyway ...

    1. Re:VB by SanityInAnarchy · · Score: 1

      It may be like PHP, though. PHP isn't that horrible a language, although it is pretty damned bad. The reason most people refuse to work in PHP is that it's too accessible, or for some reason, it's perceived as THE language to do backends. People move from HTML to JavaScript to PHP. This also means you're going to have documentation with that shiny new PHP script that says "If you have any problems with permissions, just chmod 777." I don't want to touch code written by these morons.

      As for VB.NET, I don't really get the difference yet between that and C#, but then, I only ever tried to learn C#. Maybe I'll try one of the Ruby/Python/whatever ports to .NET next, those would actually be decent...

      --
      Don't thank God, thank a doctor!
    2. Re:VB by Shaper_pmp · · Score: 1

      It's not anything about the language per se, but the whole culture of VB is much more isolated and monlingual than the brackets-and-braces languages.

      As I said in other responses, I hardly know of anyone who knows Perl/PHP/Ruby/Python/Javascript who doesn't know at least "several" other languages, whereas the overwhelming majority of VB developers I know only know VB (sometimes with some minor BASIC derivatives in their past). I can't see this being co-incidence.

      The other problem is how different VB's syntax is to the other languages - this is no big deal if you already know several, but if you're learning a second language, still think in your first one, and the new language is wildly alien... there's a hell of a temptation to give up and decide that the new language is simply inferior - see my earlier posting for a better explanation of what I mean.

      --
      Everything in moderation, including moderation itself
    3. Re:VB by cascadingstylesheet · · Score: 1

      Well, you may have a point here. I did know JavaScript and some Python before learning VB, so that may have helped me avoid the "brain damaging" effects ;)

    4. Re:VB by Doctor+Faustus · · Score: 1

      As for VB.NET, I don't really get the difference yet between that and C#
      With the exception of a couple of quirks put in to allow easier porting of VB6 code, it's just an alternate syntax of the same basic language.

  302. Second Life makes a great learning environment! by Xeger · · Score: 1

    For nearly two decades now, "computer" has been synonymous in most peoples' minds with "window-based GUI featuring graphically-intensive, networked applications." This presents a huge problem when it comes to teaching kids how to program.

    As a 12 year old, I taught myself BASIC on my family's aging Commodore 64. At the time, DOS was in its heyday and I remember thinking to myself "if I get good enough at this thing, maybe I'll be able to write an application like Word Star or Telemate!"

    In other words: in 1988, I was motivated to learn BASIC because of tantalizing opportunity to write actual, relevant software. After your first "hello world" or "What is your name" or "20 goto 10" program the fun of coding for coding's sake quickly goes away, replaced by a desire to create meaninful, useful software.

    Now then: how likely is it that a kid will be able to write something he identifies as software using only a BASIC interpreter and simple, terminal-oriented I/O? Not bloody likely! If you sit a kid down to teach him BASIC, he'll quickly get bored out his mind, just as surely as *I* would have been bored out of my mind if I'd tried to learn Z80 assembly as a 12 year old. I thrived in the early days of my programming career because I was able to make small programs that were relevant and useful to me, my friends and family

    So: don't teach your kids BASIC. Teach them Logo or HyperCard or Macromedia Flash -- focus on languages that have a solid IDE, a gentle learning curve, and most importantly, produce relevant (graphical, interactive) output.

    Personally, I've had tremendous success by going one step further, and teaching ptogramming in the context of a virtual environment. I've been using Second Life as a teaching tool. Its C-like scripting language (LSL) is easy to learn. Because scripts are attached to objects in the 3D world and are capable of influencing position, velocity and appearance of the objects, it's possible to very quickly produce sophisticated behaviors with just a little scripting.

    In addition to the basics (variables, input and output, arithmetic expressions), LSL introduces kids to many relevant high-level concepts: message passing and event handling, Cartesian coordinate systems, vector math, and basic physics, to name a few. Since it's all online, there is an additional social element to the experience. Your kids can show off their inventions to others and get programming advice or feedback in real time.

    If you want your kids to catch the programming bug, and they already show interest in 3D games or multiplayer virtual worlds, Second Life wouldn't be a bad place to start.

  303. Re:Kids today...... :-) by DragonWriter · · Score: 1
    I started with BASIC. You have no idea how hard it was for me to grasp the idea of C.


    I started with BASIC. I had no trouble grasping, still in my elementary years, Logo, Pascal, DOS Batch programming, or Forth. When I got to C, I had no trouble there. OO programming (Object Pascal, C++, and Objective-C, which I ran into all pretty close together) took me longer to take to really well, though.

    When you're set into thinking of a program as a really long thread of lines with the occasional gosub that does little more than "menial tasks", when you're accustomed to global variables and other nonsense that is taught to you through true BASIC, then your step to sophisticated languages is a very far leap.


    Well, yeah, if your taught that the right way to program is the worst possible BASIC program, its a big paradigm shift from that to structured programming.

    OTOH, if you are taught to modularize in BASIC, its not a great big leap, and you actually appreciate the features of structured languages when you encounter them.

    I think its more a matter of how you are taught than what language, though of course certain bad habits are impossible in some languages (and certain good practices also.)
  304. Re:Kids today...... :-) by try_anything · · Score: 1
    In most households he is introduced at an early age to the computer as a toy and treats it as a toy while growing up.

    I don't understand. Isn't that exactly how Bill Gates, RMS, and every regular schmoe like me looked at computers when they were kids? Yet we programmed our asses off and ended up becoming professionals.

    You can stand behind behind your kids with a whip if you want, saying "NO! Stop having FUN! Grit your teeth and do it GRIMLY like a good worker!" Just remember that treating the computer as a toy has an established track record of producing millionaires and brilliant technologists.

  305. Re:Kids today...... :-) by rp · · Score: 1

    i'm pretty sure that Perl is easier than Basic!

  306. Re:Kids today...... :-) by try_anything · · Score: 1
    Then, when this gets frustrating, teach the rugrat how to save the program in a file, and run it that way.

    Anything that requires parental intervention is inferior to BASIC.

    Oh, and BASIC in old personal computers let you PEEK and POKE arbitrary memory locations, the meanings of which were documented in the manuals shipped with the computers. You could write to video memory, mess with memory-mapped hardware, hack a running OS, stuff like that. I never did it because I read I could permanently damage the computer, but I guess some kids were less wussy than me :-)

  307. Re:That's not like any BASIC program *I* ever wrot by Blakey+Rat · · Score: 2, Funny

    If you want to get really advanced, you can make a FOR loop and Poke in a different text color for each one:

    10 FOR X=0 TO 15
    20 POKE 646,X
    30 PRINT "BIG TITS"
    40 NEXT X
    50 GOTO 10

    *NOW* you have a good program. :)

  308. python graphics by Crispy+Critters · · Score: 1
    "simple graphics are far more persuasive than watching text scroll down."

    I agree with you, but I have nothing to back this up except intuition.

    But it should be possible to write a python class wrapping around a gtk widget or whatever that would provide an interface pretty much identical to the old basic drawing commands. s=Screen(), s.line(0,0,1,1), s.box(10,20,10,40), or whatever they were.

    That is my first thought about what might make python a starter language for kids. Another thing might be to emulate the old sound facilities in MS basic.

    I am not sure whether the gotchas in python would be too confusing for young learners (e.g. the difference between a=b and a=b[:]), or whether they would never be hit.

  309. Re:Kids today...... :-) by try_anything · · Score: 1
    Re OO, I believe you have it completely backward. It's designed to map to the thought processes of people who approach coding intuitively rather than analytically or mathematically. Using OO code is extremely natural for such people. The difficulty of writing it is a tradeoff.

    Languages produced for practical use by non-geniuses are almost always OO these days, viz C++, Java, Python. Languages produced by mathematically and theoretically inclined people tend to have OO tacked on later by other people, viz Scheme, Haskell, ML. (Note that Scheme is very OO, but OO in a theoretical sense, so you'll have a hard time convincing J. Average Programmer that it's OO.)

    And all the "unnecessary verbiage" is included to help J. Average Programmer work on huge apps in complicated environments with tons of other non-mathematically inclined people. People working on clean, simple, mathematical problems would rather live without it unless they absolutely need it. Once again, viz Scheme and Haskell vs. Java.

    I think you're getting theoreticians confused with big-iron, big-problem engineers. Professors come in both types. The mathematicians are on your side.

  310. Well... by lord_mike · · Score: 1

    ...if it's any consolation, Microsoft gives out basic versions (pardon the pun) of Visual Basic (and other languages) free for download.

    http://msdn.microsoft.com/vstudio/express/vb/downl oad/

    Thanks,

    Mike

  311. The end is, well, wrong... by DragonWriter · · Score: 1
    The last paragraph of the article ...Microsoft and Apple and all the big-time education-computerizing reformers of the MIT Media Lab are failing, miserably. For all of their high-flown education initiatives (like the "$100 laptop"), they seem bent on providing information consumption devices, not tools that teach creative thinking and technological mastery...
    Yeah, stupid MIT education-computerizing reformers and their only providing "information consumption devices", and not providing tools that are designed to leverage creative impulses for the teaching of programming to young students.
  312. Re:Kids today...... :-) by Devil_Hack · · Score: 1

    I guess I'm lucky then, I'm studying civil engineer - electronics & computer sciences in Leuven (Belgium) (finished the 2nd year now) and in the (object oriented) programming class they forced us to first draw out UML diagrams of all our classes. Also, we had to put comment for every class, function, variable, ... using a specific system. The only annoying thing was that the comments usually took up more space than the code itself :).

    Also, about the math education. We got quite a bit of math subjects, for example we had courses named: analysis 1 & 2, linear algebra, applied discrete algebra, numerical mathematics and probability & statistics (note that those names may not be ideal to describe what was teached in those courses). Now, I'm sure there's litterally tons of things I don't know about mathematics, but as far as I can see, this should cover a pretty broad base, especially as far as programming stuff goes.

    All the courses given in 1st year builded upon the knowledge learned in high school, in fact about 80% of the linear algebra course, I had already learned in high school. However, that was because I had 8 hours of math in high school and one can choose between 4/6h (depends on what you study) or 8h in the last 2 years of high school. The people who have 8h math get 4h algebra & 4h other math, whereas the people having 4/6h of math only get the 'other' math.

    Also we had a course called "computer aided problem solving", which I suppose helps develop the skills needed to plan out an "algorithm" to solve simple problems.

    So maybe what your saying might be true for some institutions, but definately not for all of them. That or I'm blinded and brainwashed by propaganda, hehe :).

  313. The real reason Johnny Can't Code. . . by treak007 · · Score: 1

    . . . he was /.ing during Computer Science class.

    --
    Klingon Software is not released, it escapes, inflicting terrible damage onto the enemy as it does
  314. Re:Kids today...... :-) by jimicus · · Score: 1

    But to say that Visual Basic can't produce readable, structured code is just wrong.

    Don't confuse the issue by discussing Visual Basic along with the various dialects of the language which was commonly supplied on many computers aimed at the home market in the mid-1980's. The two are completely different.

  315. Re:Kids today...... :-) by Hal_Porter · · Score: 1

    I went from Basic to Assembler to C. C was a breath of fresh air.

    The problem I have with computer 'scientists' slagging off Basic is that all the stuff they say is based on subjective aesthetics. They don't seem to understand anything at the hardware or even assembler level, and they don't seem to build up theories that has been tuned by experiments like real scientists.

    E.g. the idea that GOTO is somehow inherently bad is completely bogus. C compilers user JMP instructions all the time, it's the same thing. Of course, the Basic-ism of using GOTOs all over the place, passing parameters to GOSUB'd procedures in global variables is horrible. In fact it's worse than assembler, where you can get parameters and local variables by using the stack and registers. But there are legitimate reasons for JMPing, which is why the processor supports it, and why C as a sort of portable assembler does too.

    --
    echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  316. BASIC ? by Anonymous Coward · · Score: 0

    Anyone who would encourage children to code in BASIC should be investigated by child-services.

    1. Re:BASIC ? by angrykeyboarder · · Score: 1

      So what language would you suggest for an 11-year old to start off with?

      --
      Scott

      ©20014 angrykeyboarder & Elmer Fudd. All Wights Wesewved
  317. Re:Kids today...... :-) by Danga · · Score: 1

    Would I prefer today to code in BASIC instead of the Perl, Matlab, and Fortran that I now use?

    AHHH Fortran! You poor soul you. The only thing I would pick programming in Fortran over is COBOL, I hate both those languages and much prefer PERL and C/C++.

    --
    Hey, there is only one Return and it's not of the King, it's of the Jedi.
  318. Re:Kids today...... :-) by Gr8Apes · · Score: 1

    a function with lots of if else based on a passed in parameter with recursive calls back into the function.

    --
    The cesspool just got a check and balance.
  319. Modern languages are far more difficult than Basic by master_p · · Score: 1

    Modern languages are more difficult than Basic. That's natural, of course, modern languages offer much more.

    When Basic was the primary choice, one had to learn few concepts:

    1) variables,
    2) control constructs like FOR and IF,
    3) the API i.e. the various commands the language had,
    4) the simple execution model that executed one command after the other.

    Nowadays one has to learn (for Java, for example):

    1) the concept of class
    2) the concept of instance
    3) what is inheritance
    4) what is encapsulation
    5) what is message passing
    6) the concept of constructor
    7) the difference between primitives and objects
    8) the many different statements
    9) exceptions
    10) threads and synchronization (otherwise you can't use Swing)
    11) the package system
    12) scope rules
    13) inner classes
    14) what is garbage collection
    15) what is a pointer and what null means
    16) why strings can not be compared with == but with the .equals method
    17) many other things I certainly have forgotten

    Or for a functional language (Lisp, ML, Haskell etc):

    1) what is a function
    2) what is the lambda calculus
    3) what is currying
    4) how functions are first class entities
    5) what are logical types
    6) what are type classes
    7) what is garbage collection
    8) what monads are (good luck on that one)
    9) what closures are
    10) what is tail call optimization
    11) what is recursion
    12) what an FFI is
    13) the module system of the language
    14) the concept of list, head and tail
    15) the concept of nil
    16) the Hidley-Milner type checker mechanism
    17) infix, prefix operators and operator precedence
    18) lazy evaluation (good luck on that one)

    So what was once the fun exercise of putting together a bunch of commands to achieve some functionality, has now become a PHD thesis...no wonder why people are discouraged and don't program for a hobby any more (kids especially, since they are spoilt as well).

  320. Re:Kids today...... :-) by Tired+and+Emotional · · Score: 1
    I used to teach first year programming and a significant part of our intake had Basic programming in High School while the rest had no programming exposure.

    The students with no previous exposure consistently (from year to year) did significantly better in Intro to Programming 101 than those with previous Basic experience.

    We pushed and eventually succeeded in getting Pascal taught rather than Basic but I was not still teaching to see if this improved things.

    But I don't think that's the articles point - its point is you can't just walk up to a computer and start programming anymore. That's how most of us old geezers got started, even if was a card punch machine that we really old geezers first walked up to.

    --
    Squirrel!
  321. Re:Kids today...... :-) by orasio · · Score: 1

    LOGO was interpreted too, back then.
    Python,
    javascript,
    perl, all are interpreted.

    Availability is key, marketing too.

  322. Re:Kids today...... :-) by DanQuixote · · Score: 1


    You're right, there are no gaming libraries for BASIC, it would be pretty much useless.

    There are however definately libraries and APIs. Every time you call CLEARSCREEN (or whatever), you are calling a system API that does a loop to the appropriate video RAM spot to print all spaces. The interpreter gives you the "library" wrapper to make that easy. I still remember when it seemed so cool to erase the whole screen with the flick of the wrist.

    Also, once you dig a little deeper, all BASICs had their various ways to call firmware routines, which was often how we got access to "sound" or time, or that cool connector slot in the back.

    --
    "We think people rightly feel that once they buy something, it stays bought," --Suw Charman, Open Rights Grp
  323. Re:Kids today...... :-) by Danga · · Score: 1

    then we'd run the program and we'd discover we mistyped a garachter on the first page and then you'd go to bed and try again tomorrow

    No wonder you had problems, you don't just mistype characters you replace two characters with one (g=ch)!

    --
    Hey, there is only one Return and it's not of the King, it's of the Jedi.
  324. Re:That's not like any BASIC program *I* ever wrot by Anonymous Coward · · Score: 0

    And where is the ^G?

  325. Re:That's not like any BASIC program *I* ever wrot by Blakey+Rat · · Score: 1

    I was writing Commodore 64 code. I don't remember how to make a C-64 beep... I do remember it doesn't have a "BEEP" command like other BASICs. Hell, I'm just glad I remember the POKE code to change text color.

  326. Re:Kids today...... :-) by RevAaron · · Score: 1

    Why not just get the real thing and teach Smalltalk rather than some new scripting language like Ruby? I don't have much of a problem with Ruby, but there sure isn't anything that is has that Smalltalk doesn't. Ruby does borrow a lot from Smalltalk, to be sure... but why not just go straight to the source? Among many other perks, Smalltalk a lot more mature, a lot faster, and perhaps most importantly of all Smalltalk has some of the best development tools around. Not big, complicated IDEs like MS Visual Studio, but smaller, lighter, intuitive but incredibly powerful tools that have been refined since the dawn of the GUI and of Smalltalk itself.

    Just a thought!

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  327. Re:Kids today...... :-) by Impy+the+Impiuos+Imp · · Score: 1

    > I can't find a worthy successor to HyperCard

    Lord, you give them eyes, but they cannot see.

    It's called "The Internet". Graphical, clickable pages, i.e. cards, with hyperlinks taking you to other "cards"? Hello, Bishop?

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  328. What about Lua? by Daedalon · · Score: 1

    Lua has got awfully little attention in this discussion. I admit that I haven't tested it yet myself, but got really interested when it was mentioned in the book review Write portable code as the author's tool of choice.

    The real surprise, albeit a pleasant one, was the inclusion of Lua; a scripting language designed for platform portability and which seems to have managed to fully mature without making a blip on most geeks radar screens.

    I like that Mr. Hook has experience writing portable software. This matched with his authorship of the Portable Open Source Harness (POSH) portability library and his contributions to the Simple Audio Library (SAL) gives a great deal of credence to his writing.

    Lua's about page suggests that it could be an even better tool for learning than Python is.

  329. Re:Kids today...... :-) by Impy+the+Impiuos+Imp · · Score: 1

    Yes, hidden behind every if/then/else and switch statement are actually instructions from the JMP family, true. However, that's because that's how the hardware operates. if/then/else, switch, etc. are all wonderful, advanced mnemonics for JMP -- indeed, they supersede simple mnemonics because they encode more logic into it, and wrap it all up into a bundle that handles multiple JMPs in one graceful, easy-to-understand syntax. An if/then/else might use 4 JMPs, a switch, as many as you have cases AND breaks. But because of the syntax, you don't have to track all these de facto GOTOs and make sure they all work together.

    The problem with GOTOs isn't their behind-the-scenes necessity; it's their ability to leap around the logical structures and syntax built into a language, thus defeating the purpose. If I can GOTO something halfway through a case statement, bypassing the switch and any logic in-between, then my logical design is arguably flawed since it doesn't account for the case (so to speak) that the GOTO is used for.

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  330. Chris Pine's 'Learn to Program' by jamesmacaulay · · Score: 2, Insightful

    This is mentioned in the article in parent's post:

    http://pine.fm/LearnToProgram/

    I'm going to give this to my niece when she's a bit older.

  331. Learn to program, THEN WHAT? by BarnabyWilde · · Score: 1

    Watch your job go offshore? Game's over, for a LONG time now.

    Better to go to law school.

    BWilde

  332. Re:Kids today...... :-) by ChaosDiscord · · Score: 1
    What in the world are you talking about? Good object oriented design and development hardly requires you to be a math geek or have an appreciation of calculus or set theory. (Functional programming; maybe... :-) The core of good OO design is just breaking concepts into logical groups. It's a formalization of ideas that logically flowed out of procedural programming. Most mainstream procedural languages had picked up OO programming practices, if not the terminology, a long time ago. The many C functions that take a FILE*? The FILE* is just an object and the various functions that take it just methods. The Win32 API hands you an HWND to represent a window, and you pass that HWND into many, many other functions to work with it? Another object. There is no significant distinction between fprintf(stderr, "Hello world") and the hypothetical stderr.printf("Hello World").

    If you're writing non-trivial, well organized procedural code, you've got some code organized along OO lines.

    For many of these languages it's not like you're tied into the OO model. C++, Perl, and many other languages specifically bless saying, "screw it, plain old procedural programming will be the most expressive solution for this." But if you end up with an OO design, which you almost certainally occasionally do, the language gives you more support. Your refusal to seriously look at object oriented languages is just a refusal to consider that perhaps there is more than one tool in the programming toolbox.

    As to how verbose OO languages are, that's an artifact of particular languages. You and I have written freaking COBOL! That's hardly a terse, efficient language. Some OO focused languages (C++) tend to be more verbose. Various languages have varying levels of verbosity.

    As for Perl being taken over by academics, utter nonsense. Perl is about freedom of choice, about having access to a large number of tools so you have just the right tool for any given job. If you feel a procedural solution is the best one, Perl agrees. Did you want an object oriented solution? Perl's game to try. Functional? Perl's up for that. The Perl 6 work is trying to make Perl more unified and to strengthen the OO support. Indeed, OO support in Perl 5 is really a bolt-on job; Perl 6 promises to be easier to use, less clunky and verbose OO support. And if you don't like it, well, no one will force you to use it.

  333. It's more about imitation by jesterzog · · Score: 1

    Python's a great languages, and one of my favourites for a lot of the things I do at the moment. I think a lot of it has to do with the cool-ness factor, though, and being able to do something that seems comparable with software role models. (Whether that be commercial software, or otherwise.)

    When I was first playing with computers, though, the "cool" factor that motivated me at the time was the ability to get away from scripting languages, because none of the commercial apps, or even downloaded shareware apps, that I used from day-to-day were written in scripts. I grew up playing with line-numbered BASIC programs on an Amstrad CPC, and later writing QBasic programs and batch files in DOS that did some quite tricky things, but none of this was really comparable with the sort of software that could be bought off the shelf.

    When I got to secondary school and had access to the computer labs, it was fantastic, because the school had a Pascal compiler. (Turbo Pascal 6, I think, and later Turbo Pascal 7 which came with the wonders of syntax highlighting in the IDE.) Being able to actually write and compile code to executable programs that obscured the source code was pretty cool, as was writing little network chat programs that communicated through shared files (IPX network protocols were a bit beyond my reach at the time). I even found a BBS door game library (albeit closed source) and wrote a couple of simple BBS door games.

    That's probably what convinced me to teach myself some assembly language, pascal, and eventually C (all of which the school had compilers for) before I went on to study the whole architecture side of things more formally in Computer Science at university. Ironically now that I've grown to use open source much more, obscuring the source code in an executable seems much less interesting.

    Nowadays I'm not sure what would motivate people more -- my guess is imitation of things that are really graphical, or maybe things like fancy network communications, at least for people who grow up playing today's popular games. The easiest way to that is probably through things like level editors rather than line-based programming languages.

  334. Re:Kids today...... :-) by ChaosDiscord · · Score: 1

    Brin's point is a bit muddled, but I think the idea is that modern scripting languages that seem like the logical replacement suffer from being too smart, too high level. Basic as shipped on many early home computers had the advantage of being relatively stupid. Sure, it was high level compared to assembly or even C, but it typically came with almost nothing in the way of supporting libraries. Modern scripting languages come with huge numbers of useful libraries. As a developer I love them; I spend less time reimplementing the wheel and more time solving new problems. But as a beginner these libraries can be a crutch.

    I'm torn. On one hand, we're talking about kids. 25 years ago a simple text game was still cool, it was enough to inspire a child. Today, good luck. Newer, richer languages allow a child to create something interesting by modern standards.

    On the other hand, your average kid is never exposed to the more primitive way of programming. It's the crude equivalent of making children learn to do division long hand before you let them use calculators. You've hidden some of the complexity, so the kids don't respect it as much. If a line of code and some clicking displays a graph, it's less impressive than having to type in all the code to display the graph. For those kids interested in computer programming, you might have set up false expectations. While by and large programmers work at a high level, you do need to understand what's going on under the hood. If you don't you won't be able to fix it when it breaks, or adjust your code to compensate. I'd hate to see a generation of potentional programmers all excited that they made a game using some game creation system, get to college and be hit with the low level stuff that seems completely unrelated to what they're doing, then drop out. Early exposure to the low level guts might chase off some kids who really don't have it in their hearts, while giving the interested ones a more realistic view of the complexity of programming.

  335. "there own"? Illiterate jerk! by BarnabyWilde · · Score: 1

    Illiterate jerk!

  336. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    That's 'Out of your way'?

    Yes. Because noone is going to find it by accident, wonder what it is and what they can do with it.

  337. Re:Kids today...... :-) by Doctor+Memory · · Score: 1

    LOGO isn't interpreted anymore?

    I was under the impression that Python wasn't so much interpreted as compiled to bytecodes which ran in a special run-time environment (kind of a lightweight JVM). Javascript and perl are interpreted, true, but you can't really interact with the interpreter directly (unless that's what the perl debugger is, I actually haven't used that).

    The public library in my home town had a couple of Apple ][s (back in the early 80s) with Logo on them. I wrote an assembler routine that let kids print out their graphics (hires screen to a Grappler printer card, those were the days!) and defined a Logo "word" to invoke it. I always wanted to teach a kids programming class there, but by then I was in college so I never had the opportunity. I hope somebody else did.

    --
    Just junk food for thought...
  338. Re:Kids today...... :-) by marcosdumay · · Score: 1

    What does learning about the underlying system help with in programming?

    Architecting beautiful code? Nope.

    Learning powerful, high-level abstractions? Nope.

    Dealing with those LEAKY powerfull high-level abstractrion? You can bet so.

  339. Get a grip by gary+chund · · Score: 1

    Admittedly there is something to be said for the manner BASIC interpreters (and any others besides) were supplied with many personal computers in days of yore, but let's not get ahead of ourselves. The way some of the guys posting here are talking, you could be forgiven for thinking that all those who cut their teeth in such an environment were masters of the science of programming and nobody who learned in any other way will never achieve such greatness.

    There were good programmers in those days just as there are good programmers now. My suggestion to those who keep whining on in this way is to cut the BS, as they're all beginning to resemble the same broken record...

  340. Re:Kids today...... :-) by GrievousMistake · · Score: 1

    It's a more general computer language, though, and doesn't come packaged with standard modules for simple graphics, sounds and a Inkey$-like function. I learned programming in QBasic, and the IDE was just as important as the language for ease of learning. Function-help and a nice and well-organized help file are invaluable for poking around and going 'what does this do?' and 'is there a function for...?'

    --
    In a fair world, refrigerators would make electricity.
  341. Hmm by Anonymous Coward · · Score: 0

    You say this as though it's a bad thing?

  342. Re:Kids today...... :-) by ben+there... · · Score: 1

    HyperCard was pretty impressive. I learned to program in HyperCard in 6th grade. I made this presentation that played the individually-coded notes of Row Row Row Your Boat with a boat that moved across the screen, transitions, hyperlinks, all sorts of cool stuff for a 6th grader. It was a great early introduction to web programming, closely resembling a mix of HTML and Flash...and that was in 1992.

    I wish I still had it. That HyperCard stack was probably the single most significant thing that got me into programming.

  343. Re:Kids today...... :-) by tomhudson · · Score: 1

    You're making a case for Pascal.

    (oddly enough, I *like* the c++ class model. I just hate the template libraries)

  344. Re:Kids today...... :-) by Mr.+Underbridge · · Score: 1

    Yes, if you break it down to ASM. But that's kind of why higher level languages exist - to abstractify that shit so it's readable, and to limit the kind of jumps that programmers can make so they make some damned sense. Hopefully.

  345. Re:Kids today...... :-) by tomhudson · · Score: 1

    ... and this is valid c code - it compiles and runs just fine. The're only the one block - you can put all the action on individual lines, and make it as BASICy as you want. int main() { L10: printf("hello, world\n"); /*... stick other statements here */ L100: goto 10; L110: return 0; } Blocks (except for main() are completely optional in c. Of course, you have to be an ID-10-T not to take advantage of them ... And you can do the same in assembler ...

  346. BASIC is Good Because... by cgreuter · · Score: 1

    BASIC on the Atari 400/Commodore 64/ is a better education tool than modern languages because:

    1) BASIC has immediate feedback. You can type in a BASIC statement and execute it immediately.

    2) The BASIC UI is minimal. There's nothing but a command line and something that might be considered a text editor if you compare it with cat. Nothing else.

    3) BASIC has infix syntax. You added numbers together with a + b, not (+ a b) or a b +. This is not to say it's an intuitive language but those sorts of things kept the kids able to do basic (ha ha) sorts of things early on.

    4) BASIC gave you easy access to simple raster graphics, keyboard input and sound. Nothing fancy but you could do noticable things in one line.

    5) The BASIC interpreter owns the machine. There's no multitasker at all, just the BASIC interpreter. This meant that (among other things) the screen stays the way it was when you plotted it.

    If you want to plot a sine wave using a modern programming language, you generally need to:

    • Open a window.
    • Set it up for graphics.
    • Write a hook function that plots the sine wave whenever the window receives a refresh event.

    In BASIC, you just plot it and it stays that way until you type clear.

    By the same token, if you want user input, you just read inkey$ repeatedly. You don't need to process input events or worry about busywaiting. You just loop-and-read.

    6) BASIC is the operating system. Which means that BASIC programs can bang on the bare metal. They can (and did) install machine-language programs and then run them, and those programs did all kinds of things, including tossing away the BASIC interpreter entirely.

    7) If you seriously screw up your computer with a programming error, you can fix it by turning it off and then turning it back on. There was no hard drive and you could take the floppy disk out of the drive before running your program.

    8) Oh yeah, and there was a culture of type-in BASIC programs back then.

    This is not to say that BASIC, as a programming language, does not suck in amazingly profound ways. However, it lets you start doing simple stuff right away and go from there into learning the reality of computing.

    That being said, there's nothing preventing someone from writing an equivalent sort of thing that runs off a floppy (or hard drive--why not) on your old PC. It would probably have less code than that PC's BIOS but it would get the point across. But if you do, please design a better language than BASIC.

    Also, I think that perhaps the closest thing you can get these days is Squeak. It's a large, complex system but the entire thing is viewable and editable all the way down to the machine. The virtual machine, granted, but there's still a nice path from high-level to low-level.

    1. Re:BASIC is Good Because... by Anonymous Coward · · Score: 0

      Most of the points you make are either realised by python, ruby and camllight or points I find bad.

      1) python, camllight have immediate feedback.
      2) python's ui is minimal. camllight has a windows graphical user interface that I find perfect for editing small programs.
      3) python has infix syntax. camllight has for basic operators (+, *...) and with one keyword can have infix notation for the ones you define.
      4) I do not know for sound. But for graphics, it is quite easy in caml. python is a bit more picky. For input, python is easiest. caml can do interactive input also, even if it is not what you expect from the language.
      5,6,7) those are programming languages, not systems. But they work in a sandbox and wont damage your computer more than basic can...
      For graphics, python needs import library, open window, set it up, and trace. The retrace is handled by the library.
      In camllight, it is easier. You just have to declare the screen then draw.
      8) There are still some magazines that publish small bits of code that you can type back on your computer, however, I do not know of ones in python or caml however. You are right in that there are no longer books containig game programs consisting of thousands of lines that you have to type down. However, internet exists and there are tutorials for every languages.

  347. Re:Kids today...... :-) by Marxist+Hacker+42 · · Score: 1

    Spaghetti code makes sense- it's just a lot harder for a human brain to follow. If you think like a computer, it's no problem to read it.

    --
    SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
  348. Fortunately, MSFT includes a C# compiler with .NET by Money+for+Nothin' · · Score: 1

    That's right -- csc.exe ("C-Sharp Compiler"). Check out:

    C:\WINDOWS\Microsoft.NET\Framework\<version number>\csc.exe

    I have C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc. exe on my XP box... It will compile C# code, along with any .NET classes. And because C# is a Java clone with a couple elements of syntactical sugar (foreach() and properties come to mind), it's relatively-easy to pick up and learn.

    Of course, MSFT doesn't advertise this because they don't want you avoiding their horrifically-expensive (but very nice) Visual Studio suite. And this has only been the case as long as .NET has been out (since 2001 or so) and standard on home desktops (a couple years).

    Prior to .NET, during the post-Win95 (IIRC, MSFT stopped offering QBASIC with their OSs after Win95) period to .NET's release and widespread desktop installation, the article's premise that easy-to-find-and-use compilers being unavailable is correct -- there were no compilers included with the world's most-popular OS for several years.

    That said, I don't think this is the only reason Johnny can't code, though it's probably a significant one...

  349. Use an Apple II emulator! by jeske · · Score: 1

    As one of the many who learned to program when I was very young (8?) on an Apple II, in line-oriented BASIC, I'm sympathetic with the author's cause. However, his dillema is easily solved by downloading one of the dozens of Apple II emulators available.

    http://www.zophar.net/apple2.html

  350. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Well now, that depends *ENTIRELY* upon your perspective, now doesn't it? They claim that BASIC interacts with the computer at a lower level than C++. Now in *YOUR* interpretation, BASIC is an interpreted language (not compiled), so you need to have an interpreter running in the background decoding line-by-line and turning the lines into machine instructions, which are then executed. There is also a envirnoment established so that signals can be intercepted correctly and returned to the basic program/interpreter. Thats *YOUR* perspective. Their perspective is that BASIC is running at a LOWER (easier) level, not for the computer, but rather, for the person. When they talk about BASIC running at a lower level, they are not talking about the level with which the language interacts with the computer, but rather, how the computer interacts with the person. BASIC is running at a lower (easier) level than C++. They don't even have an idea of my explination of the comparison between compiled and interpreted languages. They don't even know that such things exist. They can tell the difference between 'easier' and 'harder', and thats what they are trying (in vain) to explain.

  351. Google anyone? by Anonymous Coward · · Score: 0
  352. That good example thing... by tcgroat · · Score: 1
    The problem with "Johnny can't code" is elsewhere. Johny does not have the stimulus to code. At all. In most households he is introduced at an early age to the computer as a toy and treats it as a toy...

    Quite right! So what should we do about it? Do your kids see you programming? If so, do you tell them what you're doing, and try to explain how it works in words they can understand? Did you help them get through their first void main () { puts ("Hello, world!\n"); /* We don't say "big ***s" around little tykes! */ exit (); } ? Show your children that computers are more than a fancy DVD player/video game/net connection. If you don't, who will?

  353. OLPC includes Sqeak by Burz · · Score: 1

    Since TFA mentions One Laptop Per Child somewhat derisively in this context, I'll mention that their Fedora environment will come with Squeak pre-installed. For those of you who don't know, Squeak is an implementation of Smalltalk.

    So those communities getting OLPC may see magazines with smalltalk listings, instead of BASIC.

    I also "grew up" on C64 BASIC V2 and although it was fun at first, one of the best things about it was how badly it made me (and many others) want to move beyond the wretched thing. Smalltalk will certainly fare better.

  354. edlin a luxury by Anonymous Coward · · Score: 0

    Edlin?
    Bloody luxury!
    copy con filename
    blah blah
    ^Z

  355. Re:Kids today...... :-) by sketerpot · · Score: 1

    Where did David Brin come into this? Brin is an excellent science fiction author, but he is not Dijkstra.

  356. Re:Kids today...... :-) by UltimApe · · Score: 1

    So... I win? ;)

    --
    "Infecting minds with my own memetic virus, one post at a time." Ultimape
  357. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    sheesh yourself. the author is david brin. not likely he was on a deadline ...

  358. Dear Lord, please no... by daecabhir · · Score: 1

    Python sucks canal water through a straw. Indentation and line breaks do not good syntax make. It sucked in COBOL, and it sucks even more in Python because we should never have returned to that nonsense. Much maligned though it was, PASCAL really was one of the best languages for learning to code - it was wordy, yes, but at least there were never arguments over where to put the stupid curly brace (THEN went on the end of the line, BEGIN went on the start of a line), scoping was well defined (VAR meant variable, no VAR meant it wasn't), and it enforced strong data types from the get-go.

    --

    -- daecabhir (this mind intentionally left blank)
  359. Re:Kids today...... :-) by Floody · · Score: 1
    I look at it like this: being a programmer is to computer literacy what being an expert mechanic is to the ability to drive a car. We don't need a society where everybody knows how to write software, just like we don't need a society where everybody knows how to rebuild a carburator.


    Here, here. People don't become great coders, electrical engineers or high-performance engine mechanics just because the tools that lead down those paths happen to be laying around during their youth. They do it because they enjoy it.

    Like many professionals in my peer group (which likely includes many on /.), I too started out in a TRS-80/Pet/Apple ][/C64 world, and the various incarnations of BASIC and assembly that were natively available at the time. There were a great many other kids in the same age bracket that had similar toys, yet I recall very few actually sitting down and programming "just to figure it out." All they wanted to do is play games, they found no fascination with the semantics (hardware or softare) of the machine. I happened to grow up in one of the few areas in the US that implemented limited comp sci in public education far before it became wide-spread (although slightly after I had already discovered hacking). When my typical peers, many of whom were affluent and had access to the quaint home computers of the time, were forced to code due to educational requirements, they would usually do only the bare minimum required to achieve a satifactory grade. I'm sure most of them promptly forgot all about it once the school season was over.

    While BASIC might not be instantly and automatically available at power-on in today's home computing environment, there is a flipside. Young potential coders have the benefit of voluminous information available at their fingertips should they desire it, a benefit my peer group did not have. If we sought, for example, details on directly accessing the low or high order 8-bits of the Z80 index registers (IX/IY) and our manuals did not document such (in fact, they did not), our options were pretty much limited to (a) finding some obscure magazine article or (b) purchasing books/hardware manuals (likely only available mailorder) in hopes that they included more complete documentation. By analogy, today, if I want to learn how to control thread permissions in a java virtual machine, well .. we all know the first place to start even with no previous reference. ;)

    If a young programmer-to-be is genuinely interested and possesses the natural aptitude of the autodidact (which is precisely what we were in our youth), I suspect they will expend considerable effort figuring out what exactly is on their computer and how it all works. I know I certainly did, even in an Internetless world (outside of the distant rumblings in University labs).
  360. Re:Kids today...... :-) by somekool · · Score: 1

    the problem is not the BASIC is missing, but there is no reason to code anymore for them, they want to play games and there is a lot of games available.

    in the old days not only we had BASIC, but eh, that's all we had to play with. that's why we played with it, we were force to it.

    if the computer industry has changed, then the parents has to pick up the job. and force them to learn programming.

    or buy them a 286 for his birthday, see what they will come up with.

    for recent computers, I would suggest throwing them at irb (interactive ruby).

    its easy and its shipped with ruby for all plateforms. you can start by helping them with math homeworks using irb instead of the calculator, the will quickly discover a whole new world.

    good luck

  361. Re:Kids today...... :-) by flooey · · Score: 1

    No wonder you had problems, you don't just mistype characters you replace two characters with one (g=ch)!

    Back in my day, all we had was garachters!

  362. Re:Fortunately, MSFT includes a C# compiler with . by Anonymous Coward · · Score: 0

    Of course, MSFT doesn't advertise this because they don't want you avoiding their horrifically-expensive (but very nice) Visual Studio suite.

    Actually, do advertise it, and they even give away a very full-featured development environment, Visual C# Express Edition. It's a free download.

  363. Duh! by mcmonkey · · Score: 1

    This was EXACTLY my experience at The University of Texas, where CS is really applied mathematics, with a focus on AI. I just wanted to learn to code cool shit.

    Um, yeah! CS is really applied mathematics. Sounded like you found a dept. doing the right thing. They were right, you were wrong. A CS program should be geared toward producing computer scientists--a breed of mathematician. You wanted to be a programmer. You were wasting their time and resources.

    Think of it like a car. You're a mechanic. You work on cars all the time. How much math do you need? Not much, right?

    Well, you're an auto-mechanic, not an auto-scientist. The guys who design cars, develop new types of engines, crunch all those numbers from the wind tunnel, you think those guys know some math?

    I know this is super-redundant, has been posted in this thread many times, repeated in every thread about education and CS programs, etc., but apparently it bears repeating one more time.

    Computer Science is not programming! If your highest ambition in life is to be an adequate programmer, do not waste the resources of your local CS department. They have better things to do. Yes, completing a CS degree might help you be a better programmer, but strangely, a computer science program might also try to teach you some science. Don't say you haven't been warned!

    Here's where I earn my flame bait mod. All you whiney little programmers. Oh noes! Math is hard! Well, you don't need a chemistry degree to cook, yet I haven't run into any chefs bitching about how many calc classes they had to take. Wonder why that is.

    Oh yeah! Cause despite the fact some understanding of the principals of chemistry might make you a better chef, most people that want to be chefs DONT FARKING SIGN UP FOR CHEMISTRY DEGREES! They go to chef school! So how about all the folks who want to be programmers, go to DeVry or Katherine Gibbs or where ever they teach what you want to learn. Leave the science programs for the folks with some interest in science.

    And if a programmer happens to find himself in a science program, deal with it! Drop out, transfer, cheat, whatever. Just stop whining about it all day. It's getting to be re-god-damn-diculous.

    I don't get it. Whenever I had an empty slot in my undergrad schedule, I took an extra math course. I ended up with enough math courses to get a second major on my degree. In fact, if memory serves I finished with more math credits than credits in my original intended major (chemistry). So I really don't relate to anyone moaning about how much calc they had to take.

    And who's making you take these courses anyway? Has anyone been drafted in CS? Seriously, if you don't like, if it doesn't suit your interests, do something else! I don't spend my life complaining about how much I suck at the violin and how unfair all those music theory classes were. Cause I didn't choose to major in music!

    So rather than continuing to annoy the world with how hard your CS program is, just quit and run home to your parents basement.

    Meow.

    1. Re:Duh! by Fweeky · · Score: 1

      Funnily enough, most of the whinging about CS courses I hear is that they're too *easy*; programming modules turn out to take 6 months just to get over the most trivial of structures, formal methods turns into "how to express set logic in Z/B", the database module dives right into basic SQL and handwaves any relational theory into a few soundbites, and mathematical modules do little beyond exercise your rote learning skills.

      I guess this is at least in part a result of optimizing for pass rate when most of your students are more after a lucrative piece of paper and a few years of drinking and socializing.

  364. I don't know what he's crapping on about by starkravingmad · · Score: 1

    You can download GWBASIC here: http://www.geocities.com/KindlyRat/GWBASIC.html I just tried it and it works. If you want to get the full window, type "screen 0"

  365. Re:Kids today...... :-) by Rob+Simpson · · Score: 1

    Brin WTFA

  366. Re:That's not like any BASIC program *I* ever wrot by tinkertim · · Score: 1

    >> 10 FOR X=0 TO 15

    If you want to see 15 pairs of tits, you better change that to a 16.. don't forget one will match the output to the screen color.

    Considering it is tits, I think you could have PEEKed instead of just going poking. Sheesh, she if she ever shows them to YOU again :P

  367. ESP game by Anonymous Coward · · Score: 0

    What about making a game like "The ESP Game" for programming? Get 2 or more programmers and create simple programs that increase in complexity. You get points the way real programmers earn money; programs that serve a purpose give you the most points. Use Python (which is teachable) and then Java (for those that have a certain number of points).

    I realize that this method is highly flawed, but why throw away ESP's addictive paradigm?

  368. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    Learning about pointer arithmetic, assembly language, and how to build an ALU out of transistors will help me eliminate space leaks in my Haskell programs? Fantastic!

  369. The Solution (TM) by KlaymenDK · · Score: 1

    I don't have kids yet, but when I do, I'm going to set up an IBM AT [or something modern behaving as one] and install all the old games like Tetris, Styxx, Alley Cat, and Ports of Call (probably MAME too, along the way).

    Those games are good *enough* for kids (for me, too), and they will get kids interested in games -- humble games, games they have a fair chance of actually replicating on their own.

    Then, they will be interested in trying to make their own, and they'll get HyperCard or Pascal or Python or Java or whatever (I don't want to start a bashfest here).

  370. Re:Kids today...... :-) by mge · · Score: 1

    Back in my day, all we had was garachters!

    You LUCKY barstards. We didn't evn have garachters.

  371. Perhaps Johnny's Daddy can't code, either. by angrykeyboarder · · Score: 1

    I grew up in the 60's and 70's. To the best of my knowledge, no form of PC existed at that time.

    I recall there was a CS class in my High School (I believe it was only open to Seniors), but you had to be a math geek to get in. I disliked math (still do) and CS was completely foreign to me at the time. Computers didn't capture my attention until 1983, when I got into the Travel Industry and learned Sabre. That's what first turned me on to computer technology.

    11 years later, I got my first PC.

    But I digress...

    I guess that golden age of oppertunity for the "Johnnys" of the world came and went in the 80's and early 90's.

    --
    Scott

    ©20014 angrykeyboarder & Elmer Fudd. All Wights Wesewved
  372. Re:Kids today...... :-) by tomhudson · · Score: 1

    Arguments from authority underwhelm me. "The author is ..." is an example of one of those "arguments from authority." Google "carl sagan baloney detector" for more info. Here, I'll save you the trouble: http://www.xenu.net/archive/baloney_detection.html . Don't accept this thesis because its from Sagan, but because it makes sense ...

    Common fallacies of logic and rhetoric

    * Ad hominem - attacking the arguer and not the argument.
    * Argument from "authority". ...

  373. Re:Don't forget "Insightful" (Ah, Nostalgia) by mikehoskins · · Score: 1

    Several readers have already commented on some things that made programming natural for us in the olden days of yore.

    As for point 5 in the parent post, he's (she's?) right find documentation written for beginning programmers.

    The Level I Users Manual by David Lien (1977) has been considered the gold standard in teaching beginners how to program. You have simply got to read it to appreciate it (putting it in the context of small machines).
        http://www.trs-80.com/trs80-hw.htm
        http://www.trs-80.com/cgi-bin/linkmehw.pl?Level_1_ Users_Manual_(1977)(David_Lien)(pdf).zip

    Several colleges made their comp sci students buy this book, to show them how to write manuals, years later....

    I used this thing when I was 10 and very quickly learned computing and programming without any other outside help.

    Computers were simpler back then. Kids' expectations for computers were, too.... So was documentation.

    David Lien did an incredible job with this book and I don't believe his craft has ever been duplicated.

  374. Re:Don't forget "Insightful" (Ah, Nostalgia) by Horse+Rotorvator+JAD · · Score: 1

    This file is only accessible from links on www.trs-80.com pages.

    If you are trying to download this file from a site other than www.trs-80.com, it will not work.

    If you were on a site other than www.trs-80.com, please email the webmaster to let him know which web site you were on when you got this error.

    If you were on www.trs-80.com and you get this message it is because your Internet Security/Privacy Settings (under your control panel) are set too high. If you lower the security settings, the problem will absolutely go away, and you will be able to download. If you are running a firewall, you will need to grant full access to www.trs-80.com

    This is not a server side issue, so please do not email the webmaster about it.

  375. Re:Kids today...... :-) by sheldon · · Score: 1
    The more things change, the more they stay the same.

    With computers getting ever-faster and more advanced, coding efficiently is less and less important than it used to be.


    In my ComSci data structures course in 1988, my instructor told us that with computers getting ever-faster and more advanced, there's no reason to be efficient. Now, a fast personal computer in those days ran at like 20 Mhz and had 1 Meg of RAM and a 60 Meg harddrive.

    As the computers get faster, we just do more with them. I agree with you that understanding the basics underlying the technology is only necessary as you get better.

    But understanding how say C# compiles down into assembler, and what the heap and the stack means, can aid you in understanding the performance implications resulting from unnecessary boxing/unboxing of objects. Just as an example.
  376. Re:Kids today...... :-) by LunaticTippy · · Score: 1

    You had lowercase letters, too. here is how you turn on lowercase/graphics.

    --
    Man, you really need that seminar!
  377. If you build it, they will come by rsilvergun · · Score: 1

    and they will expect you to support it. Microsoft won't want to include it, because people will expect support. As someone who's fielded helpdesk calls about mspaint, I speak from experience.

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  378. University of Utah computing artifact by Mark+of+THE+CITY · · Score: 1

    The Computer History Museum has a piece (maintenance console, IIRC) of an IBM 7030 STRETCH mainframe-supercomputer. On the front side, you can see the University of Utah property sticker.

    --
    The clearance system sounds logical. It is not. It is completely arbitrary. -- John Bolton
    1. Re:University of Utah computing artifact by BWJones · · Score: 1

      Cool bit of trivia. Thanks! They've had quite a bit of hardware move through this place, some of it really interesting.

      --
      Visit Jonesblog and say hello.
  379. Re:Kids today...... :-) by scott_w001 · · Score: 1

    Checkout http://phrogram.com/ Any kid or adult can program in Phrogram, it's super easy... And it's .NET based, so the learner can pick up the basics of the framework. Includes lots of examples, too. And yeah, I too miss Commadore -- learned on a Vic-20 myself :-)

  380. Squeak -- Croquet? by Garrett+Fox · · Score: 1

    Interesting. If OLPC includes Squeak, won't that also mean increased popularity for Croquet, that 3D environment project?

    I'd be happy to see wider use of Python (and Pygame) by kids, as I've found it easy to learn and use. One thing Python needs for beginners on Windows, though, is an obvious link to IDLE (the IDE). Currently it's buried in a subdirectory, so a newbie won't quite know how to open the editor and start saving/running programs, seeing error feedback, using the console, etc..

    --
    Revive the Constitution.
  381. Re:Modern languages are far more difficult than Ba by Anonymous Coward · · Score: 0
    Your post is horse shit.

    First of all, you can scrap languages like Haskell and java altogether if you want. Throw something like Ruby or Python at them. You can write programs that are just about as imperative, and with as little boiler plate in them as you can in Basic. This alone shows that you have no idea what you're talking about.

    Second, you totally overestimate just how much people have to actually know about stuff to use it. You think people have to know about the lambda calculus to write simple programs in Haskell? You're out of your fucking mind. You also list the FFI. You only have to investigate that if you're writing Haskell code that interfaces with another language! Let's have a point-by-point look.

    1) what is a function

    It's a named block of code that you can reference elsewhere, kind of like PRINT in Basic, only in Haskell, you can write your own.

    2) what is the lambda calculus

    Totally irrelevant. This is like saying you can't learn Basic without understanding Turing machines.

    3) what is currying

    Basically irrelevant again. Also, currying primarily seems to confuse people coming from other languages who want to write all their functions like this(a,b,c)

    4) how functions are first class entities

    You don't need to use higher order functions to write simple programs. However, the only reason I can see this being terribly confusing is if the child has already been indoctrinated by other languages where this is specifically not possible.

    5) what are logical types
    6) what are type classes

    It is, again, quite possible to write simple programs without engaging in all the advanced features of the language, so your point falls very flat here.

    7) what is garbage collection

    Garbage collection is a feature that means they will never have to think about memory management (for small programs), just like in Basic.

    8) what monads are (good luck on that one)

    It's very unnecessary to understand what monads are in an abstract sense to actually use them. Tell me, how does knowing what monads are help you interpret this code:

    do a
    Boy. That's impossible to read without understanding category theory!

    The point at which they start needing to know what monads are is the point at which they'd be writing fucked-up spaghetti in Basic. Might as well have them learn good technique.

    It's also interesting you should point this out. I seem to recall someone in #haskell saying that they did, in fact, teach some Haskell to a grade school class, including some stuff about monads. It seems that kids are smarter than you (or at least, than you give them credit for).

    9) what closures are

    If we eliminated higher-order functions earlier, this is irrelevant. Otherwise, all they need to know is that if they create a function somewhere, it can use local identifiers. They don't need to know what closures are in general.

    10) what is tail call optimization

    Really? They need to know that term, and about optimization in a compiler?

    It seems to me that Sussman does a pretty good job explaining the difference between tail-recursion and non tail-recursion in lecture 1b here, all within his substitution model of computing. You could do the same with Haskell. You don't think kids would understand the idea of a function call replacing the name with the content of the function? Kids must be dumb.

    11) what is recursion

    Recursion isn't hard, any more than loops are hard.

    12) what an FFI is

    Straight from the horse's ass.

  382. Re:Kids today...... :-) by julesh · · Score: 1

    What does learning about the underlying system help with in programming?

    Architecting beautiful code? Nope.


    Err... yes. Only by understanding the underlying system can you appreciate the reasons why a good architecture is a good architecture. Understanding what you're doing at a low level is a key part of building the aesthetic sense that guides us through high-level design decisions.

    Learning powerful, high-level abstractions? Nope.

    Most of those abstractions are substantially easier to understand if you can appreciate why they work. Take a look at The Old New Thing, Raymond Chen's blog. He periodically picks a question that a programmer has asked on a newsgroup and explains how you could work out the answer to it from first principles, just by working out how the abstractions you're using work at a low level. The point is: the abstractions have been designed to be efficiently implementable at a low level. This means that understanding the low level helps you understand them.

    Programming efficiently to the hardware.

    Is sometimes necessary. Computers may be getting faster and faster (but note that a 3.2GHz machine doesn't outperform my current 400MHz machine by a factor of 8 like it sounds like it should... there are other factors to the speed that aren't growing at anything like the speed of the processors: current RAM is only 3 times faster than it was when my machine was built, for instance), but the applications we're putting them to are getting harder and harder. Coding to that edge will always be necessary. Embedded systems usually only have *just enough* power to do the task they're designed for. Squeezing an extra few transactions per second from a machine could save a big web site thousands in additional hardware. People still want their video encodes to finish quicker. And faster cryptography means we can use better cryptography with bigger keys, which will always be desirable.

    Look, I may be sitting here on a break from writing a highly abstract web application framework in an inefficient interpreted language and using an SQL database for storage when a custom file format might well deliver better performance, but in the end that's because I know it's more important to get this job finished quickly and with easily maintainable code at the end of the day than a high performance solution. But that doesn't mean I don't understand there are situations when high performance is desirable.

  383. Re:Kids today...... :-) by treeves · · Score: 1

    For those of us who enjoy it, there are great and promising careers out there, but don't try to push it off onto everybody else.

    Good words. I know this is /., but there's a whole world of jobs out there that don't require coding. "Johnny can't code" is a lot more like "Johnny can't synthesize chiral selective catalysts"*, than it is like "Johnny can't read".

    *OK, that one's probably too specialized, but I didn't want to re-use "rebuild carburetors".

    --
    ...the future crusty old bastards are already drinking the Kool-Aid.
  384. Acorn RISC Machine? by tepples · · Score: 1
    A 32-bit version of the BBC micro would *still* be an excellent way to learn programming.

    Wasn't that called an Acorn computer running RISC OS?

    1. Re:Acorn RISC Machine? by jonbryce · · Score: 1

      That was a later offering from the same company.

  385. Re:Kids today...... :-) by CronoCloud · · Score: 1

    There is always Pygame.

    I've got Python Programming for the Absolute Beginner, and it's entirely game/fun little program focused. The book comes with a CD with Python, Pygame and LIveWires on it, for those who don't already have them installed.

  386. Re:Kids today...... :-) by Watts+Martin · · Score: 1
    ... there sure isn't anything that [Ruby] has that Smalltalk doesn't.

    Other than the whole "practical applications" thing, you mean, right?

    I'm being facetious, of course, but when it comes to community support, breadth of libraries, and--I suspect very importantly--ease of use, it's hard to argue that Smalltalk has any of those things compared to Ruby. It's stayed in the academic/research world without ever really moving to the commercial or hobbyist side of the fence. There are many "research project" environments that have eloquent defenders who make great cases for their design and productivity benefits--Plan 9, anyone?--but the barrier for widespread adoption is too high, and the people in the community by and large don't consider "lowering barriers to widespread adoption" a problem worth spending time on. (Squeak may theoretically be an exception, but in practice, it hasn't quite been setting the world on fire.)

    As a friend of mine who worked with Alan Kay briefly in a past job said, "Smalltalk is the language of the future--and always will be."

  387. Re:Kids today...... :-) by Dan+Morenus · · Score: 1

    Ah, but I didn't have a PET; I had a TRS-80. If you wanted lower case on a TRS-80 you had to solder a new PROM piggy-back on the existing character PROM, and install a toggle switch to select between lower case and graphics as lower case took the place of the graphics characters. Not quite as simple as sending a control code! :)

    --
    -- Conserve binary trees; recycle your email. --
  388. Re:Kids today...... :-) by RevAaron · · Score: 1

    Well, Smalltalk doesn't have the hype- and at its age, it never will regain it. But, it does have a lot of the same library support than Ruby and Python have- Smalltalk isn't just used by some AI researchers. I imagine that the Squeak community is comparable to the Ruby community, and both are smaller than the Python and Perl communities. Smalltalk is quite useful outside acedemic settings- with the web toolkit Seaside and either support for an RDBMS like MySQL or PostgreSQL or an object database like Magma or GOODS, it had a lot of the features of Ruby on Rails before Rails was a twinkle in some Ruby coder's eye.

    I'm not saying that Smalltalk is on the fast track to taking over the world, but there is a lot of misconception floating around... it isn't just some language for acdemics and has a lot in the way of practical application. Lots of libraries- native widget support through wxWidgets, database support, etc.

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  389. Re:Modern languages are far more difficult than Ba by master_p · · Score: 1

    Why do you post as an anonymous coward?

    Ruby and Python are just as complex as Java. Don't be fooled by the fact that you can start the Ruby interpreter and type 'print 1 + 2' and it will be evaluated. If you want to properly code with Ruby and Python, same comments apply as in Java.

    As for the rest of your point:

    1) you mention the definition of a function. Despite being wrong, I did not ask you tell me what a function is. I said that the newbie has to organize his code with functions because that what is the language that enforces on him.

    2) you need to know what lambda calculus is, in order to use monads. And without monads, you can not write an interesting program in Haskell.

    3) currying is a consequence of lambda calculus.

    4) there is no program that does not use the 'primitives' map, filter, fold, etc. Therefore you have to learn what it means for functions to be first-class entities.

    5) 6) nope. If you want to use trees, for example (very common in games), you have to use logical types, because a tree is defined as (left right value) | nil. Even if you use a simple enumeration, you have to use logical types.

    7) but you have to know that is there, because of resource management. Whereas in Basic you have to 'close' what you 'open'.

    8) But every time you need to assign a variable, you need to wrap the destructive update into a monad. It is not that trivial. Actually, it is very difficult.

    As for the comment that children are smarter than me, well, what can I say...

    9) oh yes they do need to know what closures are. Closures are a basic element of functional programming. Without closures, many things can not be achieved.

    10) tail call optimization is important because it is the only way to convert a recursive loop to a for loop. So they need to know that the code does not actually return from a tail call, and adjust their code in a similar manner.

    11) but recursion has some interesting properties that loops don't have. Loops are easier, because in recursion a new context is created for each iteration. We are all used to do things repeatedly, but we don't go back to the previous job after we finish the current one.

    12) if you want to use a specific library not ported to your language, you have to know the FFI.

    13) you have to know the module system in order to use the available libraries. For example, in Java, you have to know that the package name is the directory structure up to the project's root directory.

    14) I am not saying kids can't know what a list is...all I am saying is that they need to grasp the meaning of a list in the context of a programming language. There are constraints: you can't get to the last element before processing the one before that, access is not O(1) etc

    15) not really. Nil is a logical type. See the confusion? even you did not get that right.

    16) Well, when the type checker rejects their perfectly valid program, then they would have to dig deep in order to know what happens. Even FP researchers claim that they are confused by the error reports.

    17) but not all languages support the mainstream operator precedence. In Smalltalk, for example, there is no operator precedence, and you must be aware of that.

    18) they need to know about lazy evaluation because there are some nasty surprises there. Sometimes you think that a particular piece of code has been executed, but it has not.

    So my list is not comical at all. It is a list of things one needs to know a few things about in order to use a programming language for tasks of average difficulty.

    I agree with you that these languages catter for larger programs than Basic. I never said that Basic is better generally. All I am saying is that Basic is better for 'Johnny coding'.

  390. Re:Kids today...... :-) by Saint+Fnordius · · Score: 1

    I suppose the thing that makes HTML not a "worthy" successor to HyperCard is JavaScript opposed to HyperTalk. It's not that JavaScript is a worse language, but for beginners HyperTalk's syntax is easer to understand. Consider the comparision of "page(x).element(x).attrubute = foo" versus "put foo into the attribute of Element (x) of Page (x)". The former is easier to write, but the latter is easier for a beginner to read and comprehend. In fact, it almost makes comments unnecessary.

    As a finished product, HTML and its various scripting components do everything HyperCard did and more, true, but that's not my point. My point was that HyperCard was a good candidate to introducing kids to the concept of programming. It was simple, it was cheap, and it rewarded the beginner with results at an early stage.

  391. Re:Kids today...... :-) by Saint+Fnordius · · Score: 1

    I think Revolution has solved most of the "worthy successor" criteria, the last being that it has to gain popularity. It would be wicked cool if Apple and other OEM's could preinstall it, but the fact that it has to be bought and that you have to find it and install it has to be overcome first. I may get this for my daughter, though. It may prove to be the "gateway drug" I've been looking for.

    SuperCard is also promising, but limited to Mac OS 9 or Mac OS X. The starting price is also pretty steep, indicating that they're not trying to get hobbyists.

  392. Re:Kids today...... :-) by Shaper_pmp · · Score: 1

    I agree totally. I didn't meant to imply for a second that coding efficiently wasn't important at all, merely that it's not as important as it used to be.

    When you choose a language, platform or even algorithm you make a tradeoff between developer-efficiency and machine-efficiency. Back in the day when we has only a few K to play with, machine-efficiency was king - processors were slow, and you simply couldn't fit too much into the available memory to worry about getting too lost in the code.

    These days OSs and apps routinely run to thousands or millions of lines of code, and machines are thousands of times faster than they were back then. Because of the increased size of the program, developer-efficiency (ie, making the code understandable, avoiding bad design and security holes) becomes more important than it used to be, and machine-efficiency (as in, squeezing every last clock-cycle out of the processor) necessarily becomes less important than it used to be.

    --
    Everything in moderation, including moderation itself
  393. Re:Kids today...... :-) by Shaper_pmp · · Score: 1

    "Err... yes. Only by understanding the underlying system can you appreciate the reasons why a good architecture is a good architecture. Understanding what you're doing at a low level is a key part of building the aesthetic sense that guides us through high-level design decisions."

    I'm not saying it can't help you understand it, only asking whether it's necessary to learn that part first (or even "early") on your career as a larval-stage programmer.

    Paul Graham has famously indicated the connections between painting and hacking, but that doesn't mean I should have to learn painting before I can touch a computer.

    Surely I'd be better learning the skills I need immediately, and picking up painting as I go. If I'm building a house, I'd view it as being more like "plumbing" than "foundations".

    Sure, if I've go no idea about plumbing then learning as I go might occasionally necessitate redesigning a bit (or a lot) of a house. This will hurt the first time, but I'll be damn sure I know what I'm doing from then on. I'll also be able to build several really great garden sheds and really get interested in building before I encounter the boring world of plumbing.

    I think this is a better way of learning than forcing everyone to learn plumbing before they're allowed to touch a brick - while you might get a few really nice houses built, you'll lose a generation of talented builders because they don't see why they should sit through a year of plumbing to pick up their first trowel...

    "Most of those abstractions are substantially easier to understand if you can appreciate why they work... The point is: the abstractions have been designed to be efficiently implementable at a low level. This means that understanding the low level helps you understand them."

    Actually, the best abstractions have been designed for their use as abstractions - thinking tools. Look at Lisp compared to FORTRAN. FORTRAN was designed to be close to the hardware, and was very efficient. Back in the day everyone used FORTRAN for everything.

    Lisp was designed to be expressive. When it was first written it was slow to run, but now Lisp programs run acceptably fast, which language is widely regarded with nit-picking disgust, and which language is undergoing a revival amongst the very best and brightest hackers?

    (FWIW, I don't know FORTRAN or Lisp, so I have no axe to grind on this. But I'd say the usage-patterns are very, very clear).

    Regarding your assertion that abstractions are chosen because they map well to the hardware: How do "linked lists" help you understand processor design? "Binary", granted, is useful at the low level, as are pointers (but does any modern language have true pointers, or references?). Arrays are useful, but they're less "abstract" than things like hashtables or linked lists, and how does OOP map neatly onto tranditional assembler programming?

    Most of the "best" abstractions (inheritance, linked lists, OOP, APIs) are more about giving you useful tools to think with rather than just "mapping to the hardware". When you think about it, an abstraction that's designed to map to the hardware isn't really that much of an abstraction at all, is it?

    "[Coding efficienctly is] sometimes necessary... Coding to that edge will always be necessary. Embedded systems usually only have *just enough* power to do the task they're designed for. Squeezing an extra few transactions per second from a machine could save a big web site thousands in additional hardware. People still want their video encodes to finish quicker. And faster cryptography means we can use better cryptography with bigger keys, which will always be desirable."

    I don't believe I ever stated anywhere that it was never important. In fact, on several posts on the topic I've specifically mentioned embedded programming as one example of a place where a low-level appreciation (even "using assembly") was more or less essential.

    --
    Everything in moderation, including moderation itself
  394. Re:Kids today...... :-) by LunaticTippy · · Score: 1

    That's a big reason I decided to go with Commodore instead of TRS-80. All caps make my eyes hurt. The joysticks were irritating to me, even though the idea of analog position-sensing input devices is cool.

    --
    Man, you really need that seminar!
  395. Old School BS Alert by CyberdogOSX · · Score: 0
    I'm tired of hearing this crap. It follows a flawed premise. All computer users used to be programmers because there weren't alot of programs to use. You had to learn to program for the machine to be of any real use to you in the long term.

    That is no longer the case. Those people are still around and in great numbers, as evidenced by the sophisticated IDEs being developed. There is also a new guard that uses the IDEs and doesn't code by hand. They are not taking the place of coders, but rather they are an addition to the family made possible by the coders who worked before them, and now with them.

    There is also a group of developers who use WYSYWIG apps to create their apps and web pages. These apps were created by programmers in IDEs created by coders. There are now graphic artists who can create on a computer due to the fact that coders created IDEs for developers to create graphics apps in so that these artist could work on what they do best without having to learn someone elses job in order to do theirs.

    And their are the end users who use these apps, and art, and web sites to enhance their everyday life. Should they learn to program just to be able play Quake, or email their grandchildren, or write their novel? no.

    All of this and more has built on top of, but has not taken the place of, the original computer programmer. Without these many layers, the computer would remain what these old farts apparently wish that it still was, an unapproachable toy for the technological elite. They used to feel special and they could look down on those who couldn't do what they do. Now that is threatened, and like republicans scurrying to grab on to the last vestiges of the 1950s, they are fighting the inevitable and healthy change that happens in any society.

    Good night, and Good Luck.

  396. Re:Kids today...... :-) by planetowenaol.com · · Score: 1

    Agreed...having learned programming as an adult (Java, Perl, etc.), I have a different perspective, but draw the same conclusion. If you don't learn the anatomy of programming in a simple way, it's going to be a lot harder to learn. To learn to speak Spanish, you don't start with a dicsussion about architectural engineering in Barcelona.

  397. Re:Kids today...... :-) by Anonymous Coward · · Score: 0

    I think you've got the wrong analogy. Something along the lines of "learning some programming is to being a programmer as fixing up the family car with your Dad is to being an expert mechanic." It's not so much the expectation that these kids will all run off and take up the programming as a career, but having it accessible and easy to try out might just mean that a larger number who might never have given it a shot discover the same love for it that I did. I think that's a good thing.

  398. I love it by nobodysbizness · · Score: 1
    In reading the initial post and all of the sub-threads, I have to say just one thing:

    I love the fact that anyone involved in the creation of software or technology feels passionate enough to comment on a simplistically complicated question about the future of humans performing programming activities.

    Thank you all for the good read.