Most of you would have read about the new and fast browser from Google called Chrome. I have always been amazed at how Google gives its own twist to a well established application paradigm. When they announced Gmail, I wondered how I was using an email application without conversation mode so far and immediately fell in love with Gmail. This time, it is Chrome. Geeks who tested it with Javascript benchmarks are stunned by the results from benchmarks. Everyday internet users who tried Chrome are not so impressed because it's not visibly faster than IE or Firefox for most websites. And that is because the Web is not yet ready for Chrome! Let me explain why.
It is an understatement to call Chrome as a browser. It is a mini operating system for running Web applications. So far, most of the Web applications have been running on the server side and used the browser only for display. Recently, there has been a push towards Rich Internet Applications (RIA) that use your browser's advanced functionalities such as Flash, Javascript etc to deliver desktop application-like complex feature set. Zoho and Google docs are examples of popular Office applications that run in your browser. This trend has just started and is growing. Think of a photo/image editing application as complex as Adobe Photoshop but runs in a browser and allows you and your friend (living in a different state/country) to edit a photo simultaneously across the Web. Think of a Movie editing application like Windows Movie maker that runs online completely. Chrome has been designed with such complex future applications in mind and that's why we don't see its impact right now.
Let me just touch upon the features of Chrome that make it suitable for such complex applications.
Application Isolation
Any complex application will have atleast a few bugs. Imagine that you are running a Photoshop-like application in one tab of IE/Firefox and a Powerpoint-like application in another tab. If the photo application crashes because of a bug, IE/Firefox itself will die and you will lose your (potentially unsaved) work in the presentation application. This is unlike a real OS environment where PhotoShop crashing won't affect PowerPoint application. Chrome provides such isolation by restricting the failure to just one tab and all other tabs will stay alive. There are very few websites that use Javascript heavily now. So, the impact of this will only be seen in future.
Memory Management
Any good Operating System will try to avoid memory fragmentation and reclaim unused memory effectively. Chrome does this by creating a different process for each tab and using a thorough garbage collection mechanism. Chrome comic book explains this clearly if you are interested. Yes, it will take up more operating memory than Firefox due to multiple processes but then Chrome is not just a browser. It's a platform for complex applications that will require lot of memory themselves.
V8 Javascript Compiler
As you know, Javascript is the language for creating client-side Internet applications. Normal websites will only have a few lines of Javascript. But truely complex applications could have thousands of lines of js code. So far, Javascript engines have always been interpreting the javascript code whereas V8 will compile it directly to the target machine code. Anybody who has taken a basic computer course will know that interpretation is much slower than compilation. Java, when it was originally introduced, was an interpreted language and it was dead slow. Later, they implemented Just-in-time (JIT) compiler and there was dramatic improvement (I have experienced the difference myself when I was working on a JVM). Now, Chrome has given Javascript the status of an advanced programming language! This will encourage developers to build Internet applications that will run much faster. Their Javascript application will run as fast as a C++ or C# application and it will also be able to collaborate effectively across the Web.
So, the next time you see somebody ignoring Chrome as just another browser, tell them it's not. Chrome is getting ready for the future of Internet. It's just that the Web is not ready for Chrome yet.
September 4, 2008
November 27, 2007
What can Semantic web do for you?
Hello everybody! It's been a long time since I visited my own blog and I am happy that my 941 readers are still subscribed to my feed! It was one of my newly acquired interests (or should I say craze?) that brought me back here. It's called Semantic web. Some of you may have heard the term from the startups lately that claim to bring Semantic web to reality. I have been reading a lot about Semantic web until I felt enlightened! So, I plan to write a series of introductory articles so that you can also appreciate how it can evolve the World Wide Web to next level.
Semantic web was proposed by the granddaddy of WWW, Sir Tim Berners-Lee, way back in 1999. Though academics have been thriving on it since then, developing standards and writing research papers, it took so many years for business folks to assimilate his wild ideas and gather courage to start companies. So what was so wild about it? He was proposing that we should transform the web completely so that machines can browse and find answers to all sorts of complex questions like "How long will Angelina and Brad stick together?". Quite crazy, ain't it? But if you take a closer look, he isn't that crazy (I am talking about Sir Tim :)
Today's web is a large collection of documents that are linked to each other. The hyperlinks have keywords that help you find what the link is about. All he said was "Hey, let's do the same for all our data, that is, put them on the web in a machine readable form and link them together to form a Web of data". So, what can machines read and process? If you write "I am 20 years old" in your blog, only you and I can understand it. But if you use XML to represent it (for ex. <age>20</age>), a piece of software code could understand it. XML is good for representing structured data but it ain't good enough for Semantic web. Why?
Two reasons:
- XML does not clearly identify the subject and object of the fact that it is representing.
- XML does not have unique identifiers that can be used to link data from multiple websites.
To handle these shortcomings, Sir Tim and people who liked his idea proposed a standard called Resource Description Framework (RDF). Data about all kinds of resources like People, Places, Documents, Products etc can be represented in a "subject, property, object" triple format and each resource will have a unique identifier. For example, the sentence "Jane is located in Paris" can be represented by a triple (Person:Jane, location, City:Paris). Person:Jane and City:Paris are the unique identifiers. This is a fact that Jane can declare in her website using RDF.
Let's say another public service provides the mappings between cities and countries and it has the fact that "Paris is in France" (City:Paris, country, Country:France). Then a software agent that processes both RDF triples can link them together and infer that Jane is in France. This is just a simple example of linked data. There are a lot of such public data that can be represented in RDF. DBpedia is a project which extracts such data from Wikipedia and stores them in RDF and also links them to other RDF data.
RSS feed is one of the major advances in Web due to such machine readable common data format. Long gone are the days when you need to visit your favorite blogs and news sites everyday to check new content. With feeds, you are notified of all the new content in one place - your feed reader. This has been made possible because several blogging providers and webmasters agreed upon one format for syndication. That's the power of convergence that Semantic web can exploit further. Some of the semantic web software agents that you can expect in future are:
- a travel agent that can book your vacation package on your behalf by obtaining your favorite destinations, preferred dates, budget etc and automatically searching through online travel sites to pick the best deal.
- a shopping agent that you can personalize to search for products on your behalf. Once you provide your preferred brands, price range, features etc for, say, Camera, Laptop, it will search for matching products in various online shopping sites and notify you about them everyday.
- a dating agent that can help you identify your dream girl (based on matching interests, location, age etc) no matter whichever social networking site she is in.
Did I make you dream? Then, I have succeeded in my attempt :) Let me know your comments and opinions (I have re-enabled comments in my blog).
Next up: What can YOU do for Semantic web?
Semantic web was proposed by the granddaddy of WWW, Sir Tim Berners-Lee, way back in 1999. Though academics have been thriving on it since then, developing standards and writing research papers, it took so many years for business folks to assimilate his wild ideas and gather courage to start companies. So what was so wild about it? He was proposing that we should transform the web completely so that machines can browse and find answers to all sorts of complex questions like "How long will Angelina and Brad stick together?". Quite crazy, ain't it? But if you take a closer look, he isn't that crazy (I am talking about Sir Tim :)
Today's web is a large collection of documents that are linked to each other. The hyperlinks have keywords that help you find what the link is about. All he said was "Hey, let's do the same for all our data, that is, put them on the web in a machine readable form and link them together to form a Web of data". So, what can machines read and process? If you write "I am 20 years old" in your blog, only you and I can understand it. But if you use XML to represent it (for ex. <age>20</age>), a piece of software code could understand it. XML is good for representing structured data but it ain't good enough for Semantic web. Why?
Two reasons:
- XML does not clearly identify the subject and object of the fact that it is representing.
- XML does not have unique identifiers that can be used to link data from multiple websites.
To handle these shortcomings, Sir Tim and people who liked his idea proposed a standard called Resource Description Framework (RDF). Data about all kinds of resources like People, Places, Documents, Products etc can be represented in a "subject, property, object" triple format and each resource will have a unique identifier. For example, the sentence "Jane is located in Paris" can be represented by a triple (Person:Jane, location, City:Paris). Person:Jane and City:Paris are the unique identifiers. This is a fact that Jane can declare in her website using RDF.
Let's say another public service provides the mappings between cities and countries and it has the fact that "Paris is in France" (City:Paris, country, Country:France). Then a software agent that processes both RDF triples can link them together and infer that Jane is in France. This is just a simple example of linked data. There are a lot of such public data that can be represented in RDF. DBpedia is a project which extracts such data from Wikipedia and stores them in RDF and also links them to other RDF data.
RSS feed is one of the major advances in Web due to such machine readable common data format. Long gone are the days when you need to visit your favorite blogs and news sites everyday to check new content. With feeds, you are notified of all the new content in one place - your feed reader. This has been made possible because several blogging providers and webmasters agreed upon one format for syndication. That's the power of convergence that Semantic web can exploit further. Some of the semantic web software agents that you can expect in future are:
- a travel agent that can book your vacation package on your behalf by obtaining your favorite destinations, preferred dates, budget etc and automatically searching through online travel sites to pick the best deal.
- a shopping agent that you can personalize to search for products on your behalf. Once you provide your preferred brands, price range, features etc for, say, Camera, Laptop, it will search for matching products in various online shopping sites and notify you about them everyday.
- a dating agent that can help you identify your dream girl (based on matching interests, location, age etc) no matter whichever social networking site she is in.
Did I make you dream? Then, I have succeeded in my attempt :) Let me know your comments and opinions (I have re-enabled comments in my blog).
Next up: What can YOU do for Semantic web?
August 1, 2007
New look, new feature at Vibes
Vibes is back in business with a new look and a new feature. The new look is inspired by Aditya's earlier work and I thank him for that. The new feature is Integration with Google reader allowing you to easily import your shared items into Vibes. The idea is to collect interesting news/blog items shared by everyone while reading their daily dose of feeds and bring out the items liked by many. For more details about importing, please read this. Please note that the previous method of submitting blog post URLs is also supported.
If you are using Google reader for your feeds, I encourage you to try this new feature and contribute to the website. In future, I will add support for importing Bloglines/Newsgator clippings and shared items from other feed readers which support sharing. Vibes can serve as a feed sharing portal by integrating with many feed readers.
If you are using Google reader for your feeds, I encourage you to try this new feature and contribute to the website. In future, I will add support for importing Bloglines/Newsgator clippings and shared items from other feed readers which support sharing. Vibes can serve as a feed sharing portal by integrating with many feed readers.
Subscribe to:
Posts (Atom)