| Enterprise Content
ManagementEnterprise
Application IntegrationEnterprise
Portals Web ServicesApplication DevelopmentApplication ManagementApplication Servers |
| | |
AbstractionOne of the better known trends in the application space, abstraction refers to the process of development via components - visual or otherwise - which represent discrete, coded functions. Rather than code an integration component from scratch, for example, a junior developer can use a visual representation and merely change some configuration elements to produce a solid component. This work is licensed under Creative Commons License. |
Application DevelopmentIn the early days, application development was the sole province of guru-level computer scientists and their text based development tools. From VI to Emacs, these hardcore coders eschewed tools to assist the development process, relying on their hard won skills to make up for the limitations of their development environments. But as products are wont to do, they began evolving and gradually adding features to make the increasingly difficult task of coding complex logic at least a little bit easier. This was not at the request of these serious coders, mind you, indeed it was more often over their protests. But businesses and vendors alike recognized that the actual number of these guru level developers was very small, and their corresponding compensation level was often prohibitively high. To better utilize their skills and keep them focused on the most difficult technical challenges, application development vendors began to offer features aimed at opening the more mundane programming tasks to mere mortal-level programmers. The vendor most often thought of in this regard is Microsoft, whose Visual Basic product represented a sea change in the development of applications, with drag and drop programming that made the construction of simple components less of a Herculean task. And despite the product's limitations and the skepticism it enjoyed from enterprises, it spawned a host of imitators. Today the application development space is speeding towards greater and greater levels of abstraction, or development via predefined or automatically generated components. From vendors big and small come products which are designed to turn the average developer into a highly productive, code producing machine. Make no mistake, the challenges of distributed computing and complex integration have not gone away – but abstraction, more advanced IDE’s, design patterns and other benefits of today’s development products can maximize reuse and minimize the reinventing of the wheel that used to characterize most development efforts. And by offering junior developers the chance to simply reuse a previously developed integration component, enterprises have freed up their senior developers to tackle the serious problem areas. Vendors on both sides of the .NET/Java divide, and indeed on both sides of the Swing/SWT divide, are embracing these new advances in development technologies to not only give their customers more production on a per person basis, but to offer attractive tools that win developers to their respective platforms. To be sure there are still those out there who cling to VI and Emacs, but by and large the approach the vendors have taken in reducing some of the tedium of application development has won a substantial following. |
| | |