Abstract
To manage complexity, modern programming languages use organizational units to group code related by some common purpose. Depending on the programming language, these units might be called libraries, packages or modules. But they all attempt to encapsulate functionality to promote modular code and reusability. For the remainder of this paper, we will simply refer to these organizational units as packages (as they are called in Modelica). Also common to many modern programming languages are tools to manage these packages. These tools are generally called package managers and they allow developers to quickly “fetch” any packages they may need for a given project. The main functions of package managers are to allow developers to search, install, update and uninstall packages with a simple command-line or graphical interface. In the Java world, the most common package manager is maven. For Python, tools like easy_install[1] and pip[2] are used for managing packages. For clientside web development, bower is used. For serverside JavaScript, the tool of choice is npm[3]. For compiled languages, these package managers often include some additional build functionality as well. This paper introduces impact, a package manager for Modelica. Using impact, Modelica users and developers can quickly search for, install and update Modelica libraries. In this paper, we will discuss the functionality provided by impact. In addition, we will discuss how the functionality was implemented. As part of this we will discuss the importance of collaborative platforms, like GitHub[4] in our case, for providing a means for collecting, curating and distributing packages within a community of developers.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.