Wingnut wrote
I was thinking, would it be possible that we in the future can look forward to a native 64 bit version? Polls made are clearly showing that 64 bit versions of operating systems are growing in popularity and it would be nice to have as many native 64 applications as possible.
Of course, I wouldn't mind doing a 64 bit version of PowerTools either. However, this is not for me to decide, a 64 bit version can be done only after the Delphi development environment supports that, and as far as I know, not even the latest version of Delphi supports that.
Wingnut wrote
I am a total idiot when it comes to programming, but is it harder to make a 64 bit version than a 32 bit?
In the case of PowerTools I see no problems, probably the same code would work as long as I would have a 64 bit compiler. So making a 64 bit version of PowerTools is only a matter of compiling the source code to a 64 bit executable.
Wingnut wrote
Maybe it would be a relief for Jouni and the team if they could just skip the process of making the present version fit both 32 and 64 bit and concentrate on getting one version for each operating system?
Actually, the incompatibility issues of PowerTools and 64 bit Windows would not get fixed simply by making a native 64 bit version of PowerTools. This is, of course, something that one would easily think but that's not how it goes.
OK, let me explain why making PowerTools compatible with 64 bit Windows is so difficult:
In 64 bit Windows, there are two types of applications, the normal 32 bits and the 64 bits. At this time mainly just programs that came with the 64 bit Windows are mostly 64 bits, like Internet Explorer for example. To make sure these 32 bit apps and 64 bit apps won't collide, Microsoft decided to run these both on two different, virtual environments. So, basically, 32 bit applications are run in a sand box under 64 bit Windows, meaning they will have their own little registry with no access to the real, 64 bit registry.
Getting access from a 32 bit application to the 64 bit registry is trivial. But what is not easy, is the fact that while before you had just one registry, now you have two. So in order to go through the entire registry, you must first go through one, then start over and do the other one. That wouldn't be too difficult either, unless you have a program like PowerTools with dozens of different parts of the application accessing the registry - each and every one of these sections must be made aware of the two registries (which are called 'registry views').
For example, in the case of the Registry Cleaner, first the engine must know how to analyze both registry views, then the GUI must know how to show this data to the user, then the results list window must know how to delete an entry (and know from which of the two registry views to remove it from), then the backup component must know how to create a backup of such item and finally, the backup component must also know how to restore such item. In every step making sure we are accessing the right registry, either the sandboxed 32 bit one, or the real, 64 bit one.
So, while everything about making a program compatible with the 64 bit registry sounds easy, things get really complicated really fast if you have a big application like PowerTools with a lot of registry related features communicating with eachother.
But no worries, we'll get it done, probably in April 2009.