SlideShare a Scribd company logo
1 of 32
Download to read offline
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

gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築Kazuki Ogiwara
 
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!Unity Technologies Japan K.K.
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミングPreferred Networks
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~SEGADevTech
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All ThingsUnityTechnologiesJapan002
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャtorisoup
 
Leak canaryで メモリリーク調査
Leak canaryで メモリリーク調査Leak canaryで メモリリーク調査
Leak canaryで メモリリーク調査baroqueworksdev
 
WebRTCの技術解説 公開版
WebRTCの技術解説 公開版WebRTCの技術解説 公開版
WebRTCの技術解説 公開版Contest Ntt-west
 
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術Unity Technologies Japan K.K.
 
ゲーム開発とデザインパターン
ゲーム開発とデザインパターンゲーム開発とデザインパターン
ゲーム開発とデザインパターンTakashi Komada
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?Teppei Sato
 
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装tnoho
 
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術Yoshiaki Sugimoto
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~Unity Technologies Japan K.K.
 
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發Edward Kuo
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14Ryo Suzuki
 
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例UnityTechnologiesJapan002
 

What's hot (20)

実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築gRPC と nginx による HTTP/2 サービスメッシュ構築
gRPC と nginx による HTTP/2 サービスメッシュ構築
 
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
CEDEC2021 Android iOS 実機上での自動テストをより楽に有意義にする為に ~端末管理・イメージ転送・動画記録等の周辺情報のノウハウ共有~
 
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
 
Leak canaryで メモリリーク調査
Leak canaryで メモリリーク調査Leak canaryで メモリリーク調査
Leak canaryで メモリリーク調査
 
WebRTCの技術解説 公開版
WebRTCの技術解説 公開版WebRTCの技術解説 公開版
WebRTCの技術解説 公開版
 
UIElements+UI BuilderでEditor拡張を作ろう
UIElements+UI BuilderでEditor拡張を作ろうUIElements+UI BuilderでEditor拡張を作ろう
UIElements+UI BuilderでEditor拡張を作ろう
 
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
【Unite 2017 Tokyo】最適化をする前に覚えておきたい技術
 
ゲーム開発とデザインパターン
ゲーム開発とデザインパターンゲーム開発とデザインパターン
ゲーム開発とデザインパターン
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
 
2013年6月5日 システム概要説明資料
2013年6月5日 システム概要説明資料2013年6月5日 システム概要説明資料
2013年6月5日 システム概要説明資料
 
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
WebブラウザでP2Pを実現する、WebRTCのAPIと周辺技術
 
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
【Unite Tokyo 2018 Training Day】C#JobSystem & ECSでCPUを極限まで使い倒そう ~C# JobSystem 編~
 
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
[2018 .NET Conf].NET Core與Azure DevOps應用於企業開發
 
ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14ゲーム開発者のための C++11/C++14
ゲーム開発者のための C++11/C++14
 
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
 

Viewers also liked

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
 

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

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)
 
Browsers
BrowsersBrowsers
Browsers
 
Web Browsers
 Web Browsers Web Browsers
Web Browsers
 
Browsers
BrowsersBrowsers
Browsers
 
Long Life Software
Long Life SoftwareLong Life Software
Long Life Software
 

More from 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
 

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