Future Tense




                           mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2




                                                              mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2


           • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that
             kid in the Terminator movies.” - Finn, Glee




                                                                                      mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2


           • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that
             kid in the Terminator movies.” - Finn, Glee


           • This talk is about the future, both what it will bring and what we want from it.




                                                                                           mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2


           • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that
             kid in the Terminator movies.” - Finn, Glee


           • This talk is about the future, both what it will bring and what we want from it.


           • At Mozilla Summit 2010, we launched Rust, a new programming language
             motivated by safety and concurrency for parallel hardware, the “manycore”
             future which is upon us.




                                                                                           mozilla

           1


Friday, April 29, 2011
Future Tense

           • “No fate but what we make.” - Sarah Connor, T2


           • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that
             kid in the Terminator movies.” - Finn, Glee


           • This talk is about the future, both what it will bring and what we want from it.


           • At Mozilla Summit 2010, we launched Rust, a new programming language
             motivated by safety and concurrency for parallel hardware, the “manycore”
             future which is upon us.


           • This talk is a recap of motivation and a status report...

                                                                                           mozilla

           1


Friday, April 29, 2011
Mobile vs. desktop slowdown

           • From “Fast and Parallel Webpage Layout”, Meyerovich & Bodik, WWW2010, this
             chart shows how “the power wall” hurts mobile single-core performance, driving
             mobile to manycore and requiring a parallel browser engine “real soon now”:




                                                                                     mozilla

           2


Friday, April 29, 2011
Data flow in a browser engine

           • Traditionally mostly single-threaded, using C++ as implementation language,
             with threads for image decoding, speculative script prefetching, rendering.




                                                                                      mozilla

           3


Friday, April 29, 2011
Must parallelize every stage to win

           • Even use data-parallel (SIMD) instructions as well... Amdahl’s Law bites.




                                                                                         mozilla

           4


Friday, April 29, 2011
The “pwn2own” problem




                                   mozilla

           5


Friday, April 29, 2011
The “pwn2own” problem

           • Every browser has endless security vulnerabilities due to lack of safety in the
             main implementation language (C++, formerly C -- used for speed not safety).




                                                                                        mozilla

           5


Friday, April 29, 2011
The “pwn2own” problem

           • Every browser has endless security vulnerabilities due to lack of safety in the
             main implementation language (C++, formerly C -- used for speed not safety).


           • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from
             Mozilla on this count. And Chrome has been hacked elsewhere, too.




                                                                                        mozilla

           5


Friday, April 29, 2011
The “pwn2own” problem

           • Every browser has endless security vulnerabilities due to lack of safety in the
             main implementation language (C++, formerly C -- used for speed not safety).


           • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from
             Mozilla on this count. And Chrome has been hacked elsewhere, too.


           • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory
             management bugs, and mostly single-threaded -- so slow on manycore mobile
             devices.




                                                                                        mozilla

           5


Friday, April 29, 2011
The “pwn2own” problem

           • Every browser has endless security vulnerabilities due to lack of safety in the
             main implementation language (C++, formerly C -- used for speed not safety).


           • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from
             Mozilla on this count. And Chrome has been hacked elsewhere, too.


           • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory
             management bugs, and mostly single-threaded -- so slow on manycore mobile
             devices.


           • Adding more threads to utilize multiple cores while fighting security bugs is like
             team-juggling chainsaws to music where the record player has been sped up!


                                                                                         mozilla

           5


Friday, April 29, 2011
Project Servo




                           mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++




                                                                                   mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++


               • Research building parallel browser engine stages in Rust




                                                                                   mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++


               • Research building parallel browser engine stages in Rust


               • Experiment with Andreas Gal’s DOM implemented in JavaScript




                                                                                   mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++


               • Research building parallel browser engine stages in Rust


               • Experiment with Andreas Gal’s DOM implemented in JavaScript


               • For a scalably-faster-on-manycore, much safer Browser from the Future




                                                                                         mozilla

           6


Friday, April 29, 2011
Project Servo
               • A new, safer systems programming language, Rust, instead of C++


               • Research building parallel browser engine stages in Rust


               • Experiment with Andreas Gal’s DOM implemented in JavaScript


               • For a scalably-faster-on-manycore, much safer Browser from the Future


               • Rust is good for Servers and other Software from the Future, too




                                                                                         mozilla

           6


Friday, April 29, 2011
nbody.rs




                         mozilla

           7


Friday, April 29, 2011
Rust performance results (nbody)




                                              mozilla

           8


Friday, April 29, 2011
fannkuchredux.rs




                              mozilla

           9


Friday, April 29, 2011
Rust performance results (fannkuch)




                                                 mozilla

           10


Friday, April 29, 2011
What it all means




                               mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.




                                                                                        mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).




                                                                                        mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).


           • The -rust (safe) versions are currently about twice as slow as the C versions.




                                                                                         mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).


           • The -rust (safe) versions are currently about twice as slow as the C versions.


           • We will reduce the cost of safety with ongoing, serious optimization effort.




                                                                                            mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).


           • The -rust (safe) versions are currently about twice as slow as the C versions.


           • We will reduce the cost of safety with ongoing, serious optimization effort.


           • Rust allows unsafe modules and functions, so we can dial in the remaining cost
             that is not forgiven due to speedups on parallel hardware.


                                                                                            mozilla

           11


Friday, April 29, 2011
What it all means

           • First, these are just two of many benchmarks to conquer; Rust is still young.


           • The -rust-unsafe versions are competitive with their -gcc and -clang
             counterparts (fannkuch-rust-unsafe actually wins!).


           • The -rust (safe) versions are currently about twice as slow as the C versions.


           • We will reduce the cost of safety with ongoing, serious optimization effort.


           • Rust allows unsafe modules and functions, so we can dial in the remaining cost
             that is not forgiven due to speedups on parallel hardware.


           • The Servo parallel browser engine project is starting, here and now.
                                                                                            mozilla

           11


Friday, April 29, 2011
mozilla

           12


Friday, April 29, 2011

More Related Content

PPT
Test Automation Framework Designs
PDF
Presentation citrix internals ica connectivity
PPTX
Platform engineering 101
PPTX
Wardley mapping
PDF
Mixed-critical adaptive AUTOSAR stack based on VxWorks, Linux, and virtualiza...
PDF
Robot Framework Introduction
PPTX
Automating End-to-End Business Scenario Testing
PDF
Introduction to Robot Framework
Test Automation Framework Designs
Presentation citrix internals ica connectivity
Platform engineering 101
Wardley mapping
Mixed-critical adaptive AUTOSAR stack based on VxWorks, Linux, and virtualiza...
Robot Framework Introduction
Automating End-to-End Business Scenario Testing
Introduction to Robot Framework

What's hot (20)

PPTX
AI Testing What Why and How To Do It?
PDF
Devops Devops Devops, at Froscon
PPTX
Robot framework
PDF
Creating AWS infrastructure using Terraform
PPTX
DevOps 101
PDF
Introduction to Test Automation - Technology and Tools
PPTX
Certification Journey in AWS Cloud
PDF
Test Automation - Past, Present and Future
PPTX
Chaos engineering and chaos testing
PDF
Effective AIOps with Open Source Software in a Week
PDF
Kubernetes Application Deployment with Helm - A beginner Guide!
PDF
Building a Test Automation Strategy for Success
PDF
Introduction to Software Test Automation
PPT
End to end testing - strategies
PDF
Functional Tests Automation with Robot Framework
PPTX
Terraform
PDF
Performance Engineering Masterclass: Introduction to Modern Performance
PPT
Ppt of soap ui
PDF
DevOps adoption in the enterprise
PPTX
AI Testing What Why and How To Do It?
Devops Devops Devops, at Froscon
Robot framework
Creating AWS infrastructure using Terraform
DevOps 101
Introduction to Test Automation - Technology and Tools
Certification Journey in AWS Cloud
Test Automation - Past, Present and Future
Chaos engineering and chaos testing
Effective AIOps with Open Source Software in a Week
Kubernetes Application Deployment with Helm - A beginner Guide!
Building a Test Automation Strategy for Success
Introduction to Software Test Automation
End to end testing - strategies
Functional Tests Automation with Robot Framework
Terraform
Performance Engineering Masterclass: Introduction to Modern Performance
Ppt of soap ui
DevOps adoption in the enterprise
Ad

Viewers also liked (20)

PDF
Facebook F8 2016
PPT
Kalpana Chawla
PPTX
Fate And Freewill In Oedipus The King
PDF
Semplicissimo cucito
PPTX
Romeo & juliet themes lesson
PDF
The State of Marketing - Insights from 2500 Marketers
PDF
EIA2016 Turin - Mattias Liivak. Payment Localisation
PDF
Bt freestyle 2500 User Guide from Telephones Online www.telephonesonline.co.uk
PPT
Basics of Stock Markets
PDF
Messenger wars 2: How Facebook climbed back to number 1
PDF
WordPress State of the Word 2012
PPTX
VKontakte (ВКонтакте) demographics
PPTX
Escape the fate
RTF
B aby
PDF
Curriculum Vitae (F) - GARCIA, Rocio Soledad
PDF
Sabarasa Videojuegos America Latina
PPTX
Turbine manufacturing process
PPTX
Chemical translocation & molecular fate
Facebook F8 2016
Kalpana Chawla
Fate And Freewill In Oedipus The King
Semplicissimo cucito
Romeo & juliet themes lesson
The State of Marketing - Insights from 2500 Marketers
EIA2016 Turin - Mattias Liivak. Payment Localisation
Bt freestyle 2500 User Guide from Telephones Online www.telephonesonline.co.uk
Basics of Stock Markets
Messenger wars 2: How Facebook climbed back to number 1
WordPress State of the Word 2012
VKontakte (ВКонтакте) demographics
Escape the fate
B aby
Curriculum Vitae (F) - GARCIA, Rocio Soledad
Sabarasa Videojuegos America Latina
Turbine manufacturing process
Chemical translocation & molecular fate
Ad

Similar to Future Tense (20)

PDF
MSR Talk
PDF
Mozilla Research Party Talk
PDF
Mozilla + Rust at PCU Manila 02 DEC 2016
PDF
ES.next
PDF
Capitol js
PDF
Javascript FTW
PDF
Splash
PDF
Node js techtalksto
PDF
PDF
Mozilla Project and Open Web
PDF
A Look at the Future of HTML5
PDF
100 paper cuts
PPT
Introduction about Foss and mozilla
PDF
What's this NetKernel Thing Anyway?
PDF
Nodejs
PDF
HTML XHTML HTML5
PDF
Tim stone.html5.rjug.20110316
PDF
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
PDF
Open Source & Education Working Together
PDF
Web application development - The past, the present, the future
MSR Talk
Mozilla Research Party Talk
Mozilla + Rust at PCU Manila 02 DEC 2016
ES.next
Capitol js
Javascript FTW
Splash
Node js techtalksto
Mozilla Project and Open Web
A Look at the Future of HTML5
100 paper cuts
Introduction about Foss and mozilla
What's this NetKernel Thing Anyway?
Nodejs
HTML XHTML HTML5
Tim stone.html5.rjug.20110316
Stealing Chromium: Embedding HTML5 with the Servo Browser Engine (LinuxCon NA...
Open Source & Education Working Together
Web application development - The past, the present, the future

More from Brendan Eich (17)

PDF
PDF
Always bet on JS - Finjs.io NYC 2016
PDF
dotJS 2015
PDF
Extensible Operators and Literals for JavaScript
PDF
Fluent15
PDF
The Same-Origin Saga
PDF
Taysom seminar
PDF
Fluent14
PDF
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
PDF
My dotJS Talk
PDF
Web futures
PDF
JS Responsibilities
PDF
Value objects in JS - an ES7 work in progress
PDF
Paren free
PDF
Txjs talk
PDF
Mozilla's NodeConf talk
PDF
Proxies are Awesome!
Always bet on JS - Finjs.io NYC 2016
dotJS 2015
Extensible Operators and Literals for JavaScript
Fluent15
The Same-Origin Saga
Taysom seminar
Fluent14
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
My dotJS Talk
Web futures
JS Responsibilities
Value objects in JS - an ES7 work in progress
Paren free
Txjs talk
Mozilla's NodeConf talk
Proxies are Awesome!

Future Tense

  • 1. Future Tense mozilla 1 Friday, April 29, 2011
  • 2. Future Tense • “No fate but what we make.” - Sarah Connor, T2 mozilla 1 Friday, April 29, 2011
  • 3. Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee mozilla 1 Friday, April 29, 2011
  • 4. Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee • This talk is about the future, both what it will bring and what we want from it. mozilla 1 Friday, April 29, 2011
  • 5. Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee • This talk is about the future, both what it will bring and what we want from it. • At Mozilla Summit 2010, we launched Rust, a new programming language motivated by safety and concurrency for parallel hardware, the “manycore” future which is upon us. mozilla 1 Friday, April 29, 2011
  • 6. Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee • This talk is about the future, both what it will bring and what we want from it. • At Mozilla Summit 2010, we launched Rust, a new programming language motivated by safety and concurrency for parallel hardware, the “manycore” future which is upon us. • This talk is a recap of motivation and a status report... mozilla 1 Friday, April 29, 2011
  • 7. Mobile vs. desktop slowdown • From “Fast and Parallel Webpage Layout”, Meyerovich & Bodik, WWW2010, this chart shows how “the power wall” hurts mobile single-core performance, driving mobile to manycore and requiring a parallel browser engine “real soon now”: mozilla 2 Friday, April 29, 2011
  • 8. Data flow in a browser engine • Traditionally mostly single-threaded, using C++ as implementation language, with threads for image decoding, speculative script prefetching, rendering. mozilla 3 Friday, April 29, 2011
  • 9. Must parallelize every stage to win • Even use data-parallel (SIMD) instructions as well... Amdahl’s Law bites. mozilla 4 Friday, April 29, 2011
  • 10. The “pwn2own” problem mozilla 5 Friday, April 29, 2011
  • 11. The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). mozilla 5 Friday, April 29, 2011
  • 12. The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from Mozilla on this count. And Chrome has been hacked elsewhere, too. mozilla 5 Friday, April 29, 2011
  • 13. The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from Mozilla on this count. And Chrome has been hacked elsewhere, too. • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory management bugs, and mostly single-threaded -- so slow on manycore mobile devices. mozilla 5 Friday, April 29, 2011
  • 14. The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from Mozilla on this count. And Chrome has been hacked elsewhere, too. • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory management bugs, and mostly single-threaded -- so slow on manycore mobile devices. • Adding more threads to utilize multiple cores while fighting security bugs is like team-juggling chainsaws to music where the record player has been sped up! mozilla 5 Friday, April 29, 2011
  • 15. Project Servo mozilla 6 Friday, April 29, 2011
  • 16. Project Servo • A new, safer systems programming language, Rust, instead of C++ mozilla 6 Friday, April 29, 2011
  • 17. Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust mozilla 6 Friday, April 29, 2011
  • 18. Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust • Experiment with Andreas Gal’s DOM implemented in JavaScript mozilla 6 Friday, April 29, 2011
  • 19. Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust • Experiment with Andreas Gal’s DOM implemented in JavaScript • For a scalably-faster-on-manycore, much safer Browser from the Future mozilla 6 Friday, April 29, 2011
  • 20. Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust • Experiment with Andreas Gal’s DOM implemented in JavaScript • For a scalably-faster-on-manycore, much safer Browser from the Future • Rust is good for Servers and other Software from the Future, too mozilla 6 Friday, April 29, 2011
  • 21. nbody.rs mozilla 7 Friday, April 29, 2011
  • 22. Rust performance results (nbody) mozilla 8 Friday, April 29, 2011
  • 23. fannkuchredux.rs mozilla 9 Friday, April 29, 2011
  • 24. Rust performance results (fannkuch) mozilla 10 Friday, April 29, 2011
  • 25. What it all means mozilla 11 Friday, April 29, 2011
  • 26. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. mozilla 11 Friday, April 29, 2011
  • 27. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). mozilla 11 Friday, April 29, 2011
  • 28. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. mozilla 11 Friday, April 29, 2011
  • 29. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. • We will reduce the cost of safety with ongoing, serious optimization effort. mozilla 11 Friday, April 29, 2011
  • 30. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. • We will reduce the cost of safety with ongoing, serious optimization effort. • Rust allows unsafe modules and functions, so we can dial in the remaining cost that is not forgiven due to speedups on parallel hardware. mozilla 11 Friday, April 29, 2011
  • 31. What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. • We will reduce the cost of safety with ongoing, serious optimization effort. • Rust allows unsafe modules and functions, so we can dial in the remaining cost that is not forgiven due to speedups on parallel hardware. • The Servo parallel browser engine project is starting, here and now. mozilla 11 Friday, April 29, 2011
  • 32. mozilla 12 Friday, April 29, 2011