DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report

Reinventing the Browser

Mitch Pronschinske user avatar by
Mitch Pronschinske
·
Mar. 17, 10 · Interview
Like (0)
Save
Tweet
Share
4.93K Views

Join the DZone community and get the full member experience.

Join For Free

In the last decade, people have thrown away the notion of web browsers being just a web page renderer.  Organizations such as Mozilla, Apple, Opera, Google, and Microsoft have turned the browser into a full-fledged application runtime platform.  At a the Ajax Experience conference, Ben Galbraith, the co-director of developer tools at Mozilla, says that on the surface browsers are getting simpler, but the code is getting more sophisticated and powerful.  More emphasis is being put on JavaScript performance and on the web as an open development platform.  Galbraith explains some of the new browser technologies that will fundamentally change the way that web applications are built.

Canvas
HTML5 is becoming a major part of the web landscape by enabling browser-native video, audio, and offline data storage.  The Canvas specification could possibly be the most influential technology in HTML5.  It's history began with Apple's Dashboard for Mac OS X.  The company wanted to make it simpler to create applications on the dashboard.  They decided that the browser would be the best tool to accomplish this, so they gave Safari arbitrary graphics rendering.  Traditionally, web developers have only had standards for using text, boxes, and images to build applications in a browser.  Canvas gives web designers greater freedom in building user interfaces.  Canvas is very simple to use and it doesn't need a scene graph.  If you want to create a scene graph, the SVG standard is another great tool that can make vector graphics.  The advantages of Canvas over a plugin include immediate mobile availability, no startup delay, and full rendering fidelity with the browser.  

JavaScript Engines
Besides design flexibility, speed is one of the most important factors in a browser.  Google Chrome's increased adoption is largely because it markets itself as fast and lightweight.  Google helped start this speedy internet movement with Chrome's V8 JavaScript engine.  Now all of the major browser vendors are investing heavily in better JavaScript engine performance.  These browser advancements open up a new realm of possibilities for client-side applications.  The SPDY protocol is another Google project to make the internet faster.  It is designed to minimize latency through multiplexed streams, request prioritization, and HTTP header compression.

Garbage Collection
Browser memory management is also changing the way that web applications collect garbage.  Google has created a solution to the slowdowns associated with garbage collection.  The method is called generational garbage collection and it splits the heap into two parts: a young generation and an old generation.  The browser first analyzes the younger generation and then moves the still-active parts into the old generation.  This dramatically reduces the amount of heap that the garbage collector has to analyze on a regular basis.

Web Workers
Jakob Nielson, an expert on web usability, says that people notice the tiniest delays in a user interface.  Nielson says that a 1/10th of a second delay is all it takes for a person to feel like the program can't keep up with them.  UI threads tend to be the bottleneck when it comes to interface responsiveness.  The general solution to this problem is background threads, but browsers don't have them.  This is why Google introduced the notion of "workers" in Google Gears.  Workers allow you to do things in the background without shared state, which is the danger of threading.  Workers provide a sandbox where you can execute code separately but in parallel with the UI thread.  Java and Flash plugins can provide full threading and achieve the same effect, but the HTML5 spec for web workers has built this function into the browser.  

Desktop-Native Web Apps
Desktop integration is another direction that the browser is going towards.  There are a few technologies that are making great strides in this area.  Mozilla Prism and Fluid are two examples that let you run web applications from your desktop.  Adobe AIR takes this concept even further by giving users the ability to take AJAX applications and run them on the desktop with native services.  Appcelerator Titanium is an open source version of the same concept.  PhoneGap is another web app integration tool for mobile operating systems that can package up a web application and run it like a native mobile application. 



The Web as a Platform
Perhaps most significant change in web browser landscape will be the movement towards the web as an open platform for native application development.  Palm's WebOS and Google's Chrome OS are early adopters of this model.  As this trend continues, we could see lighter-weight desktops and more freedom from proprietary platforms.  More portals like the iPhone App store could emerge for developers to monetize these web-built applications.

A video of Galbraith's talk can be found here. 

mobile app Web Service

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Integrating AWS Secrets Manager With Spring Boot
  • Use Golang for Data Processing With Amazon Kinesis and AWS Lambda
  • How To Perform Local Website Testing Using Selenium And Java
  • Top 10 Best Practices for Web Application Testing

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: