SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Andere mochten auch (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
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
 
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, ...
 
"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 ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

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...