Citizen Science Musings: Why I Miss BASIC

Send to Kindle

By Sheldon Greaves

basicThe year was 1981. I was taking a year off from the university… to go to college. I was attending Chemeketa Community College in my native town of Salem, Oregon in order to find out whether math was something I could learn to do, or not. It seemed the best place to answer that question was to go to a school where the teachers routinely worked with people unused to academia, and who just needed to learn the stuff. As it happened, I discovered that I wasn’t entirely hopeless. But that’s another story.

While I was there I decided to go “all in” on the math. To supplement what I was doing in math class, I signed up for a course in BASIC. For those of you who are too young to remember, BASIC stood for Beginner’s All-purpose Symbolic Instruction Code. We worked on Apple II+ computers; state of the art. I had seen my first personal computer, a TRS-80, at a Radio Shack in Brussels. It floored me. Our machines sported green screens and 5 1/4″ disks instead of using cassette tapes for data storage. The disks were single-sided, but the judicious application of a hole punch could  cut a new read-write notch that turned the disk into a double-sided floppy.

BASIC was a very simple language and therefore perfect for learning what one could do on a computer. Since it was an interpreted language, you could just play around with lines of code and see what they would do on the fly. If you needed to evaluate a slightly complex math expression, a few lines of code would give you an answer. As years went by, although I didn’t do much BASIC programming myself, I marveled at what others could do with it. As I worked on the Amateur Scientist CD-ROM archive, quite a few of those projects included code in BASIC. Programmers in more advanced languages used to sniff that “BASIC rots the mind,” which I consider a slander on a highly useful tool.

It isn’t clear to me that there is anything out there today that is so easy to learn and play around with. Apple’s HyperCard was an outstanding possible successor; object-oriented, very powerful, and yet easy to just cobble things together for highly specific and customized applications. It was also one of the first successful hypermedia systems before the world wide web. I’ve never quite forgiven Apple for letting such a good tool languish and die.

It seems to me, from my admittedly limited perspective, that there aren’t many tools for just messing around on the computer. If you need a special application and there isn’t an app for it already, you’re out of luck. The citizen science community in particular could, I think, benefit from some sort of simple, easy-to-learn, widely-available, and robust programming tool.

If one is out there, let’s hear about it.

This entry was posted in Amateur Science, Citizen Science Musings, Computer Science, Education, History of Science, Science Education, Software, Tools. Bookmark the permalink.

11 Responses to Citizen Science Musings: Why I Miss BASIC

  1. Jim Hannon says:

    There are dozens of similar languages available that work similar to basic. Now days they are called scripting languages. Ruby, python, perl come to mind. They all can be used from the command line like basic but also can be use to write GUI applications. I would check out python. It is free like the others.

  2. Tim Dolan says:

    I concur about Python. There was a piece on Python in an earlier CSL post. There are also classes free from the MIT open courses.

  3. Will Cate says:

    Sheldon, if you’re a HyperCard fan you should definitely check out LiveCode (formerly Runtime Revolution) — it extends the HyperTalk language into a full-featured IDE which deploys apps to all major desktop and mobile OS’s.

  4. morphics says:

    Python, without a doubt, is my favourite language. It’s well worth a look. It’s comparable to BASIC in its simplicity, yet is powerful enough to be used for serious coding projects. And it’s fun!

    • morphics says:

      For fun I translated the BASIC program in the top image to Python. A few lines could be changed to better take advantage of Python’s features, but for this exercise I’ve kept the code fairly close to the original.

      u = raw_input('What is your name: ')
      print 'Hello', u

      while True:

      n = raw_input('How many stars do you want: ')
      print '*' * int(n)

      a = raw_input('Do you want more stars? ')
      if a != 'y' and a != 'Y':

      print 'Goodbye', (u + ' ') * 200

  5. Yeah, and don’t underestimate Python either. It’s a reasonably easy language to learn, especially if you focus on the basics, and yet it can be and is used to implement large, real-world software projects.

  6. Danilo says:

    What you are looking for, sir, is Python.

  7. Walter says:

    REALbasic (now called Real Studio) is a fantastic object-oriented programming environment. You can throw together a little application with a slick GUI in a matter of a few minutes. I’ve developed dozens of ad hoc utilities with it.

  8. Tamas Herman says:

    Rebol 2 is the BASIC of the XXIst century:
    It’s ultra small, cross platform and brutally practical.

    It was neglected because it was not open source, BUT
    it’s latest version, v3 IS open source (not as complete
    thought as v2 yet…)

    I recommend reading the Core Manual from start to end:
    It’s not very long, still after reading it, you will be more capable than most php/python/ruby self-proclaimed “coder”…

    After that it’s easy to crack on with the graphics:

  9. REBOL shot itself in the foot. When I first saw it, I was impressed… I’d have become a convert and be promoting it right along with you. But it wasn’t Open Source, so I looked a little further and found Python. I don’t regret the choice even a little bit, but there you go. By the time the REBOL creator(s) got around to making it Open Source, it was too late to hope for ready acceptance.

  10. Pingback: An Old Programmer Learns Python | Citizen Scientists League

Add Comment Register

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>