{"title":"Motherhood and apple pie: modularity in modern applications and tools to support it","authors":"S. Reiss","doi":"10.1145/2457392.2457396","DOIUrl":null,"url":null,"abstract":"Modularity has been around for a long time. Good designers attempt to make use of it as much as possible. Languages have been developed to support it. Language extensions have attempted to deal with the situations where languages themselves fail. Tools have been designed to accommodate and encourage it. Most of these efforts, however, are geared toward \"simple\" homogeneous applications. Unfortunately, modern applications can be a lot more complex and bring up new and exciting challenges in terms of modularity. Today's applications, even relatively simple ones, involve multiple processes running on multiple machines, processes that are often external to the application itself and out of the control of the developers. The individual processes involve multiple threads, complex thread interactions, and opaque libraries. All these affect the way we look at systems and how we approach modularity.\n In this talk we will look at the organization of several applications we have been building including the programming environment Code Bubbles, the semantic search tool S6, and our intelligent office sign, and consider how modular they are, how flexible their design is, and how we succeeded or failed in accommodating modularity in the face of other challenges such as portability, maintainability, efficiency, and extensibility. We will also look at how programming environments and tools, which are integral to the programming process, can either help or hinder modularity.","PeriodicalId":353153,"journal":{"name":"Aspect-Oriented Software Development","volume":"258 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2013-03-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Aspect-Oriented Software Development","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2457392.2457396","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Modularity has been around for a long time. Good designers attempt to make use of it as much as possible. Languages have been developed to support it. Language extensions have attempted to deal with the situations where languages themselves fail. Tools have been designed to accommodate and encourage it. Most of these efforts, however, are geared toward "simple" homogeneous applications. Unfortunately, modern applications can be a lot more complex and bring up new and exciting challenges in terms of modularity. Today's applications, even relatively simple ones, involve multiple processes running on multiple machines, processes that are often external to the application itself and out of the control of the developers. The individual processes involve multiple threads, complex thread interactions, and opaque libraries. All these affect the way we look at systems and how we approach modularity.
In this talk we will look at the organization of several applications we have been building including the programming environment Code Bubbles, the semantic search tool S6, and our intelligent office sign, and consider how modular they are, how flexible their design is, and how we succeeded or failed in accommodating modularity in the face of other challenges such as portability, maintainability, efficiency, and extensibility. We will also look at how programming environments and tools, which are integral to the programming process, can either help or hinder modularity.