Tuesday, September 15, 2009

Limiting factors

I did some more work in Ruby this afternoon, refactoring a small program and using Ruby's code block capabilities. While I was working, I had a small realization about the power of Ruby (which can possibly be extended to other recent tools):

I work a a pace governed by a limiting factor. With Ruby, the limiting factor is not the technology but my knowledge of programming.

For the past three decades, my programming has been limited by the technology. First was BASIC, with its limited file I/O operations. Assembly language had full access to the operating system API for file handling but constructing meaningful programs took lots of time, planning, and discipline. C and later C++ had better support for I/O and better support for code modules but still took lots of planning. Packages such as dBase II, R:Base 5000, and Condor had limited control structures and error handling.

In all of those environments, my brain was ahead of the technology. My frustration was not with my knowledge of data structures, control structures, and other programming concepts; my frustration was with the tools.

Ruby changes that. Ruby offers excellent support for data structures, control structures, I/O, and error handling. So much so that I don't spend time thinking about them. Now I can think about the problem at hand and easily use efficient programming concepts. I can use advanced programming concepts such as closures.

For once, the tool is not holding me back. Now, what holds me back is my understanding of the advanced programming concepts. That's a big change. For years, I have felt smart and considered the tools dumb and unsophisticated.

No I don't feel so smart.


No comments:

Post a Comment