SlideShare a Scribd company logo
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

What's hot

BT Dual-Band Wi-Fi Extender 600
BT Dual-Band Wi-Fi Extender 600BT Dual-Band Wi-Fi Extender 600
BT Dual-Band Wi-Fi Extender 600
Telephones Online
 
Instalacion de antivirus
Instalacion de antivirusInstalacion de antivirus
Instalacion de antivirus
gabriela18hernandez
 
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
Akihiro Motoki
 
Hiren boot cd
Hiren boot cdHiren boot cd
Hiren boot cd
cesarvargasher
 
Devsの常識、DBAは非常識
Devsの常識、DBAは非常識Devsの常識、DBAは非常識
Devsの常識、DBAは非常識
yoku0825
 
Java on IBM z15
Java on IBM z15Java on IBM z15
Java on IBM z15
Joran Siu
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法Takuya ASADA
 
Fase 1 - Trabajo Final - Ensamble y Mantenimiento de Computadores
Fase 1 - Trabajo Final - Ensamble y Mantenimiento de ComputadoresFase 1 - Trabajo Final - Ensamble y Mantenimiento de Computadores
Fase 1 - Trabajo Final - Ensamble y Mantenimiento de Computadores
Jorge Cardona
 
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
Takuya Miyasaka
 
Informatica para niños
Informatica para  niñosInformatica para  niños
Informatica para niños
cachetegris77
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
稔 小林
 
CUIDADOS BÁSICOS EN LA SALA DE CÓMPUTO
CUIDADOS BÁSICOS EN LA SALA DE CÓMPUTOCUIDADOS BÁSICOS EN LA SALA DE CÓMPUTO
CUIDADOS BÁSICOS EN LA SALA DE CÓMPUTO
Kei97
 
Asterisk: dongled !
Asterisk: dongled !Asterisk: dongled !
Asterisk: dongled !
Francesco Prior
 
Snipe itで始めるit資産管理
Snipe itで始めるit資産管理Snipe itで始めるit資産管理
Snipe itで始めるit資産管理
Nozue Tomohiko
 
ASTERIA徹底運用Tips
ASTERIA徹底運用TipsASTERIA徹底運用Tips
ASTERIA徹底運用Tips
ASTERIA User Group
 
Cuadro Comparativo.docx
Cuadro Comparativo.docxCuadro Comparativo.docx
Cuadro Comparativo.docx
SammirFrancoGonzlez
 
クロスサイトリクエストフォージェリ(CSRF)とその対策
クロスサイトリクエストフォージェリ(CSRF)とその対策クロスサイトリクエストフォージェリ(CSRF)とその対策
クロスサイトリクエストフォージェリ(CSRF)とその対策
JPCERT Coordination Center
 

What's hot (17)

BT Dual-Band Wi-Fi Extender 600
BT Dual-Band Wi-Fi Extender 600BT Dual-Band Wi-Fi Extender 600
BT Dual-Band Wi-Fi Extender 600
 
Instalacion de antivirus
Instalacion de antivirusInstalacion de antivirus
Instalacion de antivirus
 
20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack20190722 Building handy CI with zuul and OpenStack
20190722 Building handy CI with zuul and OpenStack
 
Hiren boot cd
Hiren boot cdHiren boot cd
Hiren boot cd
 
Devsの常識、DBAは非常識
Devsの常識、DBAは非常識Devsの常識、DBAは非常識
Devsの常識、DBAは非常識
 
Java on IBM z15
Java on IBM z15Java on IBM z15
Java on IBM z15
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
 
Fase 1 - Trabajo Final - Ensamble y Mantenimiento de Computadores
Fase 1 - Trabajo Final - Ensamble y Mantenimiento de ComputadoresFase 1 - Trabajo Final - Ensamble y Mantenimiento de Computadores
Fase 1 - Trabajo Final - Ensamble y Mantenimiento de Computadores
 
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
PCE 〜MPLSネットワークのSDN化を本気で実現する"唯一の"方法〜
 
Informatica para niños
Informatica para  niñosInformatica para  niños
Informatica para niños
 
パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501パケットキャプチャの勘どころ Ssmjp 201501
パケットキャプチャの勘どころ Ssmjp 201501
 
CUIDADOS BÁSICOS EN LA SALA DE CÓMPUTO
CUIDADOS BÁSICOS EN LA SALA DE CÓMPUTOCUIDADOS BÁSICOS EN LA SALA DE CÓMPUTO
CUIDADOS BÁSICOS EN LA SALA DE CÓMPUTO
 
Asterisk: dongled !
Asterisk: dongled !Asterisk: dongled !
Asterisk: dongled !
 
Snipe itで始めるit資産管理
Snipe itで始めるit資産管理Snipe itで始めるit資産管理
Snipe itで始めるit資産管理
 
ASTERIA徹底運用Tips
ASTERIA徹底運用TipsASTERIA徹底運用Tips
ASTERIA徹底運用Tips
 
Cuadro Comparativo.docx
Cuadro Comparativo.docxCuadro Comparativo.docx
Cuadro Comparativo.docx
 
クロスサイトリクエストフォージェリ(CSRF)とその対策
クロスサイトリクエストフォージェリ(CSRF)とその対策クロスサイトリクエストフォージェリ(CSRF)とその対策
クロスサイトリクエストフォージェリ(CSRF)とその対策
 

Viewers also liked

Facebook F8 2016
Facebook F8 2016Facebook F8 2016
Facebook F8 2016
Fate Chang
 
Kalpana Chawla
Kalpana ChawlaKalpana Chawla
Kalpana Chawlambvanara
 
Fate And Freewill In Oedipus The King
Fate And Freewill In Oedipus The KingFate And Freewill In Oedipus The King
Fate And Freewill In Oedipus The King
doubleclickicaf
 
Semplicissimo cucito
Semplicissimo cucitoSemplicissimo cucito
Semplicissimo cucito
ippocampoedizioni
 
Romeo & juliet themes lesson
Romeo & juliet themes lessonRomeo & juliet themes lesson
Romeo & juliet themes lesson
Kathy Strelow
 
S1
S1S1
The State of Marketing - Insights from 2500 Marketers
The State of Marketing - Insights from 2500 MarketersThe State of Marketing - Insights from 2500 Marketers
The State of Marketing - Insights from 2500 Marketers
Kyle Lacy
 
EIA2016 Turin - Mattias Liivak. Payment Localisation
EIA2016 Turin - Mattias Liivak. Payment LocalisationEIA2016 Turin - Mattias Liivak. Payment Localisation
EIA2016 Turin - Mattias Liivak. Payment Localisation
European Innovation Academy
 
Bt freestyle 2500 User Guide from Telephones Online www.telephonesonline.co.uk
Bt freestyle 2500 User Guide from Telephones Online  www.telephonesonline.co.ukBt freestyle 2500 User Guide from Telephones Online  www.telephonesonline.co.uk
Bt freestyle 2500 User Guide from Telephones Online www.telephonesonline.co.uk
Telephones Online
 
Basics of Stock Markets
Basics of Stock MarketsBasics of Stock Markets
Basics of Stock Markets
Trilok Hg
 
Messenger wars 2: How Facebook climbed back to number 1
Messenger wars 2: How Facebook climbed back to number 1Messenger wars 2: How Facebook climbed back to number 1
Messenger wars 2: How Facebook climbed back to number 1
On Device Research
 
WordPress State of the Word 2012
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012
photomatt
 
VKontakte (ВКонтакте) demographics
VKontakte (ВКонтакте) demographicsVKontakte (ВКонтакте) demographics
VKontakte (ВКонтакте) demographics
Ondrej Pavelek
 
Escape the fate
Escape the fateEscape the fate
Escape the fate
shatito
 
B aby
B abyB aby
B abyNoa02
 
Curriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio SoledadCurriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio SoledadRocio Soledad Garcia
 
Sabarasa Videojuegos America Latina
Sabarasa Videojuegos America LatinaSabarasa Videojuegos America Latina
Sabarasa Videojuegos America LatinaFutura Networks
 
Turbine manufacturing process
Turbine manufacturing processTurbine manufacturing process
Turbine manufacturing processphysics101
 
Chemical translocation & molecular fate
Chemical  translocation & molecular fateChemical  translocation & molecular fate
Chemical translocation & molecular fate
Sumer Pankaj
 

Viewers also liked (20)

Facebook F8 2016
Facebook F8 2016Facebook F8 2016
Facebook F8 2016
 
Kalpana Chawla
Kalpana ChawlaKalpana Chawla
Kalpana Chawla
 
Fate And Freewill In Oedipus The King
Fate And Freewill In Oedipus The KingFate And Freewill In Oedipus The King
Fate And Freewill In Oedipus The King
 
Semplicissimo cucito
Semplicissimo cucitoSemplicissimo cucito
Semplicissimo cucito
 
Romeo & juliet themes lesson
Romeo & juliet themes lessonRomeo & juliet themes lesson
Romeo & juliet themes lesson
 
S1
S1S1
S1
 
The State of Marketing - Insights from 2500 Marketers
The State of Marketing - Insights from 2500 MarketersThe State of Marketing - Insights from 2500 Marketers
The State of Marketing - Insights from 2500 Marketers
 
EIA2016 Turin - Mattias Liivak. Payment Localisation
EIA2016 Turin - Mattias Liivak. Payment LocalisationEIA2016 Turin - Mattias Liivak. Payment Localisation
EIA2016 Turin - Mattias Liivak. Payment Localisation
 
Bt freestyle 2500 User Guide from Telephones Online www.telephonesonline.co.uk
Bt freestyle 2500 User Guide from Telephones Online  www.telephonesonline.co.ukBt freestyle 2500 User Guide from Telephones Online  www.telephonesonline.co.uk
Bt freestyle 2500 User Guide from Telephones Online www.telephonesonline.co.uk
 
1216webskbaexp
1216webskbaexp1216webskbaexp
1216webskbaexp
 
Basics of Stock Markets
Basics of Stock MarketsBasics of Stock Markets
Basics of Stock Markets
 
Messenger wars 2: How Facebook climbed back to number 1
Messenger wars 2: How Facebook climbed back to number 1Messenger wars 2: How Facebook climbed back to number 1
Messenger wars 2: How Facebook climbed back to number 1
 
WordPress State of the Word 2012
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012
 
VKontakte (ВКонтакте) demographics
VKontakte (ВКонтакте) demographicsVKontakte (ВКонтакте) demographics
VKontakte (ВКонтакте) demographics
 
Escape the fate
Escape the fateEscape the fate
Escape the fate
 
B aby
B abyB aby
B aby
 
Curriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio SoledadCurriculum Vitae (F) - GARCIA, Rocio Soledad
Curriculum Vitae (F) - GARCIA, Rocio Soledad
 
Sabarasa Videojuegos America Latina
Sabarasa Videojuegos America LatinaSabarasa Videojuegos America Latina
Sabarasa Videojuegos America Latina
 
Turbine manufacturing process
Turbine manufacturing processTurbine manufacturing process
Turbine manufacturing process
 
Chemical translocation & molecular fate
Chemical  translocation & molecular fateChemical  translocation & molecular fate
Chemical translocation & molecular fate
 

Similar to Future Tense

Mozilla Research Party Talk
Mozilla Research Party TalkMozilla Research Party Talk
Mozilla Research Party Talk
Brendan Eich
 
MSR Talk
MSR TalkMSR Talk
MSR Talk
Brendan Eich
 
ES.next
ES.nextES.next
ES.next
Brendan Eich
 
Browsers (2011)
Browsers (2011)Browsers (2011)
Browsers (2011)
Ivo Marinkov
 
Web Browsers
Web BrowsersWeb Browsers
Web Browsers
Adolfo Vasconez
 
Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016
Robert 'Bob' Reyes
 
Google chrome operating system
Google chrome operating systemGoogle chrome operating system
Google chrome operating system
Amit sundaray
 
Introduction to Rust Programming Language
Introduction to Rust Programming LanguageIntroduction to Rust Programming Language
Introduction to Rust Programming Language
Robert 'Bob' Reyes
 
Multi Handset Development - ETE 2010
Multi Handset Development - ETE 2010Multi Handset Development - ETE 2010
Multi Handset Development - ETE 2010Kevin Griffin
 
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
Taro Matsuzawa
 
Felczak Pkp 2009
Felczak Pkp 2009Felczak Pkp 2009
Felczak Pkp 2009
jbatchel
 
MozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off MeetingMozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off Meeting
Robert 'Bob' Reyes
 
Python: the secret weapon of Fedora - FLISoL 2015
Python: the secret weapon of Fedora - FLISoL 2015Python: the secret weapon of Fedora - FLISoL 2015
Python: the secret weapon of Fedora - FLISoL 2015
Bruno R. Zanuzzo
 
Rust 101 (2017 edition)
Rust 101 (2017 edition)Rust 101 (2017 edition)
Rust 101 (2017 edition)
Robert 'Bob' Reyes
 
Long Life Software
Long Life SoftwareLong Life Software
Long Life Software
Mike Long
 

Similar to Future Tense (20)

Mozilla Research Party Talk
Mozilla Research Party TalkMozilla Research Party Talk
Mozilla Research Party Talk
 
MSR Talk
MSR TalkMSR Talk
MSR Talk
 
ES.next
ES.nextES.next
ES.next
 
Browsers (2011)
Browsers (2011)Browsers (2011)
Browsers (2011)
 
Web Browsers
Web BrowsersWeb Browsers
Web Browsers
 
Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016
 
Google chrome operating system
Google chrome operating systemGoogle chrome operating system
Google chrome operating system
 
Introduction to Rust Programming Language
Introduction to Rust Programming LanguageIntroduction to Rust Programming Language
Introduction to Rust Programming Language
 
Multi Handset Development - ETE 2010
Multi Handset Development - ETE 2010Multi Handset Development - ETE 2010
Multi Handset Development - ETE 2010
 
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
(元)コミュニティメンバーから見たMozilla / Firefoxの歴史と展望@Browser Workshop
 
Web browser
Web browserWeb browser
Web browser
 
Felczak Pkp 2009
Felczak Pkp 2009Felczak Pkp 2009
Felczak Pkp 2009
 
BROWSERS!
BROWSERS!BROWSERS!
BROWSERS!
 
MozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off MeetingMozillaPH Rust Users Group Kick Off Meeting
MozillaPH Rust Users Group Kick Off Meeting
 
Python: the secret weapon of Fedora - FLISoL 2015
Python: the secret weapon of Fedora - FLISoL 2015Python: the secret weapon of Fedora - FLISoL 2015
Python: the secret weapon of Fedora - FLISoL 2015
 
Rust 101 (2017 edition)
Rust 101 (2017 edition)Rust 101 (2017 edition)
Rust 101 (2017 edition)
 
Web Browsers
 Web Browsers Web Browsers
Web Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Long Life Software
Long Life SoftwareLong Life Software
Long Life Software
 

More from Brendan Eich

Int64
Int64Int64
Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016
Brendan Eich
 
dotJS 2015
dotJS 2015dotJS 2015
dotJS 2015
Brendan Eich
 
Extensible Operators and Literals for JavaScript
Extensible Operators and Literals for JavaScriptExtensible Operators and Literals for JavaScript
Extensible Operators and Literals for JavaScript
Brendan Eich
 
Fluent15
Fluent15Fluent15
Fluent15
Brendan Eich
 
The Same-Origin Saga
The Same-Origin SagaThe Same-Origin Saga
The Same-Origin Saga
Brendan Eich
 
Fluent14
Fluent14Fluent14
Fluent14
Brendan Eich
 
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Brendan Eich
 
My dotJS Talk
My dotJS TalkMy dotJS Talk
My dotJS Talk
Brendan Eich
 
Web futures
Web futuresWeb futures
Web futures
Brendan Eich
 
JS Responsibilities
JS ResponsibilitiesJS Responsibilities
JS Responsibilities
Brendan Eich
 
Value objects in JS - an ES7 work in progress
Value objects in JS - an ES7 work in progressValue objects in JS - an ES7 work in progress
Value objects in JS - an ES7 work in progress
Brendan Eich
 
Splash
SplashSplash
Splash
Brendan Eich
 
JSLOL
JSLOLJSLOL
Capitol js
Capitol jsCapitol js
Capitol js
Brendan Eich
 
Paren free
Paren freeParen free
Paren free
Brendan Eich
 
Txjs talk
Txjs talkTxjs talk
Txjs talk
Brendan Eich
 
Mozilla's NodeConf talk
Mozilla's NodeConf talkMozilla's NodeConf talk
Mozilla's NodeConf talk
Brendan Eich
 
Proxies are Awesome!
Proxies are Awesome!Proxies are Awesome!
Proxies are Awesome!
Brendan Eich
 

More from Brendan Eich (20)

Int64
Int64Int64
Int64
 
Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016Always bet on JS - Finjs.io NYC 2016
Always bet on JS - Finjs.io NYC 2016
 
dotJS 2015
dotJS 2015dotJS 2015
dotJS 2015
 
Extensible Operators and Literals for JavaScript
Extensible Operators and Literals for JavaScriptExtensible Operators and Literals for JavaScript
Extensible Operators and Literals for JavaScript
 
Fluent15
Fluent15Fluent15
Fluent15
 
The Same-Origin Saga
The Same-Origin SagaThe Same-Origin Saga
The Same-Origin Saga
 
Taysom seminar
Taysom seminarTaysom seminar
Taysom seminar
 
Fluent14
Fluent14Fluent14
Fluent14
 
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
 
My dotJS Talk
My dotJS TalkMy dotJS Talk
My dotJS Talk
 
Web futures
Web futuresWeb futures
Web futures
 
JS Responsibilities
JS ResponsibilitiesJS Responsibilities
JS Responsibilities
 
Value objects in JS - an ES7 work in progress
Value objects in JS - an ES7 work in progressValue objects in JS - an ES7 work in progress
Value objects in JS - an ES7 work in progress
 
Splash
SplashSplash
Splash
 
JSLOL
JSLOLJSLOL
JSLOL
 
Capitol js
Capitol jsCapitol js
Capitol js
 
Paren free
Paren freeParen free
Paren free
 
Txjs talk
Txjs talkTxjs talk
Txjs talk
 
Mozilla's NodeConf talk
Mozilla's NodeConf talkMozilla's NodeConf talk
Mozilla's NodeConf talk
 
Proxies are Awesome!
Proxies are Awesome!Proxies are Awesome!
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