Programs are written in text. If you want to edit programs, you have to be reasonable text editor. You need find-and-replace. You need to handle files being updated underneath you. You need syntax highlighting and incremental parsing. You need to be able to match error messages to locations in files (much harder than it sounds). You need to be able to open large files without dying. You need to scroll smoothly. You need to handle custom key bindings, different keyboard layouts (eg https://github.com/LightTable/LightTable/issues/620) and unicode editing.
You have to do all these things because if you don't the editor is not usable for editing programs. The vast majority of the code in LT is devoted to basic text editing. Just reaching the same level of polish as, say, gedit would take many more man-years of work. All of that work has to be done before we can spend time on actual innovation.
Or we could just make a language with a sane serialisation format. Eve already supports live coding, incremental compilation as you type, globally unique identifiers for every piece of code and time-travel debugging. We also have algorithms sketched out for concurrent editing, commit-as-you-type (ie the version control system stores every keystroke) and causal history for data (why/why-not provenance). We got to do all that in a few months because we didn't have to fuck around building a text editor.
Wow, what you described is not at all what I was looking for when I supported Light Table. I already have IPython IDE where I have all that text editing, and all other stuff I need to type in and run my code. I was looking for something completely different, not yet another text editor! I was looking for something visual, where I can see what my code is doing without me having to insert a bunch of print statement.
In fact, I found some of that here:
http://pythontutor.com/visualize.html#mode=edit
but I hoped that LT will do it even better.
You have to do all these things because if you don't the editor is not usable for editing programs. The vast majority of the code in LT is devoted to basic text editing. Just reaching the same level of polish as, say, gedit would take many more man-years of work. All of that work has to be done before we can spend time on actual innovation.
Or we could just make a language with a sane serialisation format. Eve already supports live coding, incremental compilation as you type, globally unique identifiers for every piece of code and time-travel debugging. We also have algorithms sketched out for concurrent editing, commit-as-you-type (ie the version control system stores every keystroke) and causal history for data (why/why-not provenance). We got to do all that in a few months because we didn't have to fuck around building a text editor.