Fork me on GitHub

Saturday, May 19, 2012

Why Google earns more from its ads

                     Google earns most of its revenue from online advertising. Despite the rise of Facebook, Linkedin, Quora, and a plethora of other websites and social networks, it's place in online advertising has remained unchallenged. Claims of Facebook being "the next Google" have been around for a while. But I seriously doubt whether those claims will come true in near future.

                   The investors' reaction to the highly anticipated Facebook IPO illustrates that many investors still feel that Facebook is a risky bet. They wonder if the company really matches the hype it generated. The closing stock price was $38.23, up just 0.61 from its starting price.
                   
                   So why does Google earn more compared to its rivals? Well, because, in the online world, the relevance of the ads matters. People use Facebook to connect with friends and family. They use Linkedin for developing professional contacts, but users do not visit any of the social networking sites to obtain information.

                   When you are looking for something, you still go to Google. And that's when you pay attention to advertisements that appear along with the search results. In contrast, you rarely notice the ads Facebook places on its site. This is partly due to the fact that engineers and graphic designers try to be discreet when displaying ads. But Facebook has become a bit too discreet in that regard. Also, in a social setting, where there are people to talk to and you are reading the updates of your friends, chances are remote of you following an ad.

                   The new move by Google to integrate all the data from its services to build a profile of its users is a master stroke. It leads to personalized ads. While this move has been a troubling one and Google has faced a lot of flak over this new policy, especially from privacy advocates, when it's seen through a financial lens, the move makes perfect sense. Online advertising is a great source of revenue only if people see and follow your ads. Otherwise, it's a loss.
 
                   Does this mean that Facebook cannot beat Google? It's hard to say. Especially because both companies are constantly innovating and finding new ways to retain users longer. Google's browser Chrome now is second only to IE and I expect it will become first soon. The Chrome web browser also leads users to the Google's site- Yet another example of how Google ensures that users visit its site.
 
   So, while Facebook has a huge potential with its treasure trove of data, Google still retains it's edge when it comes to ads. There is still a substantial way to go before Facebook can become "The next Google".


Tuesday, May 15, 2012

Pragmatic Programming can beat Vendor Lock in.


Programming is a tough job. Part of what makes it tough is the fact that programmers make other programmers depend on them. It's all  part of survival. Disruptive technologies emerge more often in software than in any other kind of industry. Back in 1996 and 1997, the first website people would visit when they opened their browsers was Yahoo!. Later Google came into prominence and captured the top spot. It remained there for many years. Now, that position is becoming precarious and facebook has emerged as a serious competitor to Google. Today, several websites are vying for the top spot. Youtube, twitter, Linkedin, MySpace, flickr, and so many more.

 We have only been looking at how the web has changed so far. But the story continues beyond that. Adobe's pdf documents are fast becoming commonplace. Google chrome is eating into the market owned by IE, Object relational and Object oriented databases are a looming threat to companies that sell databases that still follow the relational model.

So how does a company ensure that it will stay afloat even though it's rivals make better products? The answer lies in economics: Vendor Lockin. It is a terrible thing. The software vendors create specialised sections of code or incorporate unresolvable compatibility issues into their software so that it will be extremely hard to switch from one service provider to another. The switching costs for software systems will be so high for some systems, that even if the company wants to switch, it will not be ready to pay that huge a sum. Also, there is an increased risk while switching: the new software may require additional training and processes, special skills and so on.. All these factors prevent companies from becoming better.

Now, from the point of view of the programmer, what's vendor lockin? Simple: you use any special feature provided by your environment and your system will become dependent on that environment. Microsoft does it. Google does it and Apple has been doing it and a lot of other companies want to get in on it. They want to lock people in. They want to make their platform dominant. They do not want to lose out to a rival simply because the rival's product is better.
 Standardization is one remedy to the problem. But then, everyone adds their own extensions to the standards and they will be so different that vendor lockin inevitably results leading to a dependence on the provider's platform and ensuring that the provider continues to make money even if his product is lousy. Pragmatic programming is the way to go against this prison. Using open-source libraries and creating scalable and re-usable code that depends as little as possible on the host's system (if at all), and following the principle of separating the logic clearly from the implementation details can considerably reduce the penalties while switching. Programmers need to use all their skills to make the system as cross compatible, upward compatible and "switchable" to ensure they don't get trapped by the vendors.
Serious programmers always think in terms of re-use. They are the laziest people on the planet and want to put in as little effort as possible. Being lazy this way makes them efficient. So the next time you import that library, make sure it's not proprietary and if it is, look for a similar open-source alternative. In the worst case, at least make sure that it is available everywhere. After all, you don't want someone else to control your work.