Reflex

 view release on metacpan or  search on metacpan

docs/patterns.otl  view on Meta::CPAN

		Top-down design is impossible.
			An object framework must support all future uses, but it cannot anticipate them.
			People write programs, and people are unpredictable.
		Bottom-up design tends to fail.
			Simple conceptual models work well at small scales.
				Growing complex systems from basic principles is difficult.
				There is an early, seductive sense of success.
			Simple conceptual models often fail over time.
				Larger systems strain the requirements of simple conceptual models.
				Prevailing best practices change over time, and new practices introduce new requirements.
				The rules and corollaries eventually conflict.
				It's impossible to anticipate everything.
		A hybrid approach may succeed where the other two fail.
			It's easier to catalog meta design and interaction patterns than use cases.
			By cataloging basic object design and interaction patterns, certain basic requirements will emerge.
			By satisfying these requirements, the emergent object framework will conceptually scale farther.
	Roadmap
		Catalog and consider as many design and interaction patterns as possible.
		Describe the emergent meta patterns.
		Develop and document a syntax and specification to support the meta patterns.
		Implement the specification.

docs/patterns.otl  view on Meta::CPAN

				Obseration occurs even when the new value is identical to the old one.
				Level-triggered notification.
			Notification on Change
				Observers are notified whenever a new value is written to an observed member.
				Obseration does not occur when the new value is identical to the old one.
				Edge-triggered notification.
Continuation Patterns
	About
		Continuations are encapsulated bits of program state that can be passed around and swapped in and out as needed.
		Each continuation includes an instruction pointer and all the program state required to resume a program from that point in its execution.
		Perl supports coroutines by grafting its interpreter onto an event dispatcher.
		This grafting is done deep in its implementation using sharp implements.
		Continuations may also be implemented as explicit objects to manage execution state between callbacks.
		Event frameworks like POE implement such continuations, albeit at a rather low level.
		Multiple continuations may be active at once.
		Continuations may be nested, in which case the inner continuation should run to completion before the outer one may resume.
		Lexical::Persistence
			Lexical::Persistence was written to map continuation object data members into lexical pads.
			This simplifes their use---lexical variables magically refer to the right continuation.
			It's somewhat off-putting magic, however.
			Perl seems to behave abnormally.



( run in 0.317 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )