A Slam Dunk Programming Suite
Programmer Studio is extensible, powerful, and
the law at this reviewer's shop
Review by Shawn Gordon
Programmer Studio has set out to be the end-all, be-all of code editors. It
supports virtually every language you can name on the HP 3000, including
PowerHouse, the CI, IMAGE schemas, and other languages as well, such as COBOL,
Visual Basic, Java, SQL, and HTML.
Programmer Studio is project oriented, so you can have multiple files
associated with any particular project. (See
Figure 1 in the left pane and
Figure 3 as examples.) This is a very nice
concept that extends the straight editor paradigm by allowing you to open all
the various files that are used or needed for any particular project. It's
pretty common to have one or more source files, as well as job streams, command
files, copy library modules and include files – I usually keep a copy of
the database schema as well.
Building and organizing folders within a project, Programmer Studio lets you
can easily manage and track even the largest of projects.
The other side of Programmer Studio is its ability to parse out the structure
of a program. This is a great facility, and for a language such as COBOL you can
easily see a list of paragraph names, divisions and sections as well as variable
and record definitions within your program (See
Figure 2). By double-clicking on the item
you will be taken to that section of your code. Then, using bookmarks, you can
easily jump around within your code.
How does it work?
There are two parts to Programmer Studio. The server piece runs on your HP
3000 and provides the directory searching, file selection and file saving
capabilities. With every release of the product there is mention that the server
has been modified to speed it up. I've got to say that the server was pretty
darn fast to begin with, and it is zippy as anything now.
On the client end you have a very slick, standard three-pane Windows
interface that displays your project, your code, and your server messages or
find results (see Figure 1).
The client and server pieces will work together, so if you try to save a file
that has changed on the host from when you brought it down, you will be stopped
and warned. You can still choose to overwrite it, but this at least gives you
the opportunity to check what is going on first.
Another option is to simply download the code, work on it, and save it
locally. This has the advantage of being able to work in your favorite
environment even if you can't get connected because you're on the road, or
because, heaven forbid, your HP 3000 is down for some reason.
Features
The product supports files in Unix, DOS, Mac and Qedit formats, and all your
standard MPE files, including Posix. Heck, I use Programmer Studio for things
like editing Apache/iX and Sendmail/iX configuration files, or doing HTML on the
HP 3000 without having to upload and download files or figure out how to use
Samba/iX.
Here are the new features added in 2.0. I suggested the named bookmarks, and
it shows how responsive Whisper is to customer requests:
• Visual File Compare (see Figure 4).
• Code-friendly Spell Checker (see Figure 5).
• Support for regular expressions in find, replace and find-in-files.
• Mouse-activated Code Navigator Tips.
• Additional username/password security layer in the server software.
• Named bookmarks.
• Support fixed port ranges for improved security through firewalls.
• Automatic reconnection options in the event of the server becoming disconnected.
• Rules Wizard replacing auto-detect for language type.
New Code Editor features are:
• Change case (sentence, lower, upper, title, toggle).
• Remove trailing spaces.
• Sorting (ASCII, word-based, intelligent).
• Comment/uncomment (block and/or line).
• Insert/delete/change text in columns.
• Insert date and time.
• Modeless find/replace dialog box.
In one of the early releases I asked Whisper to add a feature to put
automatic document tags at the end of a COBOL line so you could see when code
was modified, and by whom. I typically use my initials and the current date
– this makes documenting your changes a non-event, so it will always
happen.
Some features are more applicable for one language than another, such as
function lists which works with C, Pascal and Java.
You can attach host-based events to a file as well. In the case of source
code this could be a command file that does the compile and link of your code;
the results will be returned in the lower pane of the IDE.
In the case of JCL, it could be a STREAM command to launch the process. There
are a number of unique options, and I haven't gotten close to exploiting all of
them. I really want to get into the regular expressions in the search and
replace dialog boxes. I run into this need a lot, and I've never gotten around
to learning Perl, which would probably do most of what I need to do.
We use the Find in Files feature a lot when we are doing code rewrites for
clients and we are trying to find particular information within a chunk of code.
Installation and Documentation
Installation is either from a download from Whisper, or via CD. In either
case you will need to install both the client and the server software. The
client side is a standard Windows installation and proceeds without incident.
The installer is intelligent enough to remove prior installations if required
and with your approval.
The server side of the install is a store-to-disk file format and is easily
installed after the upload. The product requires that you run a server job all
the time so that you can connect.
The manual is a good reference guide and an okay training guide. Since I used
the original release of the product for some months without ever looking at the
manual, it's a little hard for me to judge how good an intro guide this is. Some
of the topics are rather confusing, like the discussion on regular expressions
and token matching, and could probably benefit from more examples.
Support from Whisper is terrific, even though they are in England. I
typically use e-mail, and I get quick responses, even when it's 10 p.m. their
time.
The TestDrive
The software was very easy to install and begin using. I've used it in
environments where there were multiple HP 3000s to connect to, and PS will store
the various IP addresses that you've used so that you can select from them later
without having to remember them.
Loading up source code and editing is simplicity itself. The code editor is
also smart enough to prompt for you to save the file if you go to close the
editor and you've made changes that you haven't saved. All the standard features
are pretty obvious and easy to get to. Search and replace, bookmarks, structure
view versus code view.
I modified my stock COBOL template to always include the short comment out at
byte 72 with my initials and the date, as well as enabled automatic renumbering.
Programmer Studio recommends that you not save over their stock templates, and
this is probably a good idea because I kept getting my changes wiped out when I
installed new versions. Next time I'll listen to their suggestion.
I made some major use of the product during some Y2K work where I had
hundreds of programs to burn through – COBOL, Powerhouse and JCL were
involved. What I would do is set up a search to mark code that had a number of
standard strings that I was looking for, then use F2 to step through the
bookmarks and modify the code as I went. Using this method I was able to
remediate a 40,000 line COBOL program in four hours with no mistakes. I
impressed myself with that one. This is a great tool.
Conclusions
This is going to sound biased, but I absolutely love Programmer Studio. I
couldn't live without it anymore. I make everyone that works for me use it.
How's that for a strong opinion? The extensible nature of the product with the
code templates means that you can even create your own templates for whatever
you're using (I'm considering building one for Warehouse from Taurus right now).
Programming is so much faster with Programmer Studio – all the little
bells and whistles just make it a joy to use. I've never had an instance where
PS trashed my code or lost my changes, not even in the beta versions. The speed
is incredible: I can pull down 30,000-line source files in seconds.
About the only thing I might complain about is that there doesn't seem to be
a facility to have multiple windows open into the same file. The named bookmarks
allow you to quickly jump between spots, but being able to look at a list of
variable declarations while you are writing a section of code so that you don't
have to memorize the declarations would be handy.
Usually I just suggest you look at a tool, but if you program at all, you
have to check this out. After the very short learning curve you will wonder how
you ever lived without it.
Shawn Gordon, whose S.M. Gordon & Associates firm supplies HP 3000
utilities, has worked with 3000s since 1983.