Gitlab hero border pattern left svg Gitlab hero border pattern right svg

Category Strategy - Live Coding

Live Coding

Introduction and how you can help

Thanks for visiting this category strategy page on Live Coding in GitLab. This page belongs to the Editor group of the Create stage and is maintained by Kai Armstrong(E-Mail).

This strategy is a work in progress, and everyone can contribute:

Overview

Collaboration and review are important parts of the development process. Today, GitLab only supports this once the code has been written and Merge Request is openend. Support for live coding sessions inside of the Web IDE are a valuable way to speed up review and further collaboration amongst teams. With multiple people working on the same project and files at the same time we’ll enable teams to collaborate more effectively and teach others.

Working on Live Coding also allows us to apply this technology to other interesting verticals like teaching and classroom work. A session could be started where others join and follow along in a lecture or demo taught by the editor.

Target Audience and Experience

All users of the Web IDE who work in collaborative environments will benefit from Live Coding. Live coding can also be used to help facilitate educational use cases through the broadcast features which would allow others to participate in live demos/lectures.

Maturity Plan

Currently, GitLab’s maturity in Live Coding is planned. Here’s why:

Minimal maturity will come for Live Coding when we support the ability to broadcast a Web IDE session. This is the first step in enabling collaboration across the Web IDE. We’ll also need the ability to broadcast the Web Terminal and Live Preview to ensure all functionality of the Web IDE is supported in a collaborative session.

A viable live coding category brings in the tools to enable collaboration across users. This will allow users joining the session to contribute in real time via edits to the working files as well as the Web Terminal and Live Preview features.

What's Next & Why

Next: Broadcast Web IDE

Read only broadcasting from the Web IDE will allow the user to collaborate with another member of their team without the need for screensharing. Audio and chat support will not be available in early MVC’s of live coding.

Broadcasting is the simpler problem because changes are only flowing in a single direction, removing the problem of conflicts. However, using operational transformations, we should be able to quickly follow up with a second iteration that allows multiple people to edit simultaneously.

After: Broadcast Web Terminal and Broadcast Live Preview

The Web IDE is only one component of the tools that make it valuable. In order for real collaboration to take place across the entire development process (write, test, preview) support for the Web Terminal and Live Preview will also need to be added.

What is Not Planned Right Now

We’re currently not focused on solving the voice communication components of Live Coding. While we understand the importance of being able to speak to someone during this real time process it’s not a focus at this time.

Competitive Landscape

Analyst Research Request

The original proposal for this came from a Webinar which has several up votes and user comments.

As the feature is still planned, there are no current User issues.

The original proposal for this came from a Webinar in which GitLab presented.

The most important component to enabling Live Coding will be understanding the underlying technology used to implement this. Most other implementations of real time collaboration leverage a technology known as Operational Transformation. Getting up to speed on this technology and implementing are keys to laying the proper foundation to support Live Coding.