SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가
NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가
NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가NAVER Engineering
 
Building a Hybrid Cloud Architecture Utilizing AWS Landing Zones
Building a Hybrid Cloud Architecture Utilizing AWS Landing ZonesBuilding a Hybrid Cloud Architecture Utilizing AWS Landing Zones
Building a Hybrid Cloud Architecture Utilizing AWS Landing ZonesTom Laszewski
 
ARC319_Multi-Region Active-Active Architecture
ARC319_Multi-Region Active-Active ArchitectureARC319_Multi-Region Active-Active Architecture
ARC319_Multi-Region Active-Active ArchitectureAmazon Web Services
 
Kubernetes networking in AWS
Kubernetes networking in AWSKubernetes networking in AWS
Kubernetes networking in AWSZvika Gazit
 
NEW LAUNCH! Introducing Amazon MQ Managed Message Broker Service for ActiveMQ...
NEW LAUNCH! Introducing Amazon MQ Managed Message Broker Service for ActiveMQ...NEW LAUNCH! Introducing Amazon MQ Managed Message Broker Service for ActiveMQ...
NEW LAUNCH! Introducing Amazon MQ Managed Message Broker Service for ActiveMQ...Amazon Web Services
 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings Adam Book
 
Appium basics
Appium basicsAppium basics
Appium basicsSyam Sasi
 
Migration to Alibaba Cloud
Migration to Alibaba CloudMigration to Alibaba Cloud
Migration to Alibaba CloudAlibaba Cloud
 
가상 데이터 센터 만들기 VPC 기본 및 연결 옵션- AWS Summit Seoul 2017
가상 데이터 센터 만들기 VPC 기본 및 연결 옵션- AWS Summit Seoul 2017가상 데이터 센터 만들기 VPC 기본 및 연결 옵션- AWS Summit Seoul 2017
가상 데이터 센터 만들기 VPC 기본 및 연결 옵션- AWS Summit Seoul 2017Amazon Web Services Korea
 
Head first docker
Head first dockerHead first docker
Head first dockerHan Qin
 
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...Amazon Web Services
 
Build a Serverless Web Application
Build a Serverless Web ApplicationBuild a Serverless Web Application
Build a Serverless Web ApplicationAmazon Web Services
 
Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )Harish Ganesan
 
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중Amazon Web Services Korea
 
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기복연 이
 

Tendances (20)

java vs C#
java vs C#java vs C#
java vs C#
 
NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가
NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가
NAVER TECH CONCERT_FE2019_오늘부터 나도 FE 성능분석가
 
Building a Hybrid Cloud Architecture Utilizing AWS Landing Zones
Building a Hybrid Cloud Architecture Utilizing AWS Landing ZonesBuilding a Hybrid Cloud Architecture Utilizing AWS Landing Zones
Building a Hybrid Cloud Architecture Utilizing AWS Landing Zones
 
ARC319_Multi-Region Active-Active Architecture
ARC319_Multi-Region Active-Active ArchitectureARC319_Multi-Region Active-Active Architecture
ARC319_Multi-Region Active-Active Architecture
 
Kubernetes networking in AWS
Kubernetes networking in AWSKubernetes networking in AWS
Kubernetes networking in AWS
 
NEW LAUNCH! Introducing Amazon MQ Managed Message Broker Service for ActiveMQ...
NEW LAUNCH! Introducing Amazon MQ Managed Message Broker Service for ActiveMQ...NEW LAUNCH! Introducing Amazon MQ Managed Message Broker Service for ActiveMQ...
NEW LAUNCH! Introducing Amazon MQ Managed Message Broker Service for ActiveMQ...
 
AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings AWS CloudFormation Intrinsic Functions and Mappings
AWS CloudFormation Intrinsic Functions and Mappings
 
Appium basics
Appium basicsAppium basics
Appium basics
 
Migration to Alibaba Cloud
Migration to Alibaba CloudMigration to Alibaba Cloud
Migration to Alibaba Cloud
 
가상 데이터 센터 만들기 VPC 기본 및 연결 옵션- AWS Summit Seoul 2017
가상 데이터 센터 만들기 VPC 기본 및 연결 옵션- AWS Summit Seoul 2017가상 데이터 센터 만들기 VPC 기본 및 연결 옵션- AWS Summit Seoul 2017
가상 데이터 센터 만들기 VPC 기본 및 연결 옵션- AWS Summit Seoul 2017
 
Head first docker
Head first dockerHead first docker
Head first docker
 
AWS CodeDeploy
AWS CodeDeployAWS CodeDeploy
AWS CodeDeploy
 
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
ElastiCache Deep Dive: Best Practices and Usage Patterns - March 2017 AWS Onl...
 
Appium.pptx
Appium.pptxAppium.pptx
Appium.pptx
 
Build a Serverless Web Application
Build a Serverless Web ApplicationBuild a Serverless Web Application
Build a Serverless Web Application
 
AWS networking fundamentals
AWS networking fundamentalsAWS networking fundamentals
AWS networking fundamentals
 
Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )Auto scaling using Amazon Web Services ( AWS )
Auto scaling using Amazon Web Services ( AWS )
 
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
 
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
『프로젝트 성패를 결정짓는 데이터 모델링 이야기』 - 미리보기
 
Hadoop2.2
Hadoop2.2Hadoop2.2
Hadoop2.2
 

En vedette

Facebook F8 2016
Facebook F8 2016Facebook F8 2016
Facebook F8 2016Fate 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 Kingdoubleclickicaf
 
Romeo & juliet themes lesson
Romeo & juliet themes lessonRomeo & juliet themes lesson
Romeo & juliet themes lessonKathy Strelow
 
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 MarketersKyle Lacy
 
EIA2016 Turin - Mattias Liivak. Payment Localisation
EIA2016 Turin - Mattias Liivak. Payment LocalisationEIA2016 Turin - Mattias Liivak. Payment Localisation
EIA2016 Turin - Mattias Liivak. Payment LocalisationEuropean 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.ukTelephones Online
 
Basics of Stock Markets
Basics of Stock MarketsBasics of Stock Markets
Basics of Stock MarketsTrilok 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 1On Device Research
 
WordPress State of the Word 2012
WordPress State of the Word 2012WordPress State of the Word 2012
WordPress State of the Word 2012photomatt
 
VKontakte (ВКонтакте) demographics
VKontakte (ВКонтакте) demographicsVKontakte (ВКонтакте) demographics
VKontakte (ВКонтакте) demographicsOndrej Pavelek
 
Escape the fate
Escape the fateEscape the fate
Escape the fateshatito
 
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 fateSumer Pankaj
 

En vedette (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
 

Similaire à Future Tense

Mozilla Research Party Talk
Mozilla Research Party TalkMozilla Research Party Talk
Mozilla Research Party TalkBrendan Eich
 
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 2016Robert 'Bob' Reyes
 
Google chrome operating system
Google chrome operating systemGoogle chrome operating system
Google chrome operating systemAmit sundaray
 
Introduction to Rust Programming Language
Introduction to Rust Programming LanguageIntroduction to Rust Programming Language
Introduction to Rust Programming LanguageRobert '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 WorkshopTaro Matsuzawa
 
Felczak Pkp 2009
Felczak Pkp 2009Felczak Pkp 2009
Felczak Pkp 2009jbatchel
 
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 MeetingRobert '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 2015Bruno R. Zanuzzo
 
Long Life Software
Long Life SoftwareLong Life Software
Long Life SoftwareMike Long
 

Similaire à 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
 

Plus de Brendan Eich

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 2016Brendan Eich
 
Extensible Operators and Literals for JavaScript
Extensible Operators and Literals for JavaScriptExtensible Operators and Literals for JavaScript
Extensible Operators and Literals for JavaScriptBrendan Eich
 
The Same-Origin Saga
The Same-Origin SagaThe Same-Origin Saga
The Same-Origin SagaBrendan 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
 
JS Responsibilities
JS ResponsibilitiesJS Responsibilities
JS ResponsibilitiesBrendan 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 progressBrendan Eich
 
Mozilla's NodeConf talk
Mozilla's NodeConf talkMozilla's NodeConf talk
Mozilla's NodeConf talkBrendan Eich
 
Proxies are Awesome!
Proxies are Awesome!Proxies are Awesome!
Proxies are Awesome!Brendan Eich
 

Plus de 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