Common Tools, Multiple Platforms

Walk into any computing center these days and what you discover right away is the only thing similar amongst them is the breadth of platforms, tools, devices and configurations used. We’ve clearly evolved from very regimented system and deployment architectures to a much more diverse, feature-rich and complex set of environments, which we all hope work together. Given the incredible speed of innovation across the software-development industry, this is to be expected. The Internet has fueled a growth in software applications and use of software to provide new business ventures like nothing else we have seen.

When you walk outside the computing center and back to your desk, cube or corner office as an application developer, it finally sinks in. The days of being a programmer who masters one particular programming language, one particular database platform, one particular runtime model or any other single environment are over. Businesses are increasingly in need of staff that can quickly adapt to whatever environment and platform is best suited to solve the business opportunity in front of them. Whether you're a seasoned COBOL expert or a hotshot Java developer, your days as being only that are numbered. Your organization needs you to apply your expertise to whatever platform and language the application demands.

Dedicated Java Developer No More

Business applications are moving from large, contained, monolithic combinations of many source code modules all compiled and linked together, running on a single system to being widely distributed, loosely coupled, multifaceted and much more user-intuitive combinations of software components running across a multitude of computing systems. These systems range from hand-held devices and sensors connected over varying bandwidth communications links to high-performance computing systems running in protected data centers to virtual systems running in some cloud-provided environment in which you have no idea where the physical systems reside.

Furthermore, each of these components–depending on the deployment platform, runtime environment, original programming team's opinion, the desires of the last programmer to touch the application or any number of other reasons–can be implemented in a variety of programming languages. User-interface code running in a browser is written in Flash, Flex or JavaScript. Middle-tier server applications are written in .Net, Java, or C/C++. Intense database operations are performed using stored procedures written in C, C++, COBOL or even PL/I. Applications that date back tens of years may be written in COBOL, PL/I, mainframe assembler code or Fortran. An increasing amount of software is written in Objective-C.

Languages and Platforms Galore

The consequence of this situation is businesses will require their application-development staff to be able to move between projects with agility and precision even when those projects vary in deployment platform, runtime environment and source-code language. Code written this week will be legacy next week, but it will still require care, feeding and attention. To be valued employees or consultants, application programmers will need to move between projects with the same agility and precision, across those platforms, runtime environments and source code languages that the applications run on and are written in.

Tim Hahn is a distinguished engineer at IBM and has been with the company for 20 years. He is the chief architect for enterprise-modernization tools within the IBM Software Group Rational organization, where he’s responsible for strategy, architecture and design. Tim can be reached at

comments powered by Disqus



2018 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.


Your Input Needed: IBM Systems Media Reader Survey

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store
Mainframe News Sign Up Today! Past News Letters