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 <[email protected]> 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 > [email protected] > http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel > >
_______________________________________________ MirageOS-devel mailing list [email protected] http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
