Re: how to extend a capability on a data source?
David Barbour <[email protected]>
| Newsgroups | gmane.comp.capabilities.general |
|---|---|
| Message-ID | <CAAOQMSvKKGoWMLqt7ktZrq9rkOD8uhmia9aQsC8MdX5PeEGf3w@mail.gmail.com> |
On Mon, Nov 4, 2013 at 7:55 AM, Rob Withers <[email protected]> wrote: > > So, Smalltalk can do the execution environment stuff of a functional > language, without sweating all the type theory. > Of course, instead of sweating type theory, you sweat other things related to dynamic structure, reflection, > > Say, is that where the functional languages got these ideas from? > Smalltalk? > I imagine Cardelli and Cook were influenced by Smalltalk and other OO languages. But I doubt it was their only source of influence. How can you do agile team development if the code won’t compile for some > silly reason? > It isn't difficult. Silly issues are easy to fix. Serious issues cause you to seek easier temporary solutions. If code is modular or pluggable, different people can work on different pieces. What problems do you imagine? > > Why do I want to statically enforce some type in a dynamic, distributed, > heterogeneous environment? Just dynamically enforce it and go to the next > item on your task list. > I can't say why you might want to. But the reasons I favor are: elegance and performance. If I can make a few useful guarantees at compile-time, I can avoid much unnecessary logic (and bugs) in the runtime, and I can avoid complex partial-failure handling code (and bugs) in the user's logic. Further, I can more easily compile for heterogeneous environments where dynamic enforcement is difficult or super expensive: FPGAs, OpenCL, shaders. Dynamic systems can be modeled as transitions from one well-typed program to another, at well-defined boundaries, with a controlled amount of slack for the input and output types. > > Could you post a link to your code so I could take a look at the > implementation of these ideas you are discussing, over the next days? > Sure. My prototype implementation of RDP, in Haskell, is https://github.com/dmbarbour/Sirea . Sirea uses ambient authority, but can model capabilities as dynamic behaviors. I'm still twiddling design and bytecodes and designs of the Awelon project based on some recent ideas that simplified the language and offer powerful new approaches to UI. _______________________________________________ cap-talk mailing list [email protected] http://www.eros-os.org/mailman/listinfo/cap-talk