Hacker News new | ask | show | jobs
by TheOtherHobbes 3796 days ago
The tablet point is a red herring. 8-bit micros were hardly portable. So discussions about whether or not you can code on iOS or OS X are tangential.

The real issue is how easily you can code. 8-bit micros hit the sweet spot. No system available today comes close.

You powered up the machine, and the first thing you saw was a BASIC line editor. There was nothing else to distract you. It was instant-on with no setup.

You had to write code to use the machine at all. You even had to write code - albeit one line - to load a game from a tape.

For the gifted, BASIC led naturally to machine code and to graphics made by writing bytes into memory.

No modern environment has anything like the same simplicity, directness, or sense of natural progression.

Xcode, gcc, anything with a build system (never mind a package manager) are insanely complicated in comparison. They're so complicated professionals have to write books explaining them to other professionals.

Even Python - possibly the best candidate for a successor to BASIC - has a quirky IDE and two and a half different popular versions, and a lot of other complications that a BASIC cursor doesn't.

JavaScript? You really have to learn CSS and HTML and jQuery and $(infinitely long list of frameworks goes here) and - oh look, is that the time?

There is a huge difference between encouraging programming by making access to it friction-free and trivially easy, with a learning space that's comprehensibly small but not dumbed-down and toy-like, and making programming possible for users who don't mind hurdling a lot of obstacles.

That first category is completely empty today. It shouldn't be, but it is.

2 comments

I often get told that my iOS coding app takes people back to their BASIC days. Most people who use it end up telling me they are strongly reminded of the magical feeling when they first discovered programming in their youth.

Kids and schools who use my programming app seem to enjoy the same feelings, but for the first time instead.

I don't believe that it was ever easier to code than it is today. There are myriads of ways to discover the magic of programming. Coding isn't "for the gifted," it's for everyone. Just because the gifted were the only ones who got past the opaque interface of an empty BASIC editor, doesn't mean we should go back to those days.

Your reminiscence for the early days exists right now in beautiful recreations of those environments by the people who loved them [1].

I have been developing a friction-free programming environment for over three years now. And it's not dumbed-down, or toy like. It's instantly on, and you're immediately inside the most interesting place to code, and you instantly run your programs.

I code with my three year old. We do logic and programming games, play with visual programming, and so many other things that never existed when I was a kid. It will only get better from now.

You and I live at a time where every new day is the best day ever to learn to code.

[1] https://github.com/antirez/load81

Yeah, complexity and that we hide the carrots. Bear with me.

I still remember a point in my early teens when I decided I wanted to learn to program. I ran into a wall so hard I stopped for a good year or two.

The complexity is a considerable cliff unless you have a guiding hand (thanks dad for throwing me a copy of K&R and going off to watch startrek!), and if you didn't, you're not getting to Python around today.

First there's the "What language do I learn" search query that turns up so much confusing information. "Depends on what you want to do with it". Oh gee thanks, but I don't know what I want to do with it. I just see that other people are doing cool things with it, so I want to know how they do it.

So you dabble in Python, C, Java, whatever has install instructions you can follow, because the moment a terminal prompt pops out you're scared that you'll screw up the family magic box and get into a lot of trouble. At this point curltarmake sounds like a Polynesian dish to you. Ack.

But you never actually do something useful. Thank you helpful online tutorial, I now know how to print "Hello World" 100 times without copy and pasting it (though that'd have been faster). There's carrots for sure, but you never see them at that point. So you're like "eh, this tutorial is silly, let me try another of these 10 languages suggested".

And then later on, in high school you may have the considerable fortune to get to take a programming class that walks you through Java out of all of the things. All these OO concepts make little sense to you, but eh, you'll be tested on this. The code is still onerous and useless, but you signed up for the class. Towards the end, you'll slowly get an idea of useful things you can do with it (finally! after all these years!). Most of all, you'll develop a distaste of Java.

The wonders of childhood. I honestly believe Assembly is much more straightforward than trying to grasp the current programming ecosystem as an outsider or a kid. There's so much stuff to become acclimatized to.

So recently I've been working with a guy who wants go get into programming, did a bit of HTML&CSS&JS&Whatnot half a year ago, but he was stuck in that "I don't know where I'm going" stage. First thing I recommended him was "Automate the Boring Stuff with Python", which is a book I absolutely adore, because it first walks you through the basics (including setup), and then immediately gives you one library after another to string scripts together with.

Yes, the code may not be teaching the best conventions or habits, it never delves into OO or version control systems, but then it's interesting hubris to think beginners care about that before they got any utility out of the skill.

And he enjoyed it, learned a bunch of things, started writing his on scripts and is now getting into Django and reading through the python cookbook.

So yes, I think we're missing the mark on showing kids and newcomers how to program, in part because it's gotten more and more complex, and in part because we give them keys to doors they don't even know about, whilst withholding those to doors they care about. We've got a major sequencing problem here.