[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