One of the most requested features from our customers is an ability to edit code and synchronize this process between the users.

That’s an option a lot of online IDEs and collaborative editors offer. The problem with these is that they are terribly awkward; I tried a lot of them, and I liked none. I don’t want SourceTalk to be like any of these monstrous services with a lot of menu items, buttons and features no one actually needs. I really think that the best place to edit code is your standalone code editor. SourceTalk is for discussing, not for editing something.

One might however think: “Ok I don’t really want to edit code online, but what if we discuss some block of code and I want to propose a particular change? Wouldn’t it be more convenient if I just edit that block of code instead of sending it as a message?”

XKCD comic. Sometimes it’s better to simply pass the salt

At first glance, that sounds reasonable. After all, one small feature won’t overcomplicate the product, right? Wrong.

Let’s say you are discussing some block of code and want to offer a modification. You edit it, and your colleagues see the modified version. But what are you planning to do with this version now? You need some option to save the modified file to your local file system–and that’s also a new feature. Moreover, say one of your collaborators haven’t noticed you change the code. But of course she needs to know that, so we need some tooltip or special highlighting to inform her of the change you made–and that’s another feature. Now, let’s assume that she also wants to modify another block of code, and after discussing both changes you eventually consider that her change is great and yours was actually a bad idea. Now you need some option to discard only your change and leave hers as is… well, you got the idea?

Now ask yourself again: do you really need all these features? I think you don’t. I like keeping SourceTalk clean and simple, and I hope you also love it for its simplicity. That’s why SourceTalk will never have a code editor.

Oleg Kalistratov, co-founder