[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MirageOS-devel] How to implement protocols?

On Fri, Nov 13, 2015 at 04:22:49PM +0100, Hannes Mehnert wrote:
> On 11/13/2015 12:00, Daniel Bünzli wrote:
> > "Abstraction should be used where needed, keeping in mind that every 
> > abstraction is a burden on the reader of the program (e.g. yourself in 5 
> > years)."
> > 
> > WTF. Abstraction is what makes it easier to read and understand the 
> > program. That's precisely what I see missing from people doing system 
> > programming in OCaml. Lack of decomposition of your problem into 
> > well-defined denotational structures and functions. Lack of decomposition 
> > of the functions themselves into well defined and *named* subexpressions. 
> > etc.
> I may have phrased it wrongly: my intention is that you shouldn't
> abstract over all potential modules (such as IO), but rather provide a
> simple interface (exposing intended actions).
> I personally find the cohttp and TCP/IP code hard to read due to the use
> of lots of functors / module abstractions, which are not necessarily
> needed IMHO.

I second that! :)

> > Other than that the document feels like unstructured, poorly written [1], 
> > random rumblings. 

Also, I like the text and I find it rather useful as an insight on implementing
protocols! Don't judge this as a scientific paper; it's more like a
conversation-starter or a blog post! :o)


MirageOS-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.