Showing posts with label General. Show all posts
Showing posts with label General. Show all posts

Monday, September 15, 2008

Speed-up Web Aplications: "Developers should skip Google's Chrome, and jump straight to WebKit"

Inside every browser is the core of the ideal client-side application environment, incorporating everything that I'd estimate half of commercial applications need. There's the best dynamic, object-oriented, loosely typed programming language, bar none (JavaScript), transparently bound to an idiot simple yet extensible presentation layer (DHTML, CSS, XML, DOM, SVG...). Browser-based apps don't require specialized development tools, or any tools at all. All that keeps your browser from being the perfect client app environment is speed, stability, strict adherence to standards, and offline capabilities. That is not too much to ask; it's all within reach, right now. It's a matter of adjusting our priorities and perspective.

[ Beefed up for application duty, Google Chrome, and Internet Explorer 8 reach new heights in browser resource consumption. See the Test Center review. Also, check out InfoWorld's Special Report for all the news, reviews, and commentary on Google's open source Chrome browser. ]

Forget about trying to make projects fit browsers and focus on higher objectives. We want a cross-platform, cross-architecture development platform that can take an app from behavior-accurate prototype to full functionality in stages and with minimal skill. We want applications that can be QA'd in site at the operational level, patched remotely, and updated automatically. We need to adapt to specifications that are altered while the project is underway. Code has to be ultimately reusable, and we need the capability to easily reach out to legacy back-ends. We never want to hear our support staff tell a user "we can't reproduce that problem." If we have to let a developer go, we want to know that he can't lock up his code on the way out, and that anyone of comparable skill can take over and be up to speed in a couple of days.

Now, knowing what we want, we can think about how to achieve all of this, and now we can come back to the browser. If we could achieve the ideal, a browser's got everything a development project would love to have but can't dream of putting in the schedule. The trouble is that browsers are designed for surfing, not as application platforms. Think about it. If you were cranking up a new client development project, would you issue a statement of objectives that it must look like a Web site, take twenty seconds to paint a window, offer no feedback when you click a button, skip reporting the progress of transactions, refuse to run unless you're connected to a network, and force users to re-enter form data if there's a hiccup in delivery? It's telling that the first thing an erstwhile Web application does is free itself from the trappings of a browser: It removes the navigation bar, the menu (when it can -- OS X doesn't allow it) and the status bar, redirects the right mouse button away from the default context menu and makes it impossible to resize the window. If you use the browser, the standard is to work like hell to hide it, and to solve performance problems by embedding Java or ActiveX objects.

It reads like a no-win deal until you realize that you don't need a fat, clunky browser. You don't need to host a browser in an application window. Just take the framework shared by multiple commercial browsers and bake it right into your project. That's WebKit. At a total cost of nothing and with free lifetime updates, it's as sweet a deal as you'll find, and unlike many open source projects that you'd love to use but which vary in the quality of support, documentation, and maintenance, WebKit is driven by companies like Apple, Nokia, and most recently, Google, that rely on it for commerce. The Iris Browser from Touch Mobile, which uses WebKit, is the first worthwhile free alternative to Internet Explorer on Windows Mobile devices, and it's the best first pass I've seen yet on borrowing iPhone's touch interface. Even though it's most frequently seen in browsers, WebKit is a lot more than a browser in a can. It advances the state of the art faster and farther than is required for a browser.

The best example of this is WebKit's new tokenizing JavaScript engine, SquirrelFish. The latency associated with the retrieval of most Web pages makes the speed of JavaScript execution a minor issue, but JavaScript's poor performance takes it out of contention as an application language. It's not a hard problem to solve; there is no shortage of engineers skilled at making interpreted languages run faster. There just wasn't the will to do it for JavaScript until some people realized that JavaScript is a serious language in need of a serious implementation. SquirrelFish takes two vital first steps toward elevating WebKit's JavaScript to first-class status: Mapping bulky JavaScript to more efficient, partially digested ("compiled") bytecode, and using a register model instead of a stack model.

The stack model stuffs all of the data passed between functions into a single pool of memory. It is the duty of every function that uses the stack to leave it precisely as it found it lest other function calls get the wrong data passed to them. Functions have to pull data from the stack to make local copies for their use, and to return data to the calling function they must shove the results back onto the stack. Stack-based interpreters are easy to write, but hard to optimize. Register-based interpreters use a direct reference (in loose terms, pointers) to data needed to call a function. Just this one change from a stack-based interpreter to a register-based virtual machine delivers performance gains of 1.5x to more than 3x depending on the operation, and that's how WebKit without SquirrelFish compares to WebKit with SquirrelFish. It borders on unfair to compare WebKit (Safari 3.1) performance to Firefox, but it does highlight the difference between a JavaScript for applications and a JavaScript for surfing.

It's not that no one thought of making a bytecode JavaScript, any more than it's a new idea to put smoothly scaled and animated vector graphics in a browser (SVG). No one cared to do it because the day-to-day surfing experience wouldn't be enhanced by it. WebKit has higher aspirations than surfing, and there is more advanced science in WebKit than its JavaScript interpreter. The whole framework is shifting into ever higher gears in performance, standards compliance, completeness, and stability. WebKit is a framework that brings the benefits of a browser to all applications, across platforms, even ones that don't use the network. It doesn't hurt that WebKit is free and open source, that a Safari-workalike browser is included in the distribution, and that it uses middleware (HTTP) and object representation standards (XML) that bind it to all back-ends. Get WebKit and be proud to use browser technology in serious applications.

Sunday, September 14, 2008

HTML 5 Is Already Changing the Web today

HTML 5 represents the biggest leap forward in web standards in almost a decade. Unlike the specifications that came before it, HTML 5 is not merely intended to present content to a web browser. Its goal is to bring the web into maturity as a full-fledged application platform — a level playing field where video, sound, images, animations, and full interactivity with your computer are all standardized. And it may be a long way off still, but elements of HTML 5 are already reshaping the way we use the web.

The last update to the Hypertext Markup Language — the lingua franca of the web — was the 4.01 specification completed in September, 1999.

Quite a bit has happened since. The original browser wars ended, Netscape dissolved. The winner, Microsoft Internet Explorer 5, began IE6, which began the current IE7. Mozilla Firefox rose from the ashes of Netscape to take over second position. Apple and Google have released their own web browsers. The minority shareholder Opera continues to play the gadfly while pushing standards and software design forward. We even have a real web experience on our phones and game consoles, thanks to Opera, the iPhone and Google’s soon-to-be-released Android.

But all that progress threw the web standards movement into disarray. Ideas for HTML 5 and other developing standards were more or less left on the cutting room floor. As a result, HTML 5 has been in draft form ever since.

Several interested parties have banded together to form the Web Hypertext Application Technology Working Group (simply referred to as the WHATWG), an entity charged with picking up HTML 5’s pieces. It operates separately from the Worldwide Web Consortium (W3C), which oversees web standards, and it includes representatives from Mozilla, the KHTML/WebKit project, Google, Apple, Opera and Microsoft. And although the draft may not be ratified for years, work on HTML 5 continues.

So what does HTML 5 offer? Here’s a rundown of the most exciting advancements in the HTML 5 draft specification today:

  • A new, sensible tagging strategy. Instead of bundling all multimedia into object or embed tags, video goes in video tags. Audio goes in audio tags, and so on.
  • Localized databases. This feature, when implemented, automatically embeds a local SQL database websites can read and write to, speeding up interactive searching, cacheing and indexing functions, or for offline use of web apps that rely on data requests.
  • Rich animations without plug-ins. The canvas element gives the browser the ability to draw vector graphics. This means configurable, automatic graphs and illustrations right in the browser without Flash or Silverlight. Some support for canvas is already in all the latest browsers except for IE.
  • Real apps in the browser. APIs for in-browser editing, drag and drop, back button “waypoints,” and other graphical user interface abilities.
  • Content presentation tags will be phased out, and CSS will rule.

In theory, HTML 5 is a breeding ground for new ideas for web standards shared among interested developers and browser vendors. But it’s all still experimental.

“HTML 5 is kind of an overloaded term,” says Mozilla vice president of engineering Mike Shaver. “It’s both sort of an incubator (at WHATWG) and the standards-based track at the W3C.”

Mozilla’s interest, according to Shaver, is aligned with the experimentation at WHATWG. “We’re very active in the HTML 5 group, designing and doing early implementations on those specifications and the work graduates to the W3C.”

In the past year, Mozilla has released several forward-thinking projects aligned with the emerging standards, including Prism, a system for running web apps offline, and Weave, a data storage framework.

Shaver says the HTML 5 movement was born out of impatience. Many sensed activity around web standards was stagnating as the W3C started directing its attention away from HTML and to another emerging technology, XML.

“A lot of new architectures — XML based work — were designed to replace HTML in the web,” says Shaver. “We were really not convinced that was the way it should go forward. We don’t think people should be throwing (web technology) away to get (the web) to go forward.”

Experimentation is now going strong in Firefox and WebKit-powered browsers like Safari and Google’s new Chrome, but there are growing pains.

Chrome developer Darin Fisher says that while Chrome was under wraps, a few things had to go. Despite using the latest branch of WebKit (the same branch to be used in the next version of Safari), the local database features didn’t make it into Chrome’s first release. Unfortunately, the safety and performance factors of Chrome’s isolated sandbox system, which enables faster and more secure browsing by partitioning tabs in memory and CPU process, would break the built-in WebKit database functionality.

Because it was developing in secret, the Chrome team was unable to get too involved in WebKit development.

“We couldn’t be engaged in the WebKit community without being involved with keeping Chrome a secret,” Fisher laments. “We share one vision, and we’re really excited to help WebKit in some way. We have a lot of experienced web developers (at Google). It’s really interesting what kind of challenges people are facing. We can bridge that divide a little.”

With the launch of Chrome, Fisher says his team members occasionally have lunch with the WebKit team. Some are even personal friends. Fisher claims they are eager to work with the other WebKit developers to fix some of these offline functions.

Included in Chrome is the Google-born and now open-source Gears, a piece of technology used for the same purposes as HTML 5’s offline features.

“Gears has a lot of great value. It’s best thought of as an alternative API already out there,” says Fisher. “HTML 5 is great if you have a newer browser, but what about the vast majority of users that have an older browsers? Gears is a vehicle to make this API available to older browsers. We’re working to match HTML 5 versions of these APIs.”

Fisher stops short of labeling Gears a stop-gap to HTML 5. “Gears is very compatible and supportive of HTML 5. It is on a trajectory to become another implementation, another platform that is to put HTML 5 on people’s desktops.”

The majority of work thus far has been by companies like Apple (through WebKit), Mozilla, Opera, Google and Trolltech.

So, where’s Microsoft? Internet Explorer has been famously slow to adopt web standards, let along the experimentation of HTML 5. But the tide is shifting with the emergence of Internet Explorer 8.

“I’m really looking forward to the work we’re starting to do to ramp up building a test suite in the HTML Working Group,” says Microsoft Internet Explorer platform architect and WHAT WG co-chair Chris Wilson in an e-mail.

Wilson says the Internet Explorer team is still a little wary of some of the proposals in HTML 5.

“I think all the members of the Working Group, particularly the editor, would agree we still have a lot of work ahead of us to flesh out the specification,” wrote Wilson. “Parts of the specification, of course, are more polished that others.”

IE8, currently in beta, already includes several new features from HTML 5, he points out. It has a cross-document messaging system, the local data store for client-side storage, a way to insert back button “waypoints” into web history and some offline event features to detect network outages.

But some stuff isn’t on the drawing board. While Wilson says canvas looks like a useful feature, it’s not in Microsoft’s plan for IE8.

Wilson believes there’s definitely a future in the specification.

“HTML 5 is huge, and is still under a lot of development as a specification. I think that the browser implementers, though, are working together to try to agree as quickly as possible; each browser chooses when to implement what, though, and will bring pieces online as they determine their user and developer base need it.”

Web developers and browser vendors alike can agree with Wilson on one thing: “This is certainly an exciting time, and we’re really pleased to see the renewed interest in the web as an application platform.”

Browsers for mobile

A mobile browser (also called a microbrowser or minibrowser) is a web browser designed for use on a mobile device such as a mobile phone or PDA. Mobile browsers are optimized so as to display Web content most effectively for small screens on portable devices. Mobile browser software must be small and efficient to accommodate the low memory capacity and low-bandwidth of wireless handheld devices. Typically they were stripped-down web browsers, but as of 2006 some mobile browsers can handle latest technologies like CSS 2.1, JavaScript and Ajax.

The mobile Internet Explorer Web browser you get on Windows Mobile smart phones is less than desirable. It usually directs you to a mobile Web site instead of the full-blown interactive ones that we access on our computers. Sure, Microsoft has announced support for Silverlight and Flash in a new version of mobile IE by the end of the year, but we’re in the heat of the summer and December still seems light years away. Fret not, there are other options.

If you grabbed the new iPhone, you may be impressed with its 3G data speeds. But is Safari better than other free smart phone Web browsers out on the market? We put the Apple Safari browser running on the 3G iPhone head to head with Opera 9.5.1 Beta and Skyfire Beta (free for Windows Mobile phone users), to see which browser is fastest, and which offers the richest browsing experience.

We used an AT&T Tilt for both Windows Mobile browsers, and put it head to head against the iPhone while both had full 3G signals. Read on to see a video of the race head to head, results from our Web site tests, and our thoughts on each browser.

Browser NYT.com ESPN.com HULU.com Netvibes.com Flash AJAX
Skyfire Beta 6 (sec) 8 (sec) 9 (sec) 4 (sec) Yes Yes
Opera 9.5.1 Beta 60 (sec) 59 (sec) 28 (sec) 44 (sec) No Yes
Safari 29 (sec) 28 (sec) 33 (sec) 54 (sec) No Yes

Skyfire
Skyfire is, by far, the speediest of the bunch, and we love that it also supports Flash Web pages without a hitch. In fact, on ESPN.com it even loaded a Flash advertisement video on the side of the screen. We don’t like ads, but the fact that the page looked identical to the one on our computer display is quite impressive. When we loaded Hulu.com, we were able to start up an episode of The Colbert Report, but playback was far too slow for our tastes.

The browser supports Flash 9, Java, and QuickTime playback, too, but unfortunately it’s limited to a private Beta at this time. You can sign up by visiting Skyfire’s Web site and Skyfire will let you know when there is more room for beta testers.

Opera 9.5.1
Opera Mobile 9.5.1 may not be the fastest browser of the bunch. In fact, it is the slowest, but it offers features that Skyfire doesn’t. One such feature is tabbed browsing, which the iPhone offers as well. Opera Mobile 9.5.1 lets you have a total of 3 tabs open while you’re surfing (the iPhone allows eight) and you can choose to open links in another tab directly from Web sites.

You can also easily pan and zoom around Web pages, and it supports AJAX Web sites, but unfortunately, not Flash 9 content. It also allows you to save pages and images so that you can load up the New York Times, save it, and view it later riding the subway underground without a signal.

Safari
Safari is ideal for loading pages in landscape or horizontal view, and the iPhone’s accelerometer allows you to quickly switch between the two by simply switching the phone. But it’s perhaps best known for its pinch-zoom in and out feature, which makes zooming in on specific areas easy and fun.

The iPhone’s Safari browser supports AJAX, but not Flash 9, so you can’t play Flash games or view Hulu movies (and we don’t think Apple would like it if you could, either). The Safari browser performed well during our tests, but it wasn’t nearly as quick as Skyfire, which loaded most pages in under half the time it took the Safari browser to load them in.



A very interesting timeline of Browsers

See the evolution of old and new browsers, the way different softwares split from others in time only here: http://upload.wikimedia.org/wikipedia/commons/7/74/Timeline_of_web_browsers.svg

Friday, September 12, 2008

Nonstandard, light browsers

Why would you like to choose something else than IE8, FF, Safari, Opera or newly lunched Chrome? Well because you are extravagant, you're a geek, or simply beacuse you are loooking into something new and light for your system. Below is a list with some ultra light browsers still available:

Maxthon

Maxthon is a versatile browser that you can tailor to fit your web browsing needs. Customization options include the security settings, the interface layout, and useful plugins that you can download like a personal information management tool, decorative skins and the Google Toolbar.

Maxthon lacks a few features higher–ranked browsers offer including thumbnail previews, parental controls, a smart toolbar, and anti-phishing technology.

Flock

[Flock Logo] Flock is a “social browser” built on a Firefox core that integrates with web services for blogging, photo sharing, and bookmark sharing.

Services Flock supports include: Bookmarks sharing: del.icio.us and Shadows. Photo services: Flickr, Photobucket. Blogging: Blogger, TypePad, WordPress and many others.

  • Features: Web · Blogging · Photo Sharing · Favorites Sharing · RSS reader · Skinnable · compatible with many Firefox extensions
  • Import: All settings from Internet Explorer, Firefox, Safari.
  • Download Flock for Windows, Macintosh or Linux. Free.
  • Get Flock Banners.

Windows Browsers

K-Meleon

[K-Meleon Logo] Years before Firefox, K-Meleon was launched to create a lightweight web browser for Windows using the Mozilla core. K-Meleon's strengths are its speed and customizability.

Macintosh Browsers

Camino

[Camino Logo]This browser's slogan is “Mozilla power, Mac style.” Designed to bring Mozilla's technology into harmony with Mac OS X, Camino integrates seamlessly in a way that Firefox hasn't yet managed.

  • Features: Web
  • Import: Bookmarks from Internet Explorer, Firefox, Safari, Opera, OmniWeb, iCab, or generic HTML file.
  • Download Camino for Macintosh OS X. Free.
  • Get Camino Banners.

OmniWeb

[OmniWeb Logo] The first web browser released for Mac OS X, OmniWeb focuses on power features. Since version 4.5 it has been based on Apple's WebCore technology, the same engine used by Safari, with innovations such as thumbnails for tabs, auto-save sessions, and per-site preferences. “Sure, you can use a standard web browser, with standard features. But you didn't choose a standard software experience—you chose the Mac.” Includes RSS headline support.

Even if you're not a Mac user, it's worth reading through OmniWeb's features page just for the writing style!

  • Features: Web · RSS
  • Import: Bookmarks from Internet Explorer, Safari, or generic HTML file.
  • Download OmniWeb for Macintosh OS X. $29 with 10-day trial.
  • Get OmniWeb Banners.

iCab

[iCab Logo] Launched from obscurity as the first publicly-available browser to pass the Acid2 test (the first to pass was Safari, but only the in-development version), iCab is also the only modern web browser still built for Classic Mac OS.

  • Features: Web · RSS
  • Import: Bookmarks from Internet Explorer, Safari, Firefox, Opera.
  • Download iCab for Macintosh OS X or Classic. Free limited edition, $29 or €29 for iCab Pro.
  • Let iCab Smile campaign and banners.

Linux/UNIX Browsers

Konqueror

[Konqueror Logo] Konqueror is the web browser and file manager for the KDE Desktop. This highly customizable browser gained more attention when Apple selected it as the basis for Safari. Konqueror is tightly integrated with other KDE applications such as Kontact/KMail for e-mail, Akregator for RSS feeds, etc. (Konqueror can also run under GNOME or other desktop environments.)

  • Features: Web · RSS via Akregator · Email via Kontact.
  • Import: Bookmarks from Internet Explorer, Opera, Mozilla (and Firefox), Netscape, Galeon.
  • Read about Konqueror for Linux/KDE.

Galeon

[Galeon Logo] Galeon's slogan is “The web. Only the web.” It was one of the first projects to take Mozilla's rendering engine and focus on its original goal: web browsing. Galeon focuses on web features for power users. Built for GNOME, Galeon will also run under other desktop environments.

  • Features: Web
  • Import: Bookmarks from XBEL (Konqueror, Galeon), Mozilla (and Firefox), Netscape, Epiphany.
  • Download Galeon for Linux/GNOME.

Epiphany

[Epiphany Logo] Epiphany is designed for simplicity and speed. An offshoot of Galeon, it is the default web browser or the GNOME desktop. (Epiphany will also run under other desktops.)

  • Features: Web
  • Import: Bookmarks from Firefox, Galeon, Konqueror, Mozilla, XBEL or HTML file.
  • Download Epiphany for Linux/GNOME.

Friday, September 5, 2008

Browsering - surfing thourgh the browsers

I’m doing this blog beacuase I spend lots of time in a broswer.

Now I’m not going to just do a “review” of a browser.” Your all smart enough to do that on your own. Rather I’ll talk about some extensions, hacks, features, tweeks etc. Just try to give people some more info about a program they use… Another way to look at this is a podcast for power users.
The browsers I will be talking about will be.

-Firefox

*What most people use.
*Free
*Community development
*Very hackable if you are an expert or above average web user.
*First real browser to take a swing at IE other than Netscape.
*Faster than IE.
*More secure than IE.

-Opera

*BitTorrent built in
*Fast as hell.
*RSS feeds built in.
*Recently became free.
*Making an attempt to grow a real community.

-Flock

*The newest / youngest kid on the block.
*The younger brother to Firefox… because it is based off FF.
*a great browser if you do several blogs, and all ready play with some services.
*Bloggin built in — WordPress.com
*Flickr built in –to the blog thing.
*del.icio.us built in.
*Still in a dev release so still buggy.

-Safari

*The browser for Apple’s OS X.
*Has built in RSS.

- Konqueror

*A browser that comes on lots of Linux boxes.

-IE

*This is now in beta testing for developers.
-The PSP browser (if I ever get a PSP.)

Also because a browser is really nothing with out a web to browse I will also talk about aspects of the web on the show as well.