There are times when you work for months on a software but at the end it can hardly be appreciated by the user. This is frustrating when actually those users are waiting for new features to be added and they contact me complaining the product is being abandoned (again). Unfortunately (for the user) it is not all about new features. I believe that the most important thing of a software is its continuous maintenance. Do you imagine a software working for decades on dozens of different operating system versions without compatibility issues? Well, this is exactly a big part of my work.
Operating systems are evolving, computer processors are evolving, the whole hardware architecture is evolving. System APIs are replaced by new ones, even programming tools like compilers and interface builders are evolving. Libraries become obsolete and are later removed, support for given features is updated very often and not always backward compatible. In summary, what you have to understand here is that if you do not maintain a software it will finally stop working on its own because of the system changes.
Just as an example in the Apple environment we moved from Motorola 68k to PowerPC processors, then from PowerPC to Intel processors, macOS 9 to macOS 10, Carbon to Cocoa, Unicode, Retina support and now 64 bits support. Meanwhile in the PC environment we moved from XP to current Windows 10, we adopted the Windows Universal Runtime, we gave HiDPI support and now we are working on 64 bits as well. In addition the Windows installer software (we use innoSetup) and scripts have to be continuously updated in order to create reliable installers. Our compilers are updated every 3 months, we use Xojo.
As you have read right above we are now working on 64 bits versions of all our products, I believe we will be finished on January 2018, I will probably post an update on that later this year.