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

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



many modularisation abstractions can be overused - either coz excess abstraction is done (there just aren't that many really different types/cases of use) or coz it turns into an efficiency killer (or both) - this showed up in a big open source router project called Xorp at berkeley where they made the dubious decision to use C++ - talk to people about the nightmare of coding conventions they ended up with - dunno if it was written up anywhere but people that tried re-purposing the code (a primary test of the appropriateness of an abstraction or modular decision) ended up re-writing it....oops (and I mean that most linguistically)

On Fri, Nov 13, 2015 at 3:22 PM, Hannes Mehnert <hannes@xxxxxxxxxxx> 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.

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

thanks,

hannes



_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel


_______________________________________________
MirageOS-devel mailing list
MirageOS-devel@xxxxxxxxxxxxxxxxxxxx
http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel

 


Rackspace

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