site: faq: history: yet another cleanup/cheer-up

This commit is contained in:
Simon Michael 2016-02-18 09:43:20 -08:00
parent aa1fc3f2f2
commit 8370d2ec63

View File

@ -6,23 +6,28 @@
### History ### History
I discovered John Wiegley's [Ledger](http://ledger-cli.org) in 2006, and was a happy user at first. I discovered John Wiegley's [Ledger](http://ledger-cli.org) in 2006,
Then came a long period of stagnation in that project, and was very happy to find this efficient command-line reporting tool with a transparent data format.
with missing and misleading documentation, irksome bugs, and a confusing release situation.
I urgently needed a reliable accounting tool that I enjoyed using. I also wanted to lower the barriers to entry for newcomers. Initially, I used it to generate time reports for my job.
For a while I worked within the Ledger project, reporting bugs and setting up a new domain and website. Before long I wanted that to work a little differently - splitting the transaction at day boundaries, reporting in hours, etc.
But, I didn't want to spend time learning C++. And I did want to spend time learning Haskell. John had got busy elsewhere and the Ledger project now entered a fairly long period of stagnation, with persistent bugs, documentation problems, and a confusing release situation.
I felt Ledger could be implemented well and perhaps more efficiently in that language, I did what I could to help build momentum in the Ledger project, reporting bugs, supporting newcomers, and contributing a new domain and website.
which has some compelling advantages. But, I didn't want to spend time learning C++. I was learning Haskell, which I did want to spend time in.
I felt Ledger could be implemented well and, in the long run, more efficiently in that language,
which has some compelling advantages such as lower maintenance costs.
<!-- ([eg](http://neilmitchell.blogspot.com/2016/02/selling-haskell-in-pub.html)). -->
<!-- (It encourages the coding style known as pure functional programming, --> <!-- (It encourages the coding style known as pure functional programming, -->
<!-- allowing more bug-free, concise and maintainable software. It provides --> <!-- allowing more bug-free, concise and maintainable software. It provides -->
<!-- a more abstracted, portable platform making installation easier. It is --> <!-- a more abstracted, portable platform making installation easier. It is -->
<!-- attractive for contributors to work on.) --> <!-- attractive for contributors to work on.) -->
I couldn't expect John to start over - at that time he was not the Haskell I urgently needed a reliable accounting tool that I enjoyed using.
fan he is now - so in 2007 I began experimenting myself, built a I also wanted to see what I could do to reduce roadbumps and confusion for newcomers.
toy parser, and kept tinkering. I wanted I couldn't expect John to start over - at that time he was not the Haskell fan he is now.
So in 2007 I began experimenting.
I built a toy parser in a few different languages, and it was easiest in Haskell.
I kept tinkering. Goals included:
(a) to get better at Haskell by building something useful to me, (a) to get better at Haskell by building something useful to me,
(b) to learn how well Haskell could work for real-world applications, (b) to learn how well Haskell could work for real-world applications,
and as increasingly time passed, and as increasingly time passed,
@ -30,16 +35,24 @@ and as increasingly time passed,
features, absence of user-visible bugs, and high-quality documentation and web presence. features, absence of user-visible bugs, and high-quality documentation and web presence.
Also to experiment with new user interfaces, APIs, etc. Also to experiment with new user interfaces, APIs, etc.
Later the Ledger project revived and attracted more contributors. The Before too long I had a tool that was useful to me. With Ledger still installed,
two projects collaborate freely and ideas have travelled in both and by maintaining high compatibility, I now had two tools with different strengths,
directions. Having two independent somewhat-compatible each providing a comparison for the other in case of confusion or suspected bugs,
implementations has been quite helpful for testing and which was itself quite valuable.
troubleshooting, exploring the design space, and growing the "*ledger"
community. I also give back to Ledger by providing infrastructure Later the Ledger project revived and attracted more contributors. I have
like [ledger-cli.org](http://ledger-cli.org), remained active in that community, sharing discoveries and design discussions,
[LedgerTips](http://twitter.com/LedgerTips), IRC support on #ledger and happily we have seen many ideas travelling in both directions.
etc. In 2014 I added a [#hledger](irc://irc.freenode.net/#hledger) channel
to allow more hledger-specific discussion. I think having independent but compatible implementations has been
quite helpful for troubleshooting, exploring the design space, and
growing the "Ledger-likes" community.
My other projects in that direction include
the [ledger-cli.org](http://ledger-cli.org) site,
[LedgerTips](http://twitter.com/LedgerTips),
IRC support on #ledger,
and now [plaintextaccounting.org](http://plaintextaccounting.org).
In 2014 I added a [#hledger](irc://irc.freenode.net/#hledger) channel to allow more hledger-specific discussion.
### Future ? ### Future ?