This is a proof of concept of an interactive collaborative development environment I built using F# Interactive. The aim here is to explore different ideas for further development, not so much as to present an alternative to Visual Studio :) Source code here (zip). ”Make it pink” code (txt), and Space Scene code (txt).
The video demonstrates a server and two clients collaborating on the same machine.
The way it works is that there are two different roles, the server (EchoServer) and the client (EchoClient). The role of the server is to act as repeater between the clients. When one client inputs source code the code is automatically sent to all the other clients. The server stores the code so when a new client joins it can be brought up to speed with all of the other clients.
This has the following advantages;
- Everyone is on the same page with the latest version of the software
- All developers work with the very latest source code
- The source code is continuously integrated in real time
- ‘Build’ breaks are noticed (and fixed) immediately
There are also a number of disadvantages;
- Cannot undo certain operations with side effects
- Code from the network is being downloaded and run on your machine
- The entire source code is a stored as single string
The reason I am playing with this is prepare for my next move into Domain Specific Modeling tools.
I’ve included the source code below. It is prototype code, so there are probably a few bugs in it, and as always feedback is greatly appreciated.