Project

pickaxegem

0.0
No release in over 3 years
An editor written with Ruby/GTK
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 3.4
 Project Readme

pickaxe

This project aims to be built to a text editor. Its main goal is actually editing code but code is also a text so I prefer that more general title. As a result, most users would be developers. Because of that, it will support features to make development easier such as syntax highlighting, code completion and debugging. You can think that code completion and debugging are generally IDE features and an editor shouldn't have them. But they are really useful features for big projects and can be included in a lightweight editor. To be able to keep the lightweight nature, these features will be added as extensions.

It is written using literate programming. So all project is actually a book. You can read it, and find and fix typos or bugs in it. It is a document both humans and computers can understand.

I wanted to write it this way because I realized that the best way to develop a well-organized project is practicing TDD. When I tried to write tests before the implementation, I noticed that tests are like specification of implementation. They are, of course, code. But function names for these tests are like some rules only humans can understand; they mean nothing to computers. But these function names were too short and confusing so I needed to add some comments above the functions. These comments were prone to be a document. But they are just ordinary comments. I couldn't add a title, a list or an image to them so they were also confusing. Then I thought what would happen if I try to practice literate programming in this project. So the journey has begun.

Literate programming makes sense for any project because we are thinking this way. We worked hard to develop programming languages which were similar to our speaking languages and our thinking processes. Because we are thinking and express ourselves that way. But the gap between our thoughts and languages, and programming languages is still big. Nevertheless we continue to put our early thoughts directly into code. We can use literate programming to make our thoughts mature, organized and right, then we can write code with peace of mind. Here I've just tried this.