SlideShare a Scribd company logo
Reef
AJAX the way it should be
Who am I?
Who am I?


• The guy who builds a VM, and everybody hates
  because their plugins are not ready
Who am I?


• The guy who builds a VM, and everybody hates
  because their plugins are not ready
• He also does some Seaside time to time
Last year...


• Reef presentation was a big success (thanks!)
• Some of you tried it and provide valuable
  feedback...
But not everybody present here today
        was present last year...


          So... what’s Reef?
“The problem”
Nesting problem
Functionality is distributed all around the component
                 (and could be worse)



  • renderContentOn:
         sends renderRegionsOn:
           sends renderCitiesOn:
Nesting problem

Real problem is we are still programing in HTML
  (yes, with smalltalk “flavour”, but still HTML)
Reef summary

AJAX/Javascript
  component
framework for
    Seaside.
Reef summary




Models HTML/Javascript components
       into Smalltalk objects
Reef summary


Hides communication complexity
Reef architecture
Reef architecture


   Dispatcher
A trade-off
         (yep, there is always one)



                 An extra request
(not always, but enough to be taken into account)
Communication

• We handle interactions through callbacks, just
  as Seaside
• But all callbacks should be threat the same
 • AJAX calls
 • regular requests
 • client behavior
Example
Coming to your image... this year!
What changed
                    (for good)



      Better
 integration with
     jQuery:
skins, widget box
What changed
                 (for good)



    An important
    optimization:
#asReefTriggerCallback
What changed
                  (for good)



More widgets
(but still just
those I need)
What’s new
              (and testing)




Composites
What’s new
                   (and testing)

• Magritte-Reef
 • Brings web 2.0 to
   Magritte-Seaside
 • Ease cool effects:
  • tooltips, masks, etc.
 • Complex behaviors
What remains
             (and it shouldn’t)




• Documentation is still poor
• Reef protocol names are still ugly
• Testing is still non-existent
The heresy revisited
(we need to be heretics again)
you know:
why not:
Future work
• Still experimenting with optimizations around
  the dispatcher
• Rename all protocols into something really
  meaningful
• Write more documentation (like finalize the
  chapter for PBE2)
• More feedback?
Questions?
http://squeaksource.com/Reef

More Related Content

PDF
Taming monolithic monsters
PDF
Saigon Ruby Meetup 06/10/2015 - Changeful Gem
PDF
Refactoring Rails applications with RubyMine
PDF
Reason React
PPTX
PDF
Mongrel Handlers
PDF
Background processes and tasks in an async world
PDF
Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014
Taming monolithic monsters
Saigon Ruby Meetup 06/10/2015 - Changeful Gem
Refactoring Rails applications with RubyMine
Reason React
Mongrel Handlers
Background processes and tasks in an async world
Deploying Ruby/Sinatra at Rent the Runway - Next Dev StackUp,May 6, 2014

What's hot (20)

PDF
Kubernetes: The Very Hard Way
KEY
Week7
PPTX
Green Custard Friday Talk 5: React-Native Performance
PDF
Ruby performance - The low hanging fruit
PDF
Code Nomads meetup June 2018 - Angular for Java developers
PDF
OpenValue meetup July 2018 - Angular for Java developers
PDF
J-Spring 2018 - Angular for Java developers
PDF
KEY
Nodeconf npm 2011
PDF
Introduction to jOOQ
KEY
Why I Love TorqueBox (And Why You Will Too)
ZIP
Liftweb and netty for web development.key
PDF
Infinum Android Talks #05 - Square tape
PPT
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
PDF
Webkit Transitions. The Good, The Bad, & The Awesome
PDF
Tweakers Developers Summit 2019 - Angular for backend developers
PDF
Python to go
PDF
Hello world - intro to node js
PPTX
Performance presentation
PDF
Static is just a cache
Kubernetes: The Very Hard Way
Week7
Green Custard Friday Talk 5: React-Native Performance
Ruby performance - The low hanging fruit
Code Nomads meetup June 2018 - Angular for Java developers
OpenValue meetup July 2018 - Angular for Java developers
J-Spring 2018 - Angular for Java developers
Nodeconf npm 2011
Introduction to jOOQ
Why I Love TorqueBox (And Why You Will Too)
Liftweb and netty for web development.key
Infinum Android Talks #05 - Square tape
Create scalable and failure safe cluster MagentoCommerce using cloud hosting ...
Webkit Transitions. The Good, The Bad, & The Awesome
Tweakers Developers Summit 2019 - Angular for backend developers
Python to go
Hello world - intro to node js
Performance presentation
Static is just a cache
Ad

Viewers also liked (6)

PDF
Pragmas: Literal Messages as Powerful Method Annotations
PDF
Power and Energy Code Profiling in Pharo
PDF
The Object Repository - Pulling Objects out of the Ecosystem
PDF
Getting Started with Cuis Smalltalk
PDF
Smalltalk Metaprogramming supports Probabilistic Program Analysis
PPT
Metaprogramacion
Pragmas: Literal Messages as Powerful Method Annotations
Power and Energy Code Profiling in Pharo
The Object Repository - Pulling Objects out of the Ecosystem
Getting Started with Cuis Smalltalk
Smalltalk Metaprogramming supports Probabilistic Program Analysis
Metaprogramacion
Ad

Similar to Reef: AJAX the way it should be  (20)

PPT
PDF
Reef - ESUG 2010
PDF
Seaside Web 2.0
PDF
Reef - ESUG2011
PPT
Intro to-html-backbone
PDF
Rapid Evolution of Web Dev? aka Talking About The Web
PPT
Lessons
PPT
Lessons from the Trenches: Engineering Great AJAX Experiences
PDF
React Conf 17 Recap
PPTX
Going Mobile with HTML5
PDF
RichFacesWhatIsNewIn330
PDF
RichFacesWhatIsNewIn330
PPTX
Liftweb
PPTX
AngularJS UTOSC
PDF
HTML5 and friends
KEY
20120306 dublin js
KEY
SXSW 2010 Future15 : Rise of Mobile, APIs and Web Runtimes
PDF
Ajax tutorial
PPTX
Frameworks Galore: A Pragmatic Review
PDF
Tapestry In Action For Real
Reef - ESUG 2010
Seaside Web 2.0
Reef - ESUG2011
Intro to-html-backbone
Rapid Evolution of Web Dev? aka Talking About The Web
Lessons
Lessons from the Trenches: Engineering Great AJAX Experiences
React Conf 17 Recap
Going Mobile with HTML5
RichFacesWhatIsNewIn330
RichFacesWhatIsNewIn330
Liftweb
AngularJS UTOSC
HTML5 and friends
20120306 dublin js
SXSW 2010 Future15 : Rise of Mobile, APIs and Web Runtimes
Ajax tutorial
Frameworks Galore: A Pragmatic Review
Tapestry In Action For Real

More from ESUG (20)

PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
PDF
Directing Generative AI for Pharo Documentation
PDF
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
PDF
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
PDF
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
PDF
Analysing Python Machine Learning Notebooks with Moose
PDF
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
PDF
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
PDF
Package-Aware Approach for Repository-Level Code Completion in Pharo
PDF
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
PDF
An Analysis of Inline Method Refactoring
PDF
Identification of unnecessary object allocations using static escape analysis
PDF
Control flow-sensitive optimizations In the Druid Meta-Compiler
PDF
Clean Blocks (IWST 2025, Gdansk, Poland)
PDF
Encoding for Objects Matters (IWST 2025)
PDF
Challenges of Transpiling Smalltalk to JavaScript
PDF
Immersive experiences: what Pharo users do!
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
PDF
Cavrois - an Organic Window Management (ESUG 2025)
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
Micromaid: A simple Mermaid-like chart generator for Pharo
Directing Generative AI for Pharo Documentation
Even Lighter Than Lightweiht: Augmenting Type Inference with Primitive Heuris...
Composing and Performing Electronic Music on-the-Fly with Pharo and Coypu
Gamifying Agent-Based Models in Cormas: Towards the Playable Architecture for...
Analysing Python Machine Learning Notebooks with Moose
FASTTypeScript metamodel generation using FAST traits and TreeSitter project
Migrating Katalon Studio Tests to Playwright with Model Driven Engineering
Package-Aware Approach for Repository-Level Code Completion in Pharo
Evaluating Benchmark Quality: a Mutation-Testing- Based Methodology
An Analysis of Inline Method Refactoring
Identification of unnecessary object allocations using static escape analysis
Control flow-sensitive optimizations In the Druid Meta-Compiler
Clean Blocks (IWST 2025, Gdansk, Poland)
Encoding for Objects Matters (IWST 2025)
Challenges of Transpiling Smalltalk to JavaScript
Immersive experiences: what Pharo users do!
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
Cavrois - an Organic Window Management (ESUG 2025)

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Cloud computing and distributed systems.
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Spectroscopy.pptx food analysis technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation_ Review paper, used for researhc scholars
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
KodekX | Application Modernization Development
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
cuic standard and advanced reporting.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Programs and apps: productivity, graphics, security and other tools
The Rise and Fall of 3GPP – Time for a Sabbatical?
Per capita expenditure prediction using model stacking based on satellite ima...
Cloud computing and distributed systems.
Machine learning based COVID-19 study performance prediction
Spectroscopy.pptx food analysis technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
The AUB Centre for AI in Media Proposal.docx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation_ Review paper, used for researhc scholars
“AI and Expert System Decision Support & Business Intelligence Systems”
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
KodekX | Application Modernization Development
Spectral efficient network and resource selection model in 5G networks
Review of recent advances in non-invasive hemoglobin estimation
cuic standard and advanced reporting.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Programs and apps: productivity, graphics, security and other tools

Reef: AJAX the way it should be