[Rant mode on]
Another week where I've been very quiet... This time, though, I find I'm
actually quite angry at the reason. For the last three-odd weeks, I have
been writing a help system and porting the Pegasus Mail help to it. Why
have I been doing this? Because Microsoft broke its contract with
developers.
Ever since it was first released, Pegasus Mail has used a Windows help
system called WinHelp: WinHelp was a standard part of the operating system
and worked quite well. Over time, for reasons I've never really quite
understood, Microsoft drifted away from the WinHelp model towards a new
help system called HTMLHelp, which uses Internet Explorer to display help
pages. I personally never thought HTMLHelp offered any real advantages;
furthermore, changing to HTMLHelp would have taken considerable time and
effort, and worse, would have required all my translators to go through the
same awful conversion process, something I wouldn't wish on anyone. I and
my translation teams have made a very extensive investment of time and
effort in WinHelp, and based on the feedback I regularly get from people,
nobody was noticeably unhappy with it (one of the more regular pieces of
"nice" feedback I get from people is how comprehensive the help system is).
Enter Windows Vista. Quite late in the pre-release process for Vista,
Microsoft suddenly announced that they didn't like WinHelp any more, they
didn't think anyone should be using it, and they wouldn't be including it
in Vista. What's more, they specifically forbade developers dependent on
WinHelp from distributing it with their applications. Microsoft's position
was apparently that everyone should be using HTMLHelp, regardless of the
effort, expense or practicality of doing so. I also have to say that
Microsoft offered exactly zero assistance in moving between formats; there
was an existing conversion tool, but it was useless.
That's not the end of the story, though. At some point in the endless
patching process for Internet Explorer, Microsoft made a change that
effectively crippled HTMLHelp: if an attempt was made to display a help
file stored on a shared volume (for instance, a file server), the help file
would simply fail to work with an incomprehensible error message ("Action
cancelled"). While there are some possible fixes for this problem, they all
involve an overall reduction of security and are fairly technical (registry
editing). What's more, because the problem would occur in our help file,
people would come to *us* for technical support on the issue, even though
it's actually a bug in a Windows system component.
So here we are: under Vista, the only help system available to us is one
which will fail to work in one of the most common installation scenarios
for Pegasus Mail. The one that works fine (WinHelp) can only be downloaded
from Microsoft by the end user - we can't supply and install it ourselves.
>From a developer's perspective, this is a nightmare. In the end, the ONLY
solution available to me was to write my own help compiler and display
subsystem, so I can continue to use the sources that I and my translators
have so laboriously produced. This has not been an easy process, but I
think the results are good: my testers got the first working cut of this
code last night, and so far the feedback has been quite positive.
But I can see you're asking why I claim that Microsoft has broken a
contract... ? When programmers develop for an environment like Windows,
they use programming interfaces called "APIs", provided by the
environment's developer - in this case, Microsoft. The API is a contract
between Microsoft and the developers who use it, a contract that says
"Provided you follow the rules we lay out in the documentation, we'll
guarantee that your program will work as you expect, and that it will
continue to work as you expect in future". In this case, Microsoft have
reneged on the deal. Instead of simply leaving developers like me in the
lurch, they could have done any of a number of things: they could have
allowed us to distribute WinHelp with our applications; they could have
provided proper transition tools; they could have ensured that the system
they WERE providing actually worked properly... But they did none of these
things. They didn't even give much in the way of warning (six months is far
from adequate for something as important and substantial as a help system).
So, I've written a complete help system. I think it's probably quite a lot
better than what we had, and it's at least as good as HTMLHelp; what's
more, it will work correctly even where HTMLHelp does not. But I should not
have had to waste a month of my life doing this when there are so many more
interesting and important things to do. I really wouldn't have thought
Microsoft could have sunk much lower in my estimation, but it's one of
their talents that they always seem to be able to do so. Grrr.... ![Super
Angry][1]
[ Rant mode off ]
-- David --
[1]: http://community.pmail.com/emoticons/emotion-39.gif
URL:
http://community.pmail.com/blogs/winpmail/archive/2007/08/08/microsoft-breaks-the-contract.aspx
--
[email protected] mailing list
Send administrative requests (subscribe, unsubscribe, change options) to:
[EMAIL PROTECTED]
(use "help" in the Subject line for a summary of common options)
You can also use the web interface at:
https://sabahattin-gucukoglu.com/cgi-bin/lsg2.cgi
For assistance, contact:
[EMAIL PROTECTED]