SlideShare una empresa de Scribd logo
1 de 37
Whither Web
Programming
Gilad Bracha
Google
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• News 15-20 / week
• Articles 3-4 / week
• Presentations (videos) 12-15 / week
• Interviews 2-3 / week
• Books 1 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/web-programming-future
Presented at QCon New York
www.qconnewyork.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
I am not speaking for Google here.
Caveat
Ubiquity
Zero-install
Web Platform Strengths
Always Available
Web Platform Strengths
Always Available
Always Up to Date
Web Platform Strengths
Ask xkcd:
Always Available
- except when it’s not
Caveat Emptor
Offline use
● Network may be flakey, slow, costly or
non-existent
● Lacking a good mechanism for storing
programs
Web Platform Weaknesses
Restricted choice of viable programming
languages
● Hard to implement alternative
languages efficiently
o Lacking necessary primitives
o Lacking a good mechanism for storing
programs (again!)
Web Platform Weaknesses
Integers
Stack Access
Weak References/Weak Arrays
Object Privacy
Concurrency
Programming Language Issues
The web platform has another strength:
Openness
Let there be Hope
Openness leads to diversity
People are doing cool language work
against the odds.
Let there be Hope
A playground for Dart programming,
including a full Dart compiler running in the
browser
Try Dart
So, why is this
book not out
yet?
So, why is this
book not out
yet?
Because the
reflection
chapter isn’t
ready
Why?
Why?
Because the
reflection API is
not stable
Why?
Why? Because the
reflection makes
dart2js output
larger
Why is that a
problem?
Why is that a
problem? Because the
web lacks a
standard way of
storing
programs
A pure functional language for UI
construction. Runs on the web, with a live
environment.
import Mouse
import Graphics.Collage
redCircle x = collage 200 300 [filled red (circle (toFloat x))]
main = lift redCircle Mouse.x
Elm
Could the web be nicer to Elm?
● Concurrency
● Tail recursion
Elm
A live environment for the web
Lively
A purely functional, lazy, dynamically typed
homoiconic language with a live web-based
literate programming environment
Leisure
A live, modular, object-capability based
platform for the networked age
Newspeak
The unmet goal: Code & data
Sync’ed by Available
the platform offline.
when online.
Platform for the Networked Age?
Changing a mixin at runtime means changing
all classes that mix it in
Keep list of said classes in a weak array or
weak map
JS weak maps are not enumerable :-(
LIve Code Editing + Mixins
Motivation:
● IDE’s own debugger
● First class control constructs
● Serializing a thread
● To be continued ...
Manipulating the Stack
● Web apps should evolve to compete and
surpass native apps
● Web platform must support offline work,
stored programs, many programming
languages - or wither in the face of
competition
Whither Web Programming?
TryDart: Peter Ahe & the Dart team
Elm: Evan Czaplicki
Lively Kernel: Dan Ingalls & Robert Krahn
Leisure: Bill Burdick
Newspeak: Ryan Macnak, Vassili Bykov &
others
Credits
This file is licensed under the Creative Commons Attribution ShareAlike 3.0
License. In short: you are free to share and make derivative works of the
file under the conditions that you appropriately attribute it, and that you
distribute it only under a license identical to this one. Official license.
Cartoon on slide 6: xkcd
Dart book copyright Addison-Wesley 2013
The Newspeak eye on slide 28 was designed by Victoria Bracha and
used by permission
Licensing and Attribution
Watch the video with slide synchronization on
InfoQ.com!
http://www.infoq.com/presentations/web-
programming-future

Más contenido relacionado

Similar a Whither Web programming?

Thesis Presentation
Thesis PresentationThesis Presentation
Thesis Presentation
Jing KE
 

Similar a Whither Web programming? (20)

Continuous Delivery Without Breaking Everything
Continuous Delivery Without Breaking EverythingContinuous Delivery Without Breaking Everything
Continuous Delivery Without Breaking Everything
 
Microsoft Cloud's Front Door: Building a Global API
Microsoft Cloud's Front Door: Building a Global APIMicrosoft Cloud's Front Door: Building a Global API
Microsoft Cloud's Front Door: Building a Global API
 
The Why of Go
The Why of GoThe Why of Go
The Why of Go
 
Life beyond Java 8
Life beyond Java 8Life beyond Java 8
Life beyond Java 8
 
Ionic in 30
Ionic in 30Ionic in 30
Ionic in 30
 
Senior C# .Net Developer job in London from abrs
Senior C#  .Net Developer job in London from abrsSenior C#  .Net Developer job in London from abrs
Senior C# .Net Developer job in London from abrs
 
Latest trends in Technical Writing, Authoring on Cloud, Content Delivery for ...
Latest trends in Technical Writing, Authoring on Cloud, Content Delivery for ...Latest trends in Technical Writing, Authoring on Cloud, Content Delivery for ...
Latest trends in Technical Writing, Authoring on Cloud, Content Delivery for ...
 
Tumblr - Bits to Gifs
Tumblr - Bits to GifsTumblr - Bits to Gifs
Tumblr - Bits to Gifs
 
Thesis Presentation
Thesis PresentationThesis Presentation
Thesis Presentation
 
Lessons Learned on Uber's Journey into Microservices
Lessons Learned on Uber's Journey into MicroservicesLessons Learned on Uber's Journey into Microservices
Lessons Learned on Uber's Journey into Microservices
 
[WSO2Con USA 2018] Chipping Away at Technical Debt with WSO2
[WSO2Con USA 2018] Chipping Away at Technical Debt with WSO2[WSO2Con USA 2018] Chipping Away at Technical Debt with WSO2
[WSO2Con USA 2018] Chipping Away at Technical Debt with WSO2
 
The Hitchhiker's Guide to Serverless JavaScript
The Hitchhiker's Guide to Serverless JavaScriptThe Hitchhiker's Guide to Serverless JavaScript
The Hitchhiker's Guide to Serverless JavaScript
 
Not Sold Yet, GraphQL: A Humble Tale from Skeptic to Enthusiast
Not Sold Yet, GraphQL: A Humble Tale from Skeptic to EnthusiastNot Sold Yet, GraphQL: A Humble Tale from Skeptic to Enthusiast
Not Sold Yet, GraphQL: A Humble Tale from Skeptic to Enthusiast
 
Mobile Delivery Run Through
Mobile Delivery Run ThroughMobile Delivery Run Through
Mobile Delivery Run Through
 
Serverless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps AdoptionServerless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps Adoption
 
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
React Native and the future of web technology (Mark Wilcox) - GreeceJS #15
 
When and How to Win with New Programming Languages
When and How to Win with New Programming LanguagesWhen and How to Win with New Programming Languages
When and How to Win with New Programming Languages
 
API-first Architecture Transformation at Etsy
API-first Architecture Transformation at EtsyAPI-first Architecture Transformation at Etsy
API-first Architecture Transformation at Etsy
 
Impact of Adobe Edge Tools and Services in Higher Education
Impact of Adobe Edge Tools and Services in Higher EducationImpact of Adobe Edge Tools and Services in Higher Education
Impact of Adobe Edge Tools and Services in Higher Education
 
Experiences Building InfluxDB in Go
Experiences Building InfluxDB in GoExperiences Building InfluxDB in Go
Experiences Building InfluxDB in Go
 

Más de C4Media

Más de C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Último

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

Whither Web programming?

  • 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /web-programming-future
  • 3. Presented at QCon New York www.qconnewyork.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  • 4. I am not speaking for Google here. Caveat
  • 7. Always Available Always Up to Date Web Platform Strengths
  • 9. Always Available - except when it’s not Caveat Emptor
  • 10. Offline use ● Network may be flakey, slow, costly or non-existent ● Lacking a good mechanism for storing programs Web Platform Weaknesses
  • 11. Restricted choice of viable programming languages ● Hard to implement alternative languages efficiently o Lacking necessary primitives o Lacking a good mechanism for storing programs (again!) Web Platform Weaknesses
  • 12.
  • 13. Integers Stack Access Weak References/Weak Arrays Object Privacy Concurrency Programming Language Issues
  • 14. The web platform has another strength: Openness Let there be Hope
  • 15. Openness leads to diversity People are doing cool language work against the odds. Let there be Hope
  • 16.
  • 17. A playground for Dart programming, including a full Dart compiler running in the browser Try Dart
  • 18. So, why is this book not out yet?
  • 19. So, why is this book not out yet? Because the reflection chapter isn’t ready
  • 20. Why?
  • 22. Why?
  • 23. Why? Because the reflection makes dart2js output larger
  • 24. Why is that a problem?
  • 25. Why is that a problem? Because the web lacks a standard way of storing programs
  • 26. A pure functional language for UI construction. Runs on the web, with a live environment. import Mouse import Graphics.Collage redCircle x = collage 200 300 [filled red (circle (toFloat x))] main = lift redCircle Mouse.x Elm
  • 27. Could the web be nicer to Elm? ● Concurrency ● Tail recursion Elm
  • 28. A live environment for the web Lively
  • 29. A purely functional, lazy, dynamically typed homoiconic language with a live web-based literate programming environment Leisure
  • 30. A live, modular, object-capability based platform for the networked age Newspeak
  • 31. The unmet goal: Code & data Sync’ed by Available the platform offline. when online. Platform for the Networked Age?
  • 32. Changing a mixin at runtime means changing all classes that mix it in Keep list of said classes in a weak array or weak map JS weak maps are not enumerable :-( LIve Code Editing + Mixins
  • 33. Motivation: ● IDE’s own debugger ● First class control constructs ● Serializing a thread ● To be continued ... Manipulating the Stack
  • 34. ● Web apps should evolve to compete and surpass native apps ● Web platform must support offline work, stored programs, many programming languages - or wither in the face of competition Whither Web Programming?
  • 35. TryDart: Peter Ahe & the Dart team Elm: Evan Czaplicki Lively Kernel: Dan Ingalls & Robert Krahn Leisure: Bill Burdick Newspeak: Ryan Macnak, Vassili Bykov & others Credits
  • 36. This file is licensed under the Creative Commons Attribution ShareAlike 3.0 License. In short: you are free to share and make derivative works of the file under the conditions that you appropriately attribute it, and that you distribute it only under a license identical to this one. Official license. Cartoon on slide 6: xkcd Dart book copyright Addison-Wesley 2013 The Newspeak eye on slide 28 was designed by Victoria Bracha and used by permission Licensing and Attribution
  • 37. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/web- programming-future