Collaborative code editing?

Collaborative code editing?

Postby Julius » 03 Apr 2019, 23:35

Anyone in a team actually working with a collaborative code editor?

I mean one that transmits changes seamlessly in real time, not sharing a git repo or something like that :)

It always seemed to me that this could boost productivity of open-source projects build by volunteers all over the world quite a bit (if it isn't to distracting), but the actual implementations as some web-editors seemed always a bit gimmicky and not well integrated in people's work-flow.

Until it was abandoned in favour of a stand-alone project I thought this collection of Etherpad-lite plugins was the closest to something workable: http://codepad.etherpad.org as it included an option to push to a git repo on the same server. But I don't think anyone ever actually used that productively.

However, just now I got to know about the Saros project: https://github.com/saros-project/saros

Saros is an Open Source IDE plugin for distributed collaborative software development.

All participants of a Saros session have an identical local copy of the projects they work on.
They can work in their usual IDE using all of its features (currently only Eclipse, IntelliJ IDEA support is coming soon).
Saros keeps their copies in sync, so everyone can work completely concurrently and in real-time.

Learn more about Saros: http://www.saros-project.org/


Which is an open source plugin for the Eclipse IDE that seems to fully synchronise projects and even has a build in group-chat and whiteboard!
All it seems to require is a modern XMPP server backend (which I have now running quite well on xmpp.freegamedev.net in case you want to try it ;) ).

I have not actually tested it... but this seems rather amazing :heart:

P.S.: don't miss their FAQ: http://www.saros-project.org/faq
User avatar
Julius
Community Moderator
 
Posts: 3297
Joined: 06 Dec 2009, 14:02

Re: Collaborative code editing?

Postby drummyfish » 04 Apr 2019, 00:11

Wow, this is very new to me, I never heard of this. Thanks for sharing.

My first impression is that coding is extremely different from writing a text document and the idea of collaborative editing of documents can't possibly translate well to coding -- imagine not being able to compile since someone is still messing with something somewhere in your code. But since apparently pair programming is a thing, I may be wrong. Anyway, if the technology is to be successful, it will have to support a very wide range of editors including vim and such, programmers won't be giving up their favorite editors and forcing them to would frustrate them and kill their productivity, countering any gain of collaborative editing. These are my first thoughts. I am curious how this will develop -- am a bit skeptical to be honest :)
socialist anarcho-pacifist
Abolish all IP laws. Use CC0. Let's write less retarded software.
http://www.tastyfish.cz
User avatar
drummyfish
 
Posts: 448
Joined: 29 Jul 2018, 20:30
Location: Moravia

Re: Collaborative code editing?

Postby Julius » 04 Apr 2019, 02:03

Hmm, yeah it probably lends itself better to script code that doesn't need compiling. Writing a php website like this would be for example no problem at all.

You are right about the tools, which is I think why the web-based code sharing tools never took off. But Eclipse & soon IntelliJ (plus all their derivatives) cover a pretty big chunk of the IDE users and I guess getting it to work with Atom or Visual Studio wouldn't be that hard.

I think it would lend itself very well to guide people to understand another person's codebase and could definitely lower the entry barrier for smaller changes and additions compared to having to do a merge request on git. Collaborative prototyping might also be more fun and faster this way... not sure :)

Edit: it's especially cool that it is XMPP standard compatible, so even if your team members are not currently on their workstations they are easily reachable from the IDE through the normal mobile chat clients etc. In addition you can set up all sorts of chatops bots to do automated tasks, and the team members are directly aware what changes you did that way.
User avatar
Julius
Community Moderator
 
Posts: 3297
Joined: 06 Dec 2009, 14:02

Re: Collaborative code editing?

Postby O01eg » 04 Apr 2019, 05:23

There is gobby+infinoted which also uses xmpp proto for collaboration. https://gobby.github.io/
Public FreeOrion multiplayer server: https://freeorion-test.dedyn.io/
Slow paced multiplayer server (registration required!): https://freeorion.org/forum/viewtopic.p ... 705#p95705
Donates for FreeOrion multiplayer improvements: BTC:bc1q04qnmql47zkha6p4edl86hm0wgk90dmsfnl3vl
O01eg
 
Posts: 68
Joined: 17 Sep 2012, 11:15
Location: Russia

Re: Collaborative code editing?

Postby Julius » 04 Apr 2019, 10:23

True, there is even a compatible Emacs plugin it seems: http://rudel.sourceforge.net/
From a quick look it appears though as if they are not compatible with using arbitrary XMPP servers? Kind of a wasted opportunity :(
User avatar
Julius
Community Moderator
 
Posts: 3297
Joined: 06 Dec 2009, 14:02

Re: Collaborative code editing?

Postby dulsi » 04 Apr 2019, 16:41

This seems like a solution in search of a problem. Pair programming is so that two people understand the logic and can double check each other. This isn't good at that because it doesn't require you to look at the same section of code. If you are editing function A, I can wonder off to look at function B. You would need to tell them to go to the section you are editing and wait for them to get there. For XMPP is it just text chat? For pair programming talking is far faster at communicating than typing. If you are not doing pair programming and editing unrelated sections, why would you use this over version control. It seems like the only thing you gain is instability introduced by the other person.
dulsi
 
Posts: 570
Joined: 18 Feb 2016, 15:24

Re: Collaborative code editing?

Postby Julius » 04 Apr 2019, 18:36

dulsi {l Wrote}:Pair programming is so that two people understand the logic and can double check each other. This isn't good at that because it doesn't require you to look at the same section of code.

I think Saros has both, one for strict following and one for free editing. But it still marks the files and lines others are working on, so it is quite easy to follow another user regardless of the setting.

I agree that it probably has it's main strength in some sort of teaching... but introducing new developers to a complex code-base is actually quite vital in many settings, especially if it can be easily done over the internet with a tool like Saros. I think it could also help to have an experienced developer very quickly available for questions and who can even conveniently point you to the right location and quickly fix errors when reviewing.
I guess it would also help with code sprints, when you invite external contributors that are unlikely to have a full grasp of the code and also not the time to get to know it, but which could with some easy guidance from a core developer do some worthwhile contributions.

dulsi {l Wrote}:For XMPP is it just text chat? For pair programming talking is far faster at communicating than typing. If you are not doing pair programming and editing unrelated sections, why would you use this over version control. It seems like the only thing you gain is instability introduced by the other person.


The backend is using XMPP, i.e. it does hidden messages through the XMPP network to transfer all the code changes and establish a P2P connection for larger filetransfer. In addition there is a text chat and a whiteboard for drawings. I guess integration of a voice chat via WebRTC would be also possible, but is not yet included it seems.
I think this use of XMPP is neat because you can use existing server infrastructure easily, and XMPP scales really well / is very low resource on a server. Users also do not need to get an separate account and just use Saros as another client to their regular XMPP use incl. answering quick questions when AFK through a mobile chat app like Conversations.
User avatar
Julius
Community Moderator
 
Posts: 3297
Joined: 06 Dec 2009, 14:02

Re: Collaborative code editing?

Postby dulsi » 05 Apr 2019, 02:52

Julius {l Wrote}:I think Saros has both, one for strict following and one for free editing.

Well that makes it more useful for pair programming than I thought. I'm not much of a believer in the value of pair programming so I'm not really that keen on software like this.
dulsi
 
Posts: 570
Joined: 18 Feb 2016, 15:24

Re: Collaborative code editing?

Postby GunChleoc » 05 Apr 2019, 12:08

It sounds like a good teaching tool. Interactive sessions can help introduce new developers to a complex code base. The then main developer of Widelands did a Google Hangout session with me when I first started working on a complex piece of code there, which was very useful.
User avatar
GunChleoc
 
Posts: 502
Joined: 20 Sep 2012, 22:45

Re: Collaborative code editing?

Postby Julius » 10 Apr 2019, 21:53

This is by the way a similar SaaS: https://repl.it/ that seems quite popular.

They are also having a small Gamejam right now for which they recommend Löve: https://repl.it/talk/challenge/Were-hos ... -Jam/11432
User avatar
Julius
Community Moderator
 
Posts: 3297
Joined: 06 Dec 2009, 14:02

Who is online

Users browsing this forum: No registered users and 0 guests