Programming, these days

With the confluence of open source, web forums and search engines, Linux distros, email, etc., it’s certainly a different world in which to program than it was when I was first learning to program 27 years ago. My little experience today was in trying to get a little command-line client to FreshBooks for quickly logging a bit of time.

  • Search for such a thing. No good hits.
  • Search for FreshBooks API wrappers. Don’t wanna write in Perl, PHP, or ActionScript, so I’ll go with Ruby.
  • Get Ruby: apt-get install ruby.
  • Learn how to write some stuff in Ruby with various web searches leading to tutorials, forum posts, blog entries, etc.
  • Learn what Ruby gems are, install the gem installer (apt-get install rubygems), install the FreshBooks API gem (gem install freshbooks).
  • Write some code that fails. Dig into gem code and put some debugging puts’s in there. Find the root cause of the bug in about 20 minutes, try a hack to fix it, it works.
  • Try to report problem to maintainer. Find that the version in the gem whosit is actually an old version written by the previous author/maintainer.
  • Find a link to the new maintainer and the project page on rubyforge.
  • Browse the source and see that the gem is totally different. Uninstall old one, download this one.
  • Learn what Rakefiles are with some web searches, install rake (apt-get install rake), install some dependencies with gem installer, rake it.
  • Adapt my code to one of the changes by reading the code (_not_, I might add, the comments, because the comments were out of date).
  • Find that the code now fails again, which I sort of expected.
  • Repeat puts-based debugging process and learn that the old bug was fixed but a new one was introduced.
  • Hack a fix for new bug, it works.
  • Report problem to new maintainer. He might tell me that it’s my problem and not a bug in the gem, but whatever, I have what I need and maybe the code will be better for it next time someone tries it…

I won’t bother to enumerate all the differences between that and my early experiences with programming, but to give a little taste, here was the scene for 9-year-old Steven: 4kB pocket computer programmed in BASIC, the only I/O being the keyboard and screen, the only contact with the larger programming world being the computer’s 100-page manual, etc.

One comment

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.