State of the Web
              Dmitry Buzdin




01.06.2012
Who am I?

                buzdin@gmail.com
                @buzdin


Dmitry Buzdin
Three Questions

•How Web evolved in the last
 5 years?
•How browsers are different
 now?
•Why should you care?
Evolution of the Web
#!/usr/bin/perl

print   "Content-type: text/htmlnn";
print   "<html><head>n";
print   "<title>Web App</title>n";
print   "</head>n";
print   "<body><b>Hello World</b>n";
print   "</body>;
<HTML>
<HEAD>
<TITLE>Web App</TITLE>
<%! String message = "Hello, World"; %>
</HEAD>
<BODY>
<b><%= message%></b>
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE>Web App</TITLE>
<%! String message = "Hello, World"; %>
</HEAD>
<BODY>
<b onclick=”alert(“Hello, World”);”>
<%= message%></b>
</BODY>
</HTML>
Humans Discovered
   JavaScript
AJAX




The most important invention of
WEB 2.0 and RIA
Typical
Web App!
Browser Wars
Episode VII:
Performance Wars

When: 2008 - 2009
Reason: JavaScript
performance
IE7   Chrome19
700

                         650x
                        Slower
525




350        IE7

175


                                      Chrome19
  0
                       Times Slower

  http://www.webkit.org/perf/sunspider/sunspider.html
JavaScript is so fast
  today, that none
    knows/cares
which browser is the
      fastest
Episode VIII: Feature
       Wars

 When: 2011 - now
 Reason: HTML5
Revolutionary
update to the Web
Browsers are
competing now
  for HTML5
 completeness
New versions
   every
few months
Test Your Browser




    http://html5test.com/
Even TVs support
   HTML5 now


   Microwaves are next...
Some of the New
  HTML5 Features
•LocalStorage
•IndexedDB
•Web Sockets
•SVG
•Canvas & Web GL
LocalStorage
   • Key-value persistent
     storage
   •Either linked to Session or
     Domain

localStorage.setItem(“item”, “value”);
var result = localStorage.getItem("item");
IndexedDB
•Real database
•JSON object store
•Transactional
•Indexable
•5MB storage limit in Chrome
JSON
{id: 1,
 value: "ok"
 items: [
     {
       id:2,
       value: true
     },
     {id:3}
  ]
}
Web Sockets

•Separate TCP connection on
 port 80
•Free from HTTP limitations
•Server push possible
•Peer-to-Peer possible
SVG
•  Scalable Vector
   Graphics
•    Resizable vector
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
   <circle cx="100" cy="50" r="40"
     stroke="black" stroke-width="2" fill="red" />
</svg>
Canvas & WebGL

•2D/3D graphics
•Hardware accelerated
•Next generation of
 online games
WEB 1.0 Architecture
     Static Pages
     Cookies


        HTTP

     Session Storage
     Graphics
     Rendering
     Page Templates
WEB 2.0
Architecture
  Dynamic Pages
  Session Storage
  Graphics

     HTTP       WebSockets


  Security &
  Persistence
No more work
 for backend
Still plenty of
work, but huge
demand for the
One
HTML5 will be
standardized
   in 2014
HTML5 =
JavaScript ?
Why People Rave
 about JavaScript?
•Extremely simple*
•Dynamic
•Productive
•Language of the Web
Why not JavaScript
•Was not intended to power
 the Web
•Poor language design
 decisions
•Too dynamic
•Too simple
JavaScript
    Alternatives
•Oracle JavaFX
•Google GWT, Dart
•JVM Langs - Fantom,
 Kotlin, Clojure
•CoffeeScript
Web is
inevitable!
Web is everywhere!
    Desktops
     Tablets
   Smartphones
       TVs
   Microwaves?
Time to learn
       HTML5
•Building great applications is
 simpler than ever
•Programming is becoming
 mainstream
•HTML5 is a platform, not a
 tool or language
“May you live in
interesting times”
           Chinese curse
Thank You!

State of the Web