longterm goal
This commit is contained in:
parent
3e35fe0226
commit
a6fbf20671
1 changed files with 32 additions and 0 deletions
32
doc/todo/ditch_yesod.mdwn
Normal file
32
doc/todo/ditch_yesod.mdwn
Normal file
|
@ -0,0 +1,32 @@
|
|||
I'd like to move away from using yesod for the web app, for a number of
|
||||
reasons:
|
||||
|
||||
* It's by far the largest use of TH in git-annex, and TH is of course very
|
||||
painful for the android port, other builds like debian mips that don't
|
||||
currently support TH, etc.
|
||||
* I think it's responsible for at least 50% of the executable size, and I
|
||||
suspect a lot of that is unncessary bloat for parts of yesod that
|
||||
git-annex doesn't really use.
|
||||
* Hamlet constantly annoys me by rejecting any file that contains tabs.
|
||||
**Rage**
|
||||
* Hamlet contains code that's not really haskell, but looks a lot like it.
|
||||
This is a continual frustration when dealing with the hamlet files.
|
||||
* I find that Hamlet does not lend itself to being refactored, everything
|
||||
is essentially an IO action with side effects of generating html, so
|
||||
can't really bring proper FP tools to bear.
|
||||
|
||||
At the moment, servant seems like the nicest place to end up. Just as type
|
||||
safe as yesod afaik, and very lightweight and simple and rather awesome.
|
||||
|
||||
As for the html generation, lucid seems like a good way to do it. Just as
|
||||
fast as hamlet, and pure haskell code.
|
||||
|
||||
Game plan:
|
||||
|
||||
1. Uploadd a yesod-lucid to hackage. (done)
|
||||
2. Get servant, lucid, maybe yesod-lucid, packaged in Debian
|
||||
3. Start converting individual yesod Handler Html to Handler LucidHtml.
|
||||
This will ditch the hamlet. This is by far the most work, but it can be
|
||||
done incrementally w/o breaking the build.
|
||||
4. Once all the hamlet is gone, remove the rest of the yesod stuff and
|
||||
re-implement the routing etc with servant.
|
Loading…
Reference in a new issue