Showing posts with label hp-67. Show all posts
Showing posts with label hp-67. Show all posts

Sunday, September 23, 2018

Programming Inside the Lines

Why do people program computers?
  • Business - To automate a process or financial problem
  • Automation - To control homes, factories, machines
  • Research - Data mining, simulation, modeling
  • Communication - Email, telephony, broadcasting, journalism
  • Recreation - Games, movies, music
  • And for fun - Yes, programming is also an enjoyable recreational activity.
I was recently part of a social media thread where we were discussing, more or less, whether programming languages should remove all features that could lead to bad practices.  This was motivated by the perennial question, "Should GOTO be allowed in programming?"  GOTO is not bad.  GOTO is simply GOTO.  I'll leave it there, for now.

Let's compare programming to finger painting.  If you gave a child some finger paints and a sheet of paper and a smock, would you yell at the child for what was painted, or if the activity made a mess?

I started programming when I was 11 years old.  Nobody made me do it.  I sat down with my father's HP-67 calculator and the wonderful manual and I was hooked!  From that point forward I spent much less time on my electronics hobby and spent my energy programming.

So, what is fun about programming?  Here is a short list:
  • Programming involves learning, which lights up neurons all over and stimulates the feel good hormone dopamine.
  • Programming involves problem solving, which is also a kind of learning.
  • Programming is a creative activity, and people enjoy making things.
  • Programming is delightfully interactive.  Give to the computer and it gives back.
  • Programming as an enjoyable social activity, sharing/working/competing with others
I see people bashing programming languages because they have features that will "ruin the programming culture and practices of the masses".  Oh, please.  How many of us have enough experience to even begin to know what this means?  How we define 'ruin' in this context?  And why is it acceptable to 'prove' that something is good or bad by regurgitating some famous person's quote that says that it's so?  We should resist this sort of nearsighted ideology.

I learned programming using the so called bad languages, and I had a blast and nobody got hurt!  I learned a ton and nothing stopped me from learning the so called good languages later on.  I encourage everyone to learn new things but if you decide to only learn one programming language you have not committed a crime to society.  Don't let anyone ever tell you different.

I know that nobody needs my permission, but I'll give it to you anyway!  Go forth and have fun programming!  Color outside the lines and drum to your own beat!  Don't be afraid of the self appointed programming police!

Saturday, August 25, 2018

Here is a quick video I did to showcase my VIC-20 and my other 6502 computers including a Commodore 128, an Apple Iic, and an Atari 800XL.  Enjoy!


The next video will be about the Final Expansion 3 kit that I will be soldering together.

Wednesday, January 27, 2010

Rumblings of the Future

One formative project I started but never finished on my VIC-20 was a programmable calculator program. I got my start programming the HP-67 calculator, and I've always been fond of these little pocket sized computers so this was my inspiration for this project. This was going to be the simplest interpreter you could write in BASIC. I didn't bother to sit down and design it on paper first. I just starting coding it. Really, I can't remember much about it except that I was motivated to give it a try. I didn't get very far.

Another idea I've always been very interested in pursuing is to create a robot battle programming system like Robot Wars on the Apple II. This is similar to CRobots for the PC. It's a very simple real-time simulation of two or more robots duking it out in an arena. The robots search and destroy each other by executing battle programs written by a human user.

I never finished my programmable calculator. Years later on I would go on to write different kinds of interpreters and some similar things in connection with paid work, and ultimately Liberty BASIC and Run BASIC.

Programming languages have always fascinated me, and I enjoy reading books and articles by other programming language implementors to improve my understanding of the field.