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

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



Hannes could you expand on what's meant by "Abstraction should be used where needed"?

I kinda agree with the second part of the quoted snippet.

For one thing, chosen abstractions are partly a matter of taste -- one person's abstraction is another person's abomination...

For another, abstractions are devised based on what's suitable at the time for a project. We have to be pragmatic.
And times change.
Abstractions should change with the times too.
I think this is what the second part of the quoted snippet refers to; "legacy" abstractions can be a burden, even to the original author/s.

Perhaps it might also be useful to clarify what's meant by "abstraction" to begin with :) The beginning of the paragraph suggests that it stands for function/lambda abstraction, but the end of the paragraph can be interpreted more broadly.

Would it be more convenient for you if feedback were provided off-list (in comments to the gist perhaps), or is it fine to continue discussing this on the mailing list?

Nik

On 2015-11-13 11: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.

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

Best,

Daniel

[1] E.g. "A fundamental feature of functional programming is that
communication between functions is done via arguments and result
values solely."




_______________________________________________
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®.