Hi Daniil,
On Fri, Apr 26, 2013 at 06:35:00AM -0700, Daniil Frumin wrote:
> Hi everyone,
>
> my name is Daniil, I am an undergraduate CS student and I am
> interested in participating in diagrams GSoC and I am looking for a
> mentor. I have to admit, I am not yet familiar with all the nifty
> details of implementation of the library. My first encounter with
> diagrams was when I read Brent Yorgey's paper on monoids [1] and
> that's how I got interested in the library, so at least I know the
> details that were presented in the paper.
For making a paste site, familiarity with the internals of diagrams is
not very relevant. More relevant would be any experience you have
with Haskell in general and with creating websites in particular.
> I am interested in working on diagram's paste site (as been proposed
> on the wiki [2]), I actually wanted to do something similar with
> Graphviz, but after making some initial progress got carried away and
> never finished it [3]. I was thinking of making something more of a
> REPL (like tryhaskell, or
ghc.io), rather than a simple
> pastebin+evaluator (like codepad).
I would very strongly encourage you to stick to the idea of a paste
site instead of a REPL, for several reasons:
1. As you point out, we already have several Haskell REPL sites; it
is not clear what would be all that distinctive about a REPL
which can also render diagrams. You would spend most of your
time reimplementing features that already exist in tryhaskell or
ghc.io.
2. In fact, during last year's GSoC there was a project to make a
web-based collaborative REPL (which could indeed render diagrams,
though that was not the main focus). It accomplished some things
but never really got to a state to be usable enough and is widely
regarded as something of a failure. So proposing a similar
project is not likely to be looked on very favorably.
3. Perhaps most importantly, in my opinion the diagrams project
would be best served by a paste site as opposed to a REPL. The
point is that I want to be able to easily share diagrams code and
its output with others. Also, a REPL interface is fun for
playing but not that useful because most often the code required
to make a diagram is much more than just a single line. In other
words, to be really useful a REPL interface would need to also
support (a) a way to also input larger blocks of code and (b) a
way to save and share code with others; but by that point you
have basically implemented a REPL plus also a paste site. So it
makes much more sense to *begin* with a paste site, and perhaps
add REPL-ish features afterwards as you have time.
Some general advice: we did not register diagrams as a separate
open-source project this year; any diagrams projects will be simply
under the general
haskell.org organization. That means you need to
convince people why this project will be of benefit to the larger
Haskell community (and not just to people using diagrams).
Here's what I would advise: make a fork of the code for
hpaste.org,
and add diagrams features to it. There's not really any point in
recreating your own foundation from scratch. Then ideally your
changes could even be merged back into
hpaste.org itself.
Now, adding the ability to compile diagrams to hpaste would not take a
whole summer. It may be worth thinking about additional features that
would specifically make creating and sharing diagrams code easier.
Off the top of my head I am not sure what those might be. Perhaps
others will have some ideas.
-Brent