Programming on the Internet requires a different mental model than programming other types of applications. At the same time, most Web programming frameworks do a poor job of supporting this model. This presentation introduces events in KRL and discusses the language's design. Evented languages like KRL close this gap by supporting programming constructs that make creating applications that work across multiples protocols and APIs easy.
70. Kynetx Rule Language (KRL)
Sometimes a layer of indirection helps...
Domain specific language
71. Kynetx Rule Language (KRL)
Sometimes a layer of indirection helps...
Domain specific language
Mental leverage via abstractions
72. Kynetx Rule Language (KRL)
Sometimes a layer of indirection helps...
Domain specific language
Mental leverage via abstractions
Designed for programming the Internet
73. Kynetx Rule Language (KRL)
Sometimes a layer of indirection helps...
Domain specific language
Mental leverage via abstractions
Designed for programming the Internet
Browser and platform independent
77. KRL Rulesets
Events
Pageview via URL class
Submit form
78. KRL Rulesets
Events
Pageview via URL class
Submit form
Click element
79. KRL Rulesets
Events
Pageview via URL class
Submit form
Click element
Change element
80. KRL Rulesets
Events
Pageview via URL class
Submit form
Click element
Change element
Declare and access data sources
81. KRL Rulesets
Events
Pageview via URL class
Submit form
Click element
Change element
Declare and access data sources
Conditionally fire action
82. KRL Rulesets
Events
Pageview via URL class
Submit form
Click element
Change element
Declare and access data sources
Conditionally fire action
Effects
Indeed location has been one of the primary metaphors we’ve used to describe the web. After all, a URL is a Uniform Resource LOCATOR. We use verbs like “browse,” “go,” “locate,” “property,” and even “history” that all have a property theme.
In a “world of ends” everything is a peer, but architecturally, the Web is composed of different kinds of ends.
The most important feature for this discussion is that each Web site is a silo. The location metaphor works fine when what you want to do is confined to that silo. But what happens when you need information from multiple places to accomplish your task?
Sure clients have gotten flashier and faster over the years, but they’ve largely stayed the same: their job is to (a) go to a Web site, (b) retrieve content from a server and (c) properly render the content.
The browser can see all of the silos that a person interacts with.
With the right framework, the browser can bridge those individual contexts and provide a richer, cross-site context to develop.
We’re going to talk about how to do this, but we’ll make a little detour into a discussion about Web programming first.
Typically these are done in an ad hoc fashion. Some programming libraries and frameworks provide more help for this than others. In particular, managing data has gotten much easier due to standard library implementations for session data, but that’s the easy part.
Complex event expressions allow reaction to event patterns over time
Complex event expressions allow reaction to event patterns over time
Complex event expressions allow reaction to event patterns over time
Complex event expressions allow reaction to event patterns over time
Complex event expressions allow reaction to event patterns over time
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
Endpoints raise events
KNS responds to events by running rules
No one’s ever surprised me with a GUI
No one’s ever surprised me with a GUI
No one’s ever surprised me with a GUI
No one’s ever surprised me with a GUI
Pause here to talk about the expansiveness of each in KRL