Test Drive of Programmer Studio
Shawn M. Gordon
What it can do?
Programmer Studio has been around for about 4 years now and it is the editor that I use and make my employees use. Version 4 is just out in beta right now and will hopefully be final once you read this. I hadn’t reviewed Programmer Studio since version 2.0 (although I did use 3.0) so it was time for another look.
As a programmers editor virtually all the languages and types for the HP 3000 are supported, even Qedit saved files. You can also edit schema’s, MPEX expression programs, Powerhouse code, pretty much everything. There actually isn’t anything that stops you from editing any file that you want, this just really has to do with the built in types for syntax highlighting and code structure recognition. Once you’ve used syntax highlighting, you’ll wonder how you got along without it.
Up until now Programmer Studio was strictly project oriented, so you can have multiple files associated with any particular project which can be a variety of language types all living and playing nicely together. See Figure 1 in the left pane as an example of files in a project. One nice new feature is that you can now just edit a file without having to create a project to do it, this might sound trivial but it is a huge convenience for using Programmer Studio just as a editor and not as an entire project management tool when you don’t need to.
The project paradigm is great when you are working on systems, you can have your copylib members in there, job streams, associated command files, database schemas, etc.. Having all the project information close at hand is extremely convenient when researching or coding a project, everything is kep close at hand. Another nice new extension is the ability to save the project files on the server, so now you can really get organized and assign Programmer Studioi project files to a programmer, they check it out (assuming you are using version control) and they’ve got everything in hand without guessing. By allowing you to build and organize folders within a project you can easily manage and keep track of even the largest of projects.
Another aspect to Programmer Studio is the ability to parse the structure of your program and present it in a coherent fashion. Take a look at figure 2: while I’ve expanded some of the structure trees, what you see here are alphabitized lists of paragraph, variable and function information, including copylibs, include files (and if I managed to convince them, COBOL macros). By double clicking on anything in the left pane, the main pane will immediately display the proper section of code. Then you can use some bookmarks to let you bounce around your code quickly and effeciently (more on bookmarks later).
How does it work?
In the pre-4.0 days you always had to run the Programmer Studio server on your 3000, this wasn’t true of their Unix based server, you could just use FTP and Telnet for the same result. Now in 4.0 you can either continue to use their server or just make use of FTP and Telnet. Depending on the file types you are going to be playing with will dictacte what method you want to use. Anything that the HP implementation of FTP doesn’t understand as a native file type will need to be accessed using the PS server.
Most people on the 4.0 beta program say that they think the FTP option is faster, my own experience seems to be that it’s slower, but it could all just be subjective. The other thing I didn’t like about the FTP option is that it seems to poll the server pretty often, like every 30 seconds or so. If you look at the bottom pane in Figure 1 or 2 you will see that I have a network trace window open and the FTP feedback is being displayed here, that is how I know how often the pings are happening because I can watch it scroll by.
On the client end you have a very slick, standard 3 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 that 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 and 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 is down for some reason.
Here is a summary of what is new in this release:
New user-interface, which I’m still getting use to.
Seamlessly edit both Windows and server based files – The server information is now defined seperately from the project and is an attribute of the file, this makes local and remote edition much more straight forward.
Include files from multiple locations (servers) in a single project.
Supports TELNET and FTP for transferring and compiling files as an alternative to their custom server on non HPe3000 platforms.
Compile files without a project. While the project metaphor is great, there are plent of times that you want to just work on a single file and had to create a project for it. This is a nice addition.
Now includes support for Sun Workshop DBX and Perl debuggers. This is in addition to XDB and TRAX on the 3000 and GDB on Linux/Unix systems.
Integrated hex file editor (Windows / FTP binary files only).
Project based ClassView incorporates definitions from multiple project files.
Syntax (structure) view displayed alongside code editor. This is much more convenient than the old days when it was displayed in the source editor area.
Compiler errors highlighted using regular expressions. Perl programmers can appreciate this.
Split-screen editing. I love this new feature, it is very convenient to have multiple views open to the same file and eliminates one of the main reasons I used bookmarks.
Block mode select (via Shift+Drag). This was the feature that I liked from Co-Edit, basically you can grab an arbitrary block of text.
Improved code parsers for C/C++, Java and COBOL include variable definitions.
Auto-complete (Ctrl+Space) to complete known syntax items. This is another real time saver once you get use to it.
Improved COBOL line tag support.
Support for embedded languages such as HTML in PHP.
Auto (background) syntax-update.
There are others, but I think you get the idea.
The product supports files in UNIX, DOS, Mac and Qedit formats, and all your standard MPE files, including POSIX. Some of the other features that were already in Programmer Studio are:
Visual File Compare.
Code friendly Spell Checker.
Automatic reconnection options in the event of the server becoming disconnected.
Change case (sentence, lower, upper, title, toggle).
Remove trailing spaces.
Sorting (ASCII, word based or intelligent).
Comment/uncomment (block and/or line).
Insert/delete/change text in columns.
Insert date and time.
Modeless find/replace dialog box
In addition there is a facility to attach host based events to a file. This could be a STREAM command for a JCL file, or a command file to compile and link your code. In any case the results of commands will be displayed in the lower pane that has the various status windows. The tabs allow you to select which status window you want to display in a nice and intuitive format.
What is really handy is the “Find in Files” option that allows you to search for strings or regular expressions in ‘n’ files, this is better than a generic file set because you can ctrl+click file names and select non-name related files as your search set.
Installation and Documentation
Installation is either from a download from WhisperTech, or via CD. In either case you will need to install both the client and the server software unless you use the ftp/telnet combo, which is what I did. 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. I use this for my older version of Programmer Studio, but again is wasn’t required here, but it is available.
Given that this is a beta release, the doc and help is still a bit sparse, but having been a long time user this wasn’t really an impediment for me. I know that an appropriate manual will be available with the final release, just as with prior versions.
Support from WhisperTech is terrific, even with them being in England. I typically use email, and I get quick responses, even when it’s 10pm their time.
I got a bit more adventurous with this version now that I do a lot of work with Linux, Python and C++ now too. Now let me say that the project wizard and file open logic is really very smart, when you point PS to a server, it does a great job of figuring out what system it is and what protocols are available. All of the options are recursive, so while you can go and configure servers as a menu option, you can also do it dynamically from within the ‘New Project’ dialog, it’s just a bit counter intuitive however.
Now what was really cool was building a project that had a local HP 3000, a remote one at my friends house who is also on a cable modem, a local Linux server and a remote server in Romania all configured for file sources in my project.
Programmer Studio remembers all the information for each file and if you go to open a file and it hasn’t already been cached, then Programmer Studio will log on to the appropriate server and grab the files. In the case of my Romanian server, the connection was a bit flakey because of the telecom infrastructure there, but Programmer Studio was able to deal with it and I could work with files offline and sync them up later.
For my projects I loaded up some Python and C++ from Linux, and some COBOL, C and MPEX expression programs from MPE. I really liked how the program structure was so quickly parsed, so in the case of Python, each of the “def()” statements were distilled down into Functions under the syntax tab, and under COBOL this became the paragraph headers. By double clicking on the function name you will be taken to that section of the code where the function definition, or paragraph starts.
All and all it was quite fun to do things like this, it would be really nice if they had a Linux client, but I supposed I’m in the minority wanting that feature.
I’ve said it before and I’ll say it again. Programmer Studio is an absolute must have for writing code. With each new release they take a giant step forward in functionality and usability, and this new 4.0 release is no exception. My only real regret at this stage, and that’s because it is a beta, is the lack of the integrated debugger support that is in the 3.0 release. I don’t imagine the feature is going to change from the prior release, and it was quite nice if a little confusing to set up initially.
The learning curve for Programmer Studio is pretty minimal. You can be productive in about 10 minutes, and if you take a couple of hours to browse the documentation and play with the product, you will find a wealth of features and time saving techniques. Some bits aren’t as obvious as they could be, like how do you automatically stamp COBOL comments at column 72 with your initials and a date stamp. Either a little doc research or an email to tech support will answer this question pretty rapidly and Programmer Studio is so flexible that it would be pretty hard to explain all the ways you might use it.
If you write code, you have to get this product, it will change your life.
Programmer Studio version 4.0
25-29 High Street
US toll-free: 888-465-8145
International: +44 1372 360080
US toll-free: 888-465-8146
International: +44 1372 360090
Programmer Studio includes the 3000 based server software and the client interface IDE that is required for the client PCs. Support is available for Win95, Win98, and WinNT systems as well as Linux and HP/UX on the server.
Programmer Studio for the HP 3000 runs on all HP 3000 Series 900s, MPE/iX 4.0 or later. The software is user based ranging from $599 each for up to 4 copies, and $299 each for 50-99 copies. The version that doesn’t use the custome 3000 server is only $299 per copy, no quantities required. Subscription and support program is 30% of the purchase price per year and includes phone in, electronic support and new releases of the software. All prices are in US dollars.