[GSoC] RFC: Thrift project proposal (draft)
Robert Jacques
sandford at jhu.edu
Thu Mar 24 21:48:19 PDT 2011
On Thu, 24 Mar 2011 19:46:39 -0400, David Nadlinger <see at klickverbot.at>
wrote:
> Hi all,
>
> I am putting together a Google Summer of Code project proposal regarding
> the Apache Thrift idea (see the ideas page[1]), which I intend to
> officially submit as soon as the application period opens. You can find
> my first draft at http://klickverbot.at/code/gsoc/thrift/.
>
> While I would love to hear any opinions, two specific questions:
>
> Walter, could you as the organization admin please have a look at this
> if it meets your formal expectations (the application template section
> of the Digital Mars GSoC profile is still empty)?
>
> Andrei, as you are the one behind the original suggestion, would you
> mind having a quick glance at the proposal? Do you have any experience
> with Thrift in production use from your work at Facebook?
>
> David
>
>
> P.S.: I am notoriously bad at writing »About me« sections, but from
> reading around a bit I figured a GSoC application should include one…
>
>
>
> [1] http://www.prowiki.org/wiki4d/wiki.cgi?GSOC_2011_Ideas
First and foremost, I would strongly recommend against looking at Thrifts
internals; if you do, the project _should not_ be submitted to Phobos.
(Thrift is Apache License 2.0 which isn't compatible with the Boost
License). Alternatively, you could aim to get the library into etc.*, or
simply make it a D source project. I do feel that aiming for Phobos would
strengthen your application though.
As for the project itself, I'd agree with you that due to certain,
well-known CTFE bugs, you probably wouldn't be able to parse anything more
than the simplest Thrift IDL at compile time today. But one of the major
advantages of CTFE is that there is no difference between regular D
functions and CTFE D, so you can develop a full Thrift IDL parser/code
generator in D and then use it as part of a build to today and an input to
a string mixin tomorrow. I think playing up D's strengths, and that you
are coding with an eye to the future, would strengthen your application.
Currently, your proposal sounds like a simple port of a C++ library to D.
This maybe what you intend to do, but if so, you should clarify this in
your proposal.
Regarding your writing, it's fairly solid, though it feels a bit too
familiar for a formal proposal of work. (Though this might just be my
academic background talking.) Also, I noticed a tendency for in-lined
footnotes, ala "besides further working out the details of the project,",
or "I’d expect to further improve both the code generator and the binding
code, along with the accompanying documentation.". I'd recommend focusing
on the big things you want to do (like contacting the D and Thrift
communities, working of documentation and unit tests, etc) and leave out
the expected day-to-day stuff. (i.e. Put the big rocks in the jar first
and leave the gravel, sand and water to later :
andrew.goenardi.com/big-rocks-and-a-jar)
While I don't have the time for a mentorship, I have been working on an
update to std.json, std.variant/algebraic as well as my own binary
serialization library, and am willing to share code and/or talk
serialization/de-serialization design.
More information about the Digitalmars-d
mailing list