# _CoVSCode_: A Novel Real-Time Collaborative Programming Environment for Lightweight IDE
## 7 Discussion and Comparisons  
In this study, we proposed, designed, and implemented a novel real-time collaborative programming environment for _VS Code_, one of the most popular and widely-used lightweight IDEs. It is worth pointing out that all approaches and techniques contributed in this work are generic, which can also be applied in building real-time collaborative programming environments for other lightweight IDEs such as _Atom_ and _Sublime Text_. The generality of this work lies in several aspects. First of all, the three high-level design objectives and rationales (Section 3) were proposed in a generic manner, and are not specific to any concrete IDE--they could be used for guiding the design of any real-time collaborative programming environment. Secondly, in terms of the overall system architecture (Section 4.1), the underlying _VS Code_ can be simply replaced by another IDE while all other components remain unchanged, and therefore the whole architecture is generic for supporting any real-time collaborative programming environment. Thirdly, the workflow and functional design (Section 4.2) was proposed in a generic way that conceptually defines how a programmer interacts with the environment, without binding to any specific IDE. Last but not least, all supporting techniques, implementation approaches, and user interface design could be straightforwardly reused for building any real-time collaborative programming environment. For example, the client system architecture (Section 5.2) could be reused with any IDE simply by replacing the underlying _VS Code_; the design of LOP and ROP (Section 5.2) is compatible with any IDE; the consistency maintenance techniques (Section 5.3) and session management techniques (Section 5.4) are reusable for any similar environment; and the UI design and collaboration awareness features (Section 6.1) are also applicable to any real-time collaborative programming environment. The only technical requirement in implementing another system of a similar nature is to investigate the APIs provided by the selected IDE, as well as to utilize the APIs following the descriptions in Table 1. This is usually not a challenge for most of the popular lightweight IDEs, as they have been designed for supporting extensions by nature, which commonly provide rich collections of APIs. We compare this study with related works as follows. Firstly, compared with other real-time collaborative editing systems contributed in prior works such as _CoWord_[27], _CoMaya_[29], _Co-AutoCAD_[30], _CoWebDraw_[32] and _Codox Wave_[33], this study focuses on supporting real-time collaboration for software development with lightweight IDEs, and has extended the application domains of the TA approach. Moreover, several technical issues involved in this study were not existing in those prior works. For example, the _CoVSCode_ system manages two kinds of real-time collaboration sessions to support the simultaneous editing of several source code files and the source code tree, whereas in prior works there was usually a single shared document that was collaboratively edited. Secondly, in the domain of real-time collaborative programming, one major advantage of the _CoVSCode_ prototype compared with other research prototypes that have been contributed in the recent years (such as _CodePilot_[14], _CodeR_[9] and _CoRED_[6]) is its full compatibility with an existing popular  
Figure 13: CPU utilization and memory usage of the _CoVSCode_ server in a five-minute duration of a real-time collaboration session. and widely-used IDE (i.e., the _VS Code_ IDE). Given the large user community of _VS Code_, there exists great potential for real-world impacts of this work, as well as opportunities for user studies with larger scopes in the future work. Thirdly, compared with _VS Code_'s official real-time collaboration plugin (_Live Share_), this work establishes a significant difference, with several major advantages as follows:  
1.