Peter Miller

Musings on Technology and Programming
in

Programmers Notepad & Automation: A Tricky Friend

Recently I've been using a tool called Programmers Notepad as I learn Ruby and even at work as I edit various documents. Programmers Notepad (PN) is a replacement for windows Notepad that includes a bunch of nice to have features like syntax highlighting and a tabbed interface. However, the part about it that I've liked the most so far is its "Tools" capability. With "Tools", PN lets me automate common tasks associated with certain document types. For example, I can set up a Tool for SQL files that will open up SQL Query Analyzer with the script I am working on already set up to be run. Or I can setup a Tool to run the script and capture the output to a file, which I can then review after every modification to the file I'm working on.

So that may not sound very exciting to you; especially since you can do a lot of similar things by fooling with your file extension associations in XP. What's nice about this is that you can be manipulating a bunch of text items within one environment and have that environment setup to allow you to easily execute common tasks with these items. So if I'm working on something in Ruby, I may have a bunch of Ruby source files open, a SQL script for a database and an HTML file for the front end. If I setup PN right, I can setup keyboard shortcuts to run tools that do whatever is appropriate for those file types. So, in essence, PN lets you build up your own IDE.

So why not just use a prepackaged IDE? Well for .NET development, it is hard to argue against Visual Studio .NET for nothing else than its ubiquity. For all the slowdowns, annoying crashes, and inexplicable behaviors, it is still the defacto standard for a .NET project and gives me IntelliSense, integrated help, easy compiling, etc. So VS .NET certainly does a lot to speed up my day. However, what I've noticed while learning Ruby is that for Windows at least, there is not an IDE anywhere close to as polished as VS.NET. This forced me to fend for my self and figure out how to make my development in Ruby go easier, and hence PN.

Getting back to PN and rounding into some kind of point to this post... I discovered there was actually a large value to me in having to build up my own IDE and automate the common tasks I wanted to accomplish. There was a cost in time, but there was also a value in really having to figure out what was going on to feel confident in automating it. If automation is given to you out of the box, you never have to dig into it and figure out what's going on; it just works. Sometimes that's fine, sometimes we only care that it just works. However, that often ends up coming back to haunt us later. When we deploy an application and can't figure out why it doesn't work in the new environment when it works on our desk or when we try to setup up a project on somebody else's machine and realize we don't really know why it works on ours, this is when we incur the cost of automation we haven't earned or don't understand. So that's why automation can be a tricky friend: we'd be foolish to not save time and take advantage of it, but if we accept it with no understaning, we are fooled into thinking we know more than we do.

Comments

No Comments

Leave a Comment

(required) 

(required) 

(optional)

(required)