Writing a Programmers Editor (Reflections & Lessons) - Part 12
Draft — not yet published.
In Part 11 we will have built the extensibility layer. The editor will be complete — a working text editor written entirely in Scheme. This final part is a reflection.
We started in Part 1 with questions:
- Are these languages equally powerful in the Power Continuum?
- How do these existing Editors work?
- Is there an efficiency equation that we are unaware of?
- What if the delicate balance in powers of the runtime and scripting exists for a reason and has a penalty when disturbed?
This part answers them — with the benefit of having actually built the thing.
Topics:
- What worked: the gap buffer was simple and fast. Scheme was expressive enough.
- What was hard: terminal I/O, performance in a garbage-collected language.
- The power continuum revisited: did writing the editor in
100%Scheme actually help? - What emacs got right: the balance of C core and elisp layer.
- What we would do differently next time.
- Final thoughts on the Feynman principle: What I cannot create, I do not understand.
Shorel'aran
Article Series
Writing a Programmer's Editor
A series of assays on building a programmable text editor from scratch in Scheme — exploring the balance of power between the C runtime and the scripting language, data structures, terminal I/O, and extensibility.
- 1 Writing a Programmers Editor - Part 1 2018-08-06
- 2 Writing a Programmers Editor (DS/Gapbuffer) - Part 2 2018-08-11
- 3 Writing a Programmers Editor (Gap Buffer in Scheme) - Part 3 Draft 2018-08-18
- 4 Writing a Programmers Editor (Lines & Display) - Part 4 Draft 2018-08-25
- 5 Writing a Programmers Editor (Terminal I/O & Raw Mode) - Part 5 Draft 2018-09-01
- 6 Writing a Programmers Editor (Keymaps & Input Handling) - Part 6 Draft 2018-09-08
- 7 Writing a Programmers Editor (Rendering & Redisplay) - Part 7 Draft 2018-09-15
- 8 Writing a Programmers Editor (Search & Replace) - Part 8 Draft 2018-09-22
- 9 Writing a Programmers Editor (Syntax Highlighting) - Part 9 Draft 2018-09-29
- 10 Writing a Programmers Editor (Undo/Redo & Command Log) - Part 10 Draft 2018-10-06
- 11 Writing a Programmers Editor (Modes & Extensibility) - Part 11 Draft 2018-10-13
- 12 Writing a Programmers Editor (Reflections & Lessons) - Part 12 Here 2018-10-20
2 of 12 articles published
Responses