# _CoVSCode_: A Novel Real-Time Collaborative Programming Environment for Lightweight IDE
## 8 Conclusions  
Software development requires effective collaboration among programmers with diverse skills and experience. In contrast to the conventional non-real-time collaborative programming which is supported by version control systems, real-time collaborative programming is an emerging approach that enables a team of programmers to view and edit shared source code documents at the same time. During a real-time collaboration session, each programmer's changes on the source code are instantly visible and integrated at other collaborating sites. Because of its wide range of application scenarios and benefits, this emerging technique has attracted increasing interests from both academia and industry. Lightweight integrated development environments (lightweight IDEs), such as _Visual Studio Code_ and _Sublime Text_, have rapidly grown in popularity in the recent years due to their excellent customizability and extensibility. However, there are serious problems and limitations with existing real-time collaboration support for lightweight IDEs. For example, the two official real-time collaboration plugins (i.e., _Visual Studio Live Share_ and _Teletype for Atom_) are the most sophisticated so far, but they only support the _host-participator_ collaboration pattern with several limitations, and cannot meet diverse collaboration needs. Motivated by the above observations, we have proposed, designed and implemented a novel real-time collaborative programming environment named _CoVSCode_ that supports unconstrained and flexible real-time collaboration based on _Visual Studio Code_, one of the most popular and widely-used lightweight IDEs. We proposed three design objectives for the proposed environment, and then designed the overall workflow and system functions from collaborating programmers' perspectives. We also discussed major technical issues and solutions involved in system building and prototype implementation. Based on the proposed approaches and devised techniques, we implemented the _CoVSCode_ prototype, and conducted a set of experimental evaluations that demonstrated the technical feasibility and satisfactory performance of the system in several aspects. In addition to the concrete _CoVSCode_ prototype, all approaches, techniques and solutions contributed in this study are generic, which can also be re-applied to building real-time collaborative programming environments for other lightweight IDEs. We are continuously working in the research domain of real-time collaborative programming environments, and several potential issues have been identified for future work. Firstly, we plan to propose and contribute more innovative features for assisting programmers in conflict prevention and collaboration awareness during real-time collaboration sessions. Secondly, we plan to design and implement a real-time collaborative programming environment for another lightweight IDE (such as _Subline Text_ or _Atom_) which will further test the generality of the approaches and techniques derived in this study. Thirdly, the _CoVSCode_ prototype will be continuously developed and improved, with more in-depth real-world user evaluations. Conceptualization, H.F., B.D. and Y.S. ; methodology, H.F. and Y.S. ; software, K.L. and X.L. ; validation, K.L., T.S. and W.Z. ; data curation, K.L., T.S. and W.Z. ; writing--original draft preparation, H.F. and B.D. ; writing--review and editing, H.F., B.D. and Y.S. ; visualization, H.F., B.D. and K.L. ; funding acquisition, H.F. and Y.S. This research was funded by the National Natural Science Foundation of China (No. 61702374, No. 61772371, and No. 61672128), the Shanghai Sailing Program (No. 17 YF1420500), the National Key Research and Development Program of China (No. 2016 YFB1000805, No. 2018 YFB0505000, and No. 2018 YFC0830406), the National Critical Science and Technology Infrastructure Program (National Seafloor Scientific Observatory, Tongji University), and the Fundamental Research Funds for the Central Universities.