Legacy Language in an Integrated World
Information technology is intrinsically leading-edge. Most of the professionals who comprise the industry are interested in what’s next and want experience with all of the latest and greatest gizmos and doodads. Technology companies compete fiercely to add functionality and speed to existing products or come up with the next killer app. IT certification programs also are affected: Credentials are constantly revised in terms of both content and testing methods. If they weren’t, they would be doing their candidates a disservice.
That said, in the business world, cost-effectiveness trumps advanced technology. Thus, most enterprises run legacy applications and languages of all kinds—often in critical roles—as they still get the job done just fine, thank you very much. Therefore, as with friends, when it comes to technology and your understanding of it, the best policy is to “Make new friends, but keep the old. One is silver and the other, gold.” Here’s why.
Why Legacy Stuff Hangs Around So Long
A company isn’t going to just throw money at new tools and technologies, especially if the ones in place are performing the necessary functions with little to no problems. Apart from the cost, though, there are other factors, particularly the time and productivity that will inevitably be lost in implementation. Organizations typically don’t run as smoothly during these times of transition, especially since they have to familiarize some or even all of their employees with the new systems.
Even if an organization does decide to make changes, they will hardly be instantaneous. It will require a good deal of research and planning prior to installation, and in the meantime, they’ll still use the old stuff. Additionally, when the decision-makers select a new platform or solution, it hardly means an across-the-board transition. One of the defining characteristics of an integrated IT environment (that is, the kinds of environments one finds in most companies out there) is its myriad products and processes, which can differ by vendor, functionality and, yes, age.
Finally, new technologies and techniques aren’t always what they’re cracked up to be. The people who are selling those “cutting edge” applications and solutions often disparage what came before—even if it works—to push their wares. As Bjarne Stroustrup, the author of the C++ programming language, puts it on his Web site, “‘Legacy code’ is a term often used derogatorily to characterize code that is written in a language or style that (1) the speaker/writer consider outdated and/or (2) is competing with something sold/promoted by the speaker/writer. ‘Legacy code’ often differs from its suggested alternative by actually working and scaling.”
What About Web Services?
There’s a fair amount of discussion (some might even call it hype) right now around Web services on service-oriented architecture (SOA), in which IT elements are arranged in a wide range of configurations. A good metaphor for this might be the game Tetris, which involves placing pieces of different shapes and sizes to form various combinations of perfect fits. Some of these “blocks” in Web services include XML, Web services description language (WSDL) and universal description, discovery and integration (UDDI).
Proponents of Web services point out—correctly—that in many companies, a significant amount of the information and applications associated with their mission-critical systems sits on a few different legacy platforms and systems. Because of this, there is frequently substantial duplication and superfluous data. Therefore, several of these organizations are investing substantial time and money in enterprise application integration (EAI), which involves building a composite that can mimic processes or applications on the older mainframe in the back-end, while enabling front-end users to utilize something more up-to-date.
However, because EAI is so expensive and difficult, companies are searching for cheaper and better alternatives, and Web services has been touted as a possible solution. Web services and SOA certainly have the potential to streamline and drive down costs of overall business operations by reusing and redeploying components, thereby saving developers’ time and increasing their productivity. Although most enterprises only use these techniques in peripheral functions, the organizations that figure out how to utilize them with mission-critical tasks in the future may have a major advantage over competitors that don’t.
Is This Important? Do I Need to Know It?
Yes and yes. Even though Web services and SOA are advertised as the wave of the future, we live in the present. Most of the people who specialize in this area admit that the technologies and procedures involved have a way to go before they catch up to expectations, and it could be as long as a decade before their predictions are realized.
Also, most businesses will always remain a little bit behind the technology curve, and migrate to new solutions when they’ve demonstrated greater effectiveness and efficiency than what they’re using now, not because of some flashy “shock and awe” marketing campaign. In the meantime, even as you retain knowledge of the IT platforms and applications of yesteryear, continue to familiarize yourself with the vanguard technologies of your field, even if your employer doesn’t use them yet. Remember: Today’s cutting-edge product or procedure is tomorrow’s legacy product or procedure.
Brian Summerfield, firstname.lastname@example.org