I've only used HP-UX briefly, but I don't remember substantial differences between it and any other Unix variant. Depending on what you want to practice, perhaps running Linux or Solaris (both available free of charge) locally while being aware of differences where they exist would fit the bill.
I've got a $10 Unix sysadsmin in a nutshell book from O'Reilly. It lists sysadmin commands for most popular Unixes - I've often used it for Linux and Solaris. It also covers AIX, and I'm pretty sure that HP/UX is included as well.
The major difference between HP/UX and other Unixen (or Unices, if you'd prefer ) is probably packaging and package management. I don't know of any OS-specific virtues such as Solaris' load balancing features. Which we never used because it was cheaper to buy new boxes than to train sysadmins to set up and manage performance groups.
Since HP is selling Red Hat Enterprise Linux these days, I'm not sure I'd bet on HP/UX as a long-term solution so much as a legacy OS. Then again, I'm not much on AIX vs. Linux either, even though IBM isn't likely to drop it anytime soon.
An IDE is no substitute for an Intelligent Developer.
The differences I remember between HP-UX and anything else all have to do with their aneurysm-producing C++ compiler aCC, which, in the name of standards compliance, basically wouldn't compile a single non-trivial program. We had to use it, rather than g++, because we were using some 3rd-party C++ libraries that targetted aCC. We had to support HP-UX desktops for a small percentage of our customers; the code also ran on SunOS, IRIX, and Win32. The codebase was perfectly portable to all of these, using each platform's native compiler, but supporting HP-UX was a nightmare. The war stories are legion.
At one point, for example, it used to INSIST on exception specifications, the way javac does, and we couldn't figure out how, or if, it was possible to turn it off.
Another feature I remember was insisting on respecting "or" as a keyword, since it was provided by some dialect of C++ as an option for folks without a "|" symbol on their keyboard. Since we were doing low-level CORBA at the time, and we many thousands of lines of code dealing with Object References (the OR in CORBA) you can imagine how much fun we had with that.
Anyway, just the mere mention of HP-UX makes by blood run cold to this day. Run, run, run away!
Yeah. At the time, it was not part of the standard, though -- perhaps part of a draft. But even today, g++ has -fno-operator-names to turn these off!
Wow, I was not aware of this! This, to me, seems perverse.
Sun's C++ compiler (Forte, not Pro Works) offers an option to disable "export" as a keyword. Except for one compiler in this planet, no C++ compiler implements the export keyword. So this seemed like a reasonable option for Sun to provide. When someone pointed this feature to the GCC steering committe, they dismissed this suggestion.
I suppose the alternate tokens have a greater chance of biting people when they least expect it, than export?
Anyway, something learnt for the day. No more learning until tomorrow.