First of all, let’s clarify, by “work the same way” you mean “in every possible way, including non-documented behavior that was accidental based on details of how Apple’s operating system worked”. Because let’s be clear, that’s what we are talking about here. It just so happens that in earlier versions of the Macintosh operating system, opening and closing an alert doesn’t send a window activation event to the application. The old OS didn’t consider alerts to be windows. When using the newer Cocoa operating system, it does treat alerts as windows, and it does send the window activation event. Panorama responds to a window activation event by making the frontmost window active. If a secret window was active, it isn’t any more. The fact that a message alert didn’t terminate any active secret window in Panorama 6 was not something that was done on purpose. In fact, I wasn’t even aware of it until recently. Putting a message alert in secret window code is something that I would personally NEVER EVER do. So I would never discover this behavior. Apparently not to many other people do this either, since it wasn’t reported for several years after Panorama X became available.
Now that it has been reported, is it possible that a change could be made so that a secret window won’t terminate when an alert is displayed? Most likely, yes, it could. But it is not a trivial one line change. The operating system works differently now, so some engineering time would be needed to figure out how to work around that. It’s always tricky to work against the way the operating system wants to work rather than “going with the flow.” It can be difficult to get right, without introducing new bugs.
Will this change be made? Maybe, but I certainly won’t promise. This is not a documented feature of Panorama 6, it’s just something that a few people happened to try and it happened to work. I’ve added this to the issue tracker system, but I consider it a low priority item. I’ve said this before and I’m sure I’ll have to say it again, but I cannot guarantee that every tiny behavior of Panorama 6 will work exactly the same in Panorama X. As tiny anomalies are discovered each one will be evaluated for possible remediation, but most of the issues that affect a lot of users have already been resolved. Each issue is evaluated based on how many users it affects, how difficult it is for users to workaround the issue, and how difficult the fix is. I’m not going to spend a week on a fix that only affects a handful of users. That would be a disservice to all of the other Panorama users out there.
While some degree of technical skill is necessary for programming, I think it is not the top prerequisite for pulling off a huge project like Panorama X. More important is the ability to keep everything somewhat organized and prioritized with thousands of balls in the air. There are only so many hours in the day, only so much resources that can be thrown at a project. It’s not possible to find and fix every bug. It’s not possible make every tiny behavior of Panorama X exactly match Panorama 6. Now if you look at one specific little issue, like this one, and say “can this be changed?”, then yeah, sure, most likely. But that’s not the question. The question is “which issue gets worked on first, which second, and how far can we get before we run out of resources?” And the second questions is “who decides?” The answer to that question is me. It’s a constant juggling act to decide where the resources should be applied. I can’t please everyone. When I make decisions that please people, I generally never hear about it. But when a decision doesn’t match what other people’s priorities are, I often hear all about that. Fair enough, that’s just the way the world works, and it’s what I signed up for. I wish I could make everyone happy all the time, but I can’t.
So, the short answer is, yes, usually I can come up with a better way for one specific issue. But I think that’s the wrong question. To the question of “can I come up with a better way to solve every issue?”, I don’t know how to do that.
Also, remember that “issues” isn’t just small items like this, it is also big items like “I want to share my databases with my team” (i.e. Panorama Server), or “I would really like to run Panorama on my iPad.” These long term projects compete for resources with small issues. Someone who is a project manager doesn’t have the luxury of making decisions about individual issues as isolated pieces. Each individual issue must be examined in the context of the project as a whole.