Looking for help to build a Business Strategy & Creative Design for your website? Read my blog.......

Tuesday, February 12, 2008

Crossing over to get compatible!

Hi,

Has it ever happened to you that you have chanced upon a real good web application and were bowled over by its features and functionality, and then to your dismay discovered that it’s all but compatible with your operating system!
If this has a déjà vu affect on you? Then I am sure you’d be a happier soul after reading this.

I concluded my last post with a promise that I’ll get back with more information on web tools and applications, and here I am to let you know all about cross-platform compatibility! Though a little late! But hey... Better late than never. And perhaps the break gave me more time to ponder over the intricacies of these applications.

Interoperability or platform-independence as it is popularly called refers to the ability of devices or software applications to work with more than one hardware platform or operating system. Broad compatibility with various systems guarantees a larger market for a product by reaching your entire user audience. Interoperability is critical in achieving that critical mass of users, especially in groupware and other such internet applications, where two or more people interacting with one another will require some level of compatibility in order to communicate or share data.

I have seen many users who are forced to give up on their favorite operating system just for the sake of some frequently used application or software that fails to run on that. Now is it not cruel?

I read a piece some days back that said companies using Microsoft Office on both Macintosh and Windows PCs will have to deal with cross-platform compatibility issues with the new Office 2008 productivity suite. When the Office 2008 productivity suite will be introduced for Mac OS X, companies that rely on Visual Basic for Applications scripts and macros on Macintosh and Windows clients will lose transparent cross-platform compatibility. The reason behind this is Microsoft is abandoning VBA script and macro support with the introduction of the new productivity suite.
Moreover, the recently released Office 2007 for Windows introduced a new default file format, the OOXML (Office Open XML) .docx format, which is not compatible with Office 2003 on Windows and Office 2004 on Mac OS X. OOXML will be the default file format for Office 2008 also. As a result, Microsoft and others are scrambling to offer options to regain at least a limited degree of compatibility for future Office users. Now does that give you a scare?


Let me share with you some basics of creating a cross-platform web program.

First, choose the right development language. You can write cross-platform C++ code. But then you will have a hell of a time working with the different C++ compilers. You may be tempted to use GCC for all platforms. But that can’t always be possible. C++ programs can be tough to maintain for cross platform compatibility, though I might as well inform you that it is possible by all means. Another hurdle in your way would be to work with the build system. Not all platforms will compile IDE for C++. Worst of all, you may even have to browse through the Makefiles. Now that I have scared you enough, I might take the liberty to proclaim that C++ is not a good choice for cross platform development.
Rather, I would suggest you to go with Java or Python because both of them can scale across platforms pretty well. But playing the devils advocate again, don’t be assures that you have all the features of the language on all platforms. Read the docs carefully before implementing obscure functionality.
A good graphical user interface is imperative for an ideal application. Be sure that you make a correct choice for a cross-platform GUI. Astounding it may seem, but don’t you undermine its importance. A score of GUIs and libraries claim to be cross-platform. Be smart and run them for a check on functionality by making prototypes. My experience says that there is no easy answer when it comes to choosing the right GUI. And now I just cant resist telling you about wxWidgets bindings for Python called wxPython. It is damn easy to use and supports a ton of functionality. And yeah of course it is Python.

FireFox browser is the project that I can illustrate to you as a great execution of cross compatibility. Another promising project is the Mono project. Going by what it claims. It provides the necessary software to develop and run .NET client and server applications on Linux, Solaris, Mac OS X, Windows, and Unix. My analysis has shown that GUI is still in beta versions. Another thing that I have observed is that Mono consistently lags behind Microsoft’s .NET framework. That is to be expected, since Microsoft will lead in .NET implementation and try and keep its version ahead of the competition. But nevertheless, Mono seems a serious contender for any cross-platform development.

Phew … Now that was pretty long. I guess now you have a fair knowledge of what cross-platform compatibility is all about. And the next time you cast your eyes on that cool application, don’t be skeptical. In all probability it will go well with your OS!

No comments: