Knowing What You Don’t Know in Tech

The more you learn about technology and put into practice, the more it can seem you have mastered many things. Avoid this delusion because it can set you back in unanticipated ways. False satisfaction breeds a complacency that can dim your curiosity to know more and erect barriers to seeing new horizons. At the same time, developing the ability to understand your limitations becomes very helpful in estimating your time and optimizing your approach. You can have a greater sense of how far to go that is practical to the situation with mental markers on what to follow-up on when conditions are more conducive to further exploration. Ultimately, you get to work with what you have in a better way as you proceed to expand your capacities.

Insight into Cross Platform Software GUI Development

When you write a program for Microsoft Windows, you do it with technologies Microsoft made for that purpose. It is convenient, fast, and reliable. You get a program that integrates well with the Windows environment and less troubleshooting for your effort compared to doing it another way. When you write a program for the Apple environment, you follow the same path. The problem comes when you have written all your programs for the one and now want to use the other, you have no clean portability. Even if you stay on the same technology track, the new versions of tools and environments from the same company can change radically spoiling your investments.

Write your programs in such a way that they are not specific to these environment and you gain greater longevity for your effort. Doing things the platform specific way does make for a better program. Runs faster, more reliably, and less testing. You have to weigh the cost to integrate versus sustain over the long-term. Cross-platform is the way in the latter case.

Qt and Java SWT are going to be your two best solutions for cross-platform technology. There is a copyright cloud of doubt around Java that could sink the fortunes of Android, Google, and the overall enthusiasm for community support of Java. Qt has none of that and would be preferrable. Qt would also grant you far greater capability in theory though Java would be easier to use.

Other tools exist such as wxWidgets, GTK#, GTK+, and many others. Qt requires you make an either or choice for commercial or none-commercial use and on that basis, using the other choices would be recommended. If you are 100% certain which way you go however, go Qt. You can also do your own thing such as put together a thin wrapper over a program tool kit. I show an example of this last approach.