aboutsummaryrefslogtreecommitdiff
path: root/doc/todo/rewrite_ikiwiki_in_haskell/discussion.mdwn
blob: ff20f7c8acd56b34d0908b37e287201873ed75a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Ok, I have to admit, I have no idea if this is an April fool's joke or not.  
Congratulations for demonstrating that April fools jokes can still be subtle
(whether intentionally or not!) -- [[Jon]]

> Having said all that, have you looked at erlang? Have you heard of couchdb?
> I'd strongly recommend looking at that. -- [[Jon]]

>> I've glanced at couchdb, but don't see how it would tie in with ikiwiki.
>> --[[Joey]] 


>>> It doesn't really. I recently (re-)read about couchdb and thought that
>>> what it was trying to do had some comparisons with the thinking going on
>>> in [[todo/structured_page_data]]. -- [[Jon]]

-----

I'm torn about this idea, if it's actually serious.  I'm very comfortable
programming in Perl, and have written quite a few modules for IkiWiki, and
it would be a huge pain to have to start from scratch all over again. On
the other hand, this could be a motivation for me to learn Haskell.  My
only encounter with Haskell has been a brief time when I was using the
Xmonad window manager, but it looks like an interesting language.
Functional programming is cool.

There are a lot of interesting plusses for Haskell you note (in the parent
page), but it's true that the idea is horribly daunting (as [[Joey]] said
"If only I had a spare year").  Is there any way that you could "start
small"?  Because nothing will ever happen if the task is too daunting to
even start.

> This seems destined to remain a thought experiment unless something like
> that can be done, or I get a serious case of second system disease.
> 
> I've considered doing things like using the external plugin interface
> to run a separate haskell program, which would allow implementing
> arbitrary plugins in haskell (starting with a pandoc plugin..),
> and could perhaps grow to subsume the perl code. However, this would
> stick us with the perl data structures, which are not a very good fit
> for haskell. --[[Joey]]

On further thought... perhaps it would be easier to fork or contribute to
an existing Haskell-based wiki, such as <a
href="http://jaspervdj.be/hakyll">Hakyll</a>?

--[[KathrynAndersen]]

> As far as I know there are no other wikis (haskell or otherwise)
> that are wiki compilers. Since we know from experience that dealing
> with static compilation turns out to be one of the trickiest parts of
> ikiwiki, I'm doubtful about trying to bolt that into one. --[[Joey]] 

>> Haykll isn't a wiki but it does do static compilation. The missing
>> parts are: the web interface, the wiki link processing, and page
>> dependency stuff. -- [[tychoish]]

>>> (nods) Which is why I suggested it.  I'm not sure whether it would be easier to "bolt on" those things than static compilation, but it could be worth looking at, at least. -- [[KathrynAndersen]]

-----

Rather than coding plugins for the Perl ikiwiki in Haskell, I wonder how easily a Haskell ikiwiki could still support plugins written in Perl? The (old and apparently stale) [HsPerl5](http://hackage.haskell.org/package/HsPerl5) package might provide a helpful starting point there. -- [[JoshTriplett]]

-----

I'm very keen on this, and would be interested in helping. I've been wanting to use ikiwiki for years, but the idea of investing time in the perl ecosystem and perl-based implementation stops me. -- [[Simon Michael]]