SlideShare a Scribd company logo
1 of 36
Download to read offline
Dojo 1.0:
Great Experiences...
   For Everyone
             Alex Russell
    Project Lead, The Dojo Toolkit
Maslow’s Hierarchy of Needs

  • Deficiency needs
    - Physiological
    - Saftety
    - Love/Belonging
    - Esteem
  • Growth needs
    - Exploration, asthetics
    - Self-actualization
http://en.wikipedia.org/wiki/Maslow's_hierarchy_of_needs
The Application Hierachy Of Needs

• Deficiency needs
  - Platform
  - Security
  - Social Capacity
  - Competition
• Growth Needs
  - Integration
  - Platform capacity
If The Platform Isn’t
Ubiquitous And Capable,
 Another Will Emerge
Changes In Cost Are
Changes In Capacity
Complexity Is The New
Dominating Factor In Cost
Where Are We Fighting Complexity?

• HTML
• CSS
• JavaScript
• Server integration
The Wall Of Complexity
http://flickr.com/photos/kidisland/502242023/
Implements Of War

• Grouping + Encapsulation
• Shared Context
• Patterns of Practice
• Separation of Concerns
• Forgiveness
So How Are We Doing?
Implements Of Failure
• Grouping + Encapsulation
   - Server-side includes essentially state of the art
• Shared Context
   - HTML/CSS/JS stack wickedly hard to learn
• Patterns of Practice
   - Microformats, CSS as emergent semantics
• Separation of Concerns
• Forgiveness
   - XML pipe dreams persist, Semantic Web faffery
Semantic Differences

• HTML gives us:
  - Platform
  - Some security
  - Social capacity
  - Patterns of practice
  - Shared context (common vocabulary)
• The failure to provide sustainable platform
 competition leaves us arguing over the scraps
Good Semantics Let You Say
     What You Mean
 And Get What You Want
For Applications,
HTML/CSS Are Liabilities
Ajax: The “Get Out Of Jail Free” Card

 • Within a small band of capabilities, JavaScript
   allows us to dig our way out
    - Cost is enormous
 • Toolkits have exhibited competition and platform
   capacity behaviors
 • Integration nowhere to be seen
    - Example: mirrored validation
    - REST? Something else?
Platform Capacity Is The
  Ability To Grow New
        Semantics
How The Web Gets New Semantics
(decreasing order of leverage)
1.Standardization (W3C, ECMA, etc.)
  • Byproduct of competition
2.Invention
  • JavaScript “upgrades” or “hot-patches” to pages
3.Convention
  • Microformats, CSS patterns of practice
When Are You Going To
  Talk About Dojo?
Invention vs. Completeness

• Invented semantics via JS are disadvantaged:
   - On the wire
   - In performance and integration
   - In access to assistive technologies
   - In look-and-feel cohesiveness
• Only medium/large-scale investment yeild
 complete results today
  - Product vs. project
A Toolkit That Invents
      Semantics Is Responsible For
        All Of These Concerns*


* this argument is both self-serving and disingenuous, however that doesn’t make it false
L&F Responsibility
Developer User Experience


 <a href=quot;images/depot.jpgquot;
    dojoType=quot;dojox.image.Lightboxquot;
    group=quot;myTravelsquot;
    title=quot;Photo of a Train Depotquot;>A Train Depot</a>

 <a href=quot;images/greenville.jpgquot;
    dojoType=quot;dojox.image.Lightboxquot;
    group=quot;myTravelsquot;
    title=quot;A Photo of Greeneville, TNquot;>Greenville</a>
Customization


 /* structured CSS allows over-rides */
 .dijitDialogUnderlay {
    background: white;
 }

 // template system allows complete UI rework
 dojo.extend(dojox.image._LightboxDialog, {
    templatePath: dojo.moduleUrl(“myApp.tmpl”, “dialog.html”)
 });
a11y & i18n Concerns
• Incredibly robust keyboard handling code
• All Dijit widgets fully WAI ARIA augmented
   - role=quot;wairole:dialogquot;
   - System support for easily adding role/state info
    to your own widgets
• Detection/support for high-contrast mode
  - separate theme applied for high-contrast
  - structured CSS cascade allows you to easily
    provide a11y rules for custom themes and
    widgets
Performance Responsiblity

• Time on the wire
• Time-to-render
• Data caching, storage
• Encourage usage of faster paths through better
  API design
• “Pay-as-you-go” performance optimization
  strategies
   - Make each step on the path as painless as
     possible
Performance Responsiblity

• Stragegies:
  - Tiny Core
     - Tightly controlled, curated APIs
  - CDN edge-cached, gzip always enabled
  - The Build Process
     - Completely optional, gradual adoption
     - Package system reduces complexity through
     grouping
You Can’t Tack These On Later,
  i.e., Systemization Matters
Dojo Expresses
Platform Capacity
...But We Wish
We Didn’t Have To
Our Collective Perception Of
  Where We Are On The
    Hierarchy Is Wrong
The Lack Of Competition Is A
  Deficiency That Prevents
  Access To Growth Needs
You Should Be Demanding A
Better Future From The People
      Who Can Deliver It
Until Then, Toolkits Should Be
   Preparing For A Better
           Future...
For Everyone
Build With, Not On
Dojo 1.0: Great Experiences For Everyone

More Related Content

Viewers also liked (20)

Hunting & Fishing
Hunting & FishingHunting & Fishing
Hunting & Fishing
 
Cruzada
CruzadaCruzada
Cruzada
 
plano
planoplano
plano
 
Flooding
FloodingFlooding
Flooding
 
2007 P P3 T D
2007  P P3  T D2007  P P3  T D
2007 P P3 T D
 
University System: Mass. State Colleges Council of Presidents
University System: Mass. State Colleges Council of Presidents University System: Mass. State Colleges Council of Presidents
University System: Mass. State Colleges Council of Presidents
 
+ Q Trueke
+ Q Trueke+ Q Trueke
+ Q Trueke
 
Venta Focus
Venta FocusVenta Focus
Venta Focus
 
Travel To Litoral ´07
Travel To Litoral ´07Travel To Litoral ´07
Travel To Litoral ´07
 
Resumen Curricular 133740
Resumen Curricular  133740Resumen Curricular  133740
Resumen Curricular 133740
 
Resumen Curricular 133740
Resumen Curricular  133740Resumen Curricular  133740
Resumen Curricular 133740
 
Modelado Del Proy Final Vb 2007
Modelado Del Proy Final Vb 2007Modelado Del Proy Final Vb 2007
Modelado Del Proy Final Vb 2007
 
Resumen Curricular 131899
Resumen Curricular 131899Resumen Curricular 131899
Resumen Curricular 131899
 
Herramientas De ComputacióN
Herramientas De ComputacióNHerramientas De ComputacióN
Herramientas De ComputacióN
 
grains 6è a
grains 6è agrains 6è a
grains 6è a
 
Resumencurricular 135623
Resumencurricular 135623Resumencurricular 135623
Resumencurricular 135623
 
Cartel Casa Inteligente
Cartel Casa InteligenteCartel Casa Inteligente
Cartel Casa Inteligente
 
Presentacion 135301
Presentacion 135301Presentacion 135301
Presentacion 135301
 
Hiking & Kayaking
Hiking & KayakingHiking & Kayaking
Hiking & Kayaking
 
Upa Bangalore Town Hall Oct 19
Upa Bangalore Town Hall Oct 19Upa Bangalore Town Hall Oct 19
Upa Bangalore Town Hall Oct 19
 

Similar to Dojo 1.0: Great Experiences For Everyone

Sustainable Agile Development
Sustainable Agile DevelopmentSustainable Agile Development
Sustainable Agile Development
Gabriele Lana
 
Cloud Computing Introduction
Cloud Computing IntroductionCloud Computing Introduction
Cloud Computing Introduction
Adomas Svirskas
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
Mark Fayngersh
 
Manoj(Java Developer)_Resume
Manoj(Java Developer)_ResumeManoj(Java Developer)_Resume
Manoj(Java Developer)_Resume
Vamsi Manoj
 
MetaASO J2EE Web Framework
MetaASO J2EE Web FrameworkMetaASO J2EE Web Framework
MetaASO J2EE Web Framework
guestc23c1f
 

Similar to Dojo 1.0: Great Experiences For Everyone (20)

Sustainable Agile Development
Sustainable Agile DevelopmentSustainable Agile Development
Sustainable Agile Development
 
USG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel VisionUSG Web Tech Day 2017 - CMS Tunnel Vision
USG Web Tech Day 2017 - CMS Tunnel Vision
 
Performance testing with your eyes wide open geekweek 2018
Performance testing with your eyes wide open  geekweek 2018Performance testing with your eyes wide open  geekweek 2018
Performance testing with your eyes wide open geekweek 2018
 
Cloud Computing Introduction
Cloud Computing IntroductionCloud Computing Introduction
Cloud Computing Introduction
 
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and ScaleGDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
GDD Japan 2009 - Designing OpenSocial Apps For Speed and Scale
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...Measure and Increase Developer Productivity with Help of Serverless at Server...
Measure and Increase Developer Productivity with Help of Serverless at Server...
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
Manoj(Java Developer)_Resume
Manoj(Java Developer)_ResumeManoj(Java Developer)_Resume
Manoj(Java Developer)_Resume
 
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
Микола Ковш “Performance Testing Implementation From Scratch. Why? When and H...
 
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)
"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)"Progressive Web Apps" by Riza Fahmi	(Hacktiv8)
"Progressive Web Apps" by Riza Fahmi (Hacktiv8)
 
Progressive Web Apps. What, why and how
Progressive Web Apps. What, why and howProgressive Web Apps. What, why and how
Progressive Web Apps. What, why and how
 
MongoDB and In-Memory Computing
MongoDB and In-Memory ComputingMongoDB and In-Memory Computing
MongoDB and In-Memory Computing
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAs
 
MetaASO J2EE Web Framework
MetaASO J2EE Web FrameworkMetaASO J2EE Web Framework
MetaASO J2EE Web Framework
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
 
Web 2.0 = Accessibility 2.0?
Web 2.0 = Accessibility 2.0?Web 2.0 = Accessibility 2.0?
Web 2.0 = Accessibility 2.0?
 
Storage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems PresentationStorage Systems for High Scalable Systems Presentation
Storage Systems for High Scalable Systems Presentation
 
CSA on Rails: a practical case-study
CSA on Rails: a practical case-studyCSA on Rails: a practical case-study
CSA on Rails: a practical case-study
 
Bruce Lawson Opera Indonesia
Bruce Lawson Opera IndonesiaBruce Lawson Opera Indonesia
Bruce Lawson Opera Indonesia
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Dojo 1.0: Great Experiences For Everyone

  • 1. Dojo 1.0: Great Experiences... For Everyone Alex Russell Project Lead, The Dojo Toolkit
  • 2. Maslow’s Hierarchy of Needs • Deficiency needs - Physiological - Saftety - Love/Belonging - Esteem • Growth needs - Exploration, asthetics - Self-actualization http://en.wikipedia.org/wiki/Maslow's_hierarchy_of_needs
  • 3. The Application Hierachy Of Needs • Deficiency needs - Platform - Security - Social Capacity - Competition • Growth Needs - Integration - Platform capacity
  • 4. If The Platform Isn’t Ubiquitous And Capable, Another Will Emerge
  • 5. Changes In Cost Are Changes In Capacity
  • 6. Complexity Is The New Dominating Factor In Cost
  • 7. Where Are We Fighting Complexity? • HTML • CSS • JavaScript • Server integration
  • 8. The Wall Of Complexity http://flickr.com/photos/kidisland/502242023/
  • 9. Implements Of War • Grouping + Encapsulation • Shared Context • Patterns of Practice • Separation of Concerns • Forgiveness
  • 10. So How Are We Doing?
  • 11. Implements Of Failure • Grouping + Encapsulation - Server-side includes essentially state of the art • Shared Context - HTML/CSS/JS stack wickedly hard to learn • Patterns of Practice - Microformats, CSS as emergent semantics • Separation of Concerns • Forgiveness - XML pipe dreams persist, Semantic Web faffery
  • 12. Semantic Differences • HTML gives us: - Platform - Some security - Social capacity - Patterns of practice - Shared context (common vocabulary) • The failure to provide sustainable platform competition leaves us arguing over the scraps
  • 13. Good Semantics Let You Say What You Mean And Get What You Want
  • 15. Ajax: The “Get Out Of Jail Free” Card • Within a small band of capabilities, JavaScript allows us to dig our way out - Cost is enormous • Toolkits have exhibited competition and platform capacity behaviors • Integration nowhere to be seen - Example: mirrored validation - REST? Something else?
  • 16. Platform Capacity Is The Ability To Grow New Semantics
  • 17. How The Web Gets New Semantics (decreasing order of leverage) 1.Standardization (W3C, ECMA, etc.) • Byproduct of competition 2.Invention • JavaScript “upgrades” or “hot-patches” to pages 3.Convention • Microformats, CSS patterns of practice
  • 18. When Are You Going To Talk About Dojo?
  • 19. Invention vs. Completeness • Invented semantics via JS are disadvantaged: - On the wire - In performance and integration - In access to assistive technologies - In look-and-feel cohesiveness • Only medium/large-scale investment yeild complete results today - Product vs. project
  • 20. A Toolkit That Invents Semantics Is Responsible For All Of These Concerns* * this argument is both self-serving and disingenuous, however that doesn’t make it false
  • 22. Developer User Experience <a href=quot;images/depot.jpgquot; dojoType=quot;dojox.image.Lightboxquot; group=quot;myTravelsquot; title=quot;Photo of a Train Depotquot;>A Train Depot</a> <a href=quot;images/greenville.jpgquot; dojoType=quot;dojox.image.Lightboxquot; group=quot;myTravelsquot; title=quot;A Photo of Greeneville, TNquot;>Greenville</a>
  • 23. Customization /* structured CSS allows over-rides */ .dijitDialogUnderlay { background: white; } // template system allows complete UI rework dojo.extend(dojox.image._LightboxDialog, { templatePath: dojo.moduleUrl(“myApp.tmpl”, “dialog.html”) });
  • 24. a11y & i18n Concerns • Incredibly robust keyboard handling code • All Dijit widgets fully WAI ARIA augmented - role=quot;wairole:dialogquot; - System support for easily adding role/state info to your own widgets • Detection/support for high-contrast mode - separate theme applied for high-contrast - structured CSS cascade allows you to easily provide a11y rules for custom themes and widgets
  • 25. Performance Responsiblity • Time on the wire • Time-to-render • Data caching, storage • Encourage usage of faster paths through better API design • “Pay-as-you-go” performance optimization strategies - Make each step on the path as painless as possible
  • 26. Performance Responsiblity • Stragegies: - Tiny Core - Tightly controlled, curated APIs - CDN edge-cached, gzip always enabled - The Build Process - Completely optional, gradual adoption - Package system reduces complexity through grouping
  • 27. You Can’t Tack These On Later, i.e., Systemization Matters
  • 29. ...But We Wish We Didn’t Have To
  • 30. Our Collective Perception Of Where We Are On The Hierarchy Is Wrong
  • 31. The Lack Of Competition Is A Deficiency That Prevents Access To Growth Needs
  • 32. You Should Be Demanding A Better Future From The People Who Can Deliver It
  • 33. Until Then, Toolkits Should Be Preparing For A Better Future...