Abstract :
Programmers no longer write monolithic applications, they assemble code from a sea of reusable libraries and frameworks. This layered process of construction has a magnifying effect on local coding decisions. Piece by innocent piece, seemingly harmless constant factors pile up. They become part of an interstitial excess, marbled throughout the code and APIs, and difficult to remove. It is not uncommon for large applications to miss their performance targets by an order of magnitude. We commonly see web requests create objects and invoke methods by the hundreds of thousands to retrieve and format a few database records. Current Java optimizers and garbage collectors don´t address many of these systemic problems. This talk discusses these issues, via many examples, with a goal of motivating research on the programming of large-scale artifacts in a way that local, often ad hoc, decisions can be unwound, rather then pile up, in the large.
Keywords :
programming; software tools; Java optimizers; database records; garbage collectors; large-scale artifacts programming; local coding decisions; pileup; reusable libraries; Assembly; Databases; Information retrieval; Java; Large-scale systems; Libraries; Programming profession; Scalability; Systems engineering and theory; Visualization;