On Thu, 24 Mar 2011 19:46:39 -0400, David Nadlinger <s...@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.

Reply via email to