What is multi-platform application development?
timhahn 100000F0AC Visits (12972)
From my perspective, as I look across a wide range of application development teams in many different industry sectors, what I see is a steep rise in the number of platforms, operating systems, and programming languages being used to provide complete solutions. Rather than the computer programming converging on a common application infrastructure or programming language, I see that the programming task is becoming more and diverse.
The industry has stated for years that one of the keys to extensibility is to have clearly defined interfaces and employ loose coupling to enable freedom of choice of platform, runtime environment and programming language. It appears that the industry has succeeded in this! That is the good news.
On the other hand, by having such freedom, applications tend to become combinations of multiple different elements or components, each running in their own environment, with their own constraints, capabilities, and limitations. Testing and debugging such applications starts to get much more complicated since the set of dependencies (on what must be up and running, or somehow scaffolded to appear to be available) rises with each loosely coupled element in the overall system. Furthermore, the team that provides one component may not always be available when there are questions related to that specific component.
Because of the rise in platforms, runtimes, and programming languages, coupled with the necessity of organizations to streamline their IT staffs, including programming staffs, as much as possible, there is now increased pressure on application development teams to be able to switch from platform to platform, from runtime to runtime, and from language to language with speed and laser-point accuracy. This is the essence of multi-platform development.
Just because an application is built of a loosely coupled set of components, each written in whatever language is most appropriate and running on the most appropriate system, doesn't mean that a programming staff only needs to worry about one small part of the solution. Application development teams are responsible for the entire solution and thus must be ready to take on the management, maintenance, and enhancement of the entire application, no matter what platform, runtime, or language the piece of the solution was created to run within.
In summary, multi-platform application development is the idea that application development teams will need to be increasingly platform-nimble and language-nimble in order to be the most productive and most valued assets to the development staff of their organization. The application programmer that can move freely between platforms, runtimes, and languages will be easiest to re-align to the ever-changing needs of the organization to meet its business goals. Application development teams should be thinking about how to be multi-platform savvy as they improve their programming skills.