Motherhood and apple pie: modularity in modern applications and tools to support it

S. Reiss
{"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.
母性和苹果派:现代应用程序中的模块化和支持它的工具
模块化已经存在很长时间了。优秀的设计师会尽可能多地利用它。已经开发了一些语言来支持它。语言扩展试图处理语言本身失败的情况。已经设计了一些工具来适应和鼓励它。然而,这些努力中的大多数都是面向“简单的”同构应用程序的。不幸的是,现代应用程序可能要复杂得多,并且在模块化方面带来了令人兴奋的新挑战。今天的应用程序,即使是相对简单的应用程序,也涉及在多台机器上运行的多个进程,这些进程通常位于应用程序本身之外,不受开发人员的控制。单个进程涉及多个线程、复杂的线程交互和不透明的库。所有这些都会影响我们看待系统的方式以及我们如何实现模块化。在这次演讲中,我们将介绍我们已经构建的几个应用程序的组织,包括编程环境Code Bubbles,语义搜索工具S6和我们的智能办公标识,并考虑它们的模块化程度,设计的灵活性,以及我们在面对可移植性,可维护性,效率和可扩展性等其他挑战时如何成功或失败地适应模块化。我们还将研究编程环境和工具(它们是编程过程的组成部分)如何帮助或阻碍模块化。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信