Thursday, February 28, 2013

Desktop Applications - The End?

Recent years have seen a gradual transit from desktop applications (such that are installed on the computer) to web applications (such that reside on a web page).



Why should we think that the web is about to take the primacy in the software world?
First, the social networks niche which has become the most popular use of the PC, taking captive tens of millions of enslaved fans who actually live online.

Second, the growing capacity of the web of hosting large size data platforms, like: file-sharing platforms (i.e Emule) or video-sharing platforms (i.e Youtube).

Third, Rich Internet Applications (RIA), like: Flash or Silverlight, that give the user graphic quality equal to that of desktop applications.

Forth, users nowadays prefer logging in to their applications from everywhere (including mobile phones), so applications that are attached to a PC frequently may be conceived as old-fashioned.

So why are desktop applications still with us? I can think of a few reasons:

First, the power of the habit: people are used to downloading stuff to their computers, and among computer geeks or gamers downloading is simply a ritual. An entire industry of downloading and file-sharing is still alive and in full strength.

Second, the physical network (the communication lines) are way behind the size of data which is needed to go through them, especially in developing countries. This means that heavy applications get stuck in the way, giving desktop applications a chance of remaining relevant.

In short, the web becomes more and more dominant within the PC use and the desktop applications will become more and more expandable, but this process may take decades.

Do you think differently? Tell me!

Tuesday, February 26, 2013

Developing Countries Software Developers - on Their Way to Rule the World?




The pacific is small compared to the ocean of debate that has been held during the last decade concerning the possible evaporation of software development jobs out of western economies in favor of technologically developing economies (mainly India).

The main argument feeding that state of mind says that hiring developers in India (and other developing countries) in much less expensive than hiring personnel in developed economies. Let's have a look at the average annual hiring costs of software engineers in several countries:

Australia: $180,000
Canada: $155,000
Denmark: $146,000
United Kingdom: $145,000
United States: $130,000
Spain: $95,000
Poland: $50,000
India: $50,000
China: $36,000

Fine,now we all know that basically it's much more economical to close down your office in the the Silicon-Valley, Toronto, London (let alone Sydney) and move to the golden mines of Bangalore, Kiev or simply Beijing.

So why do you: Jeff, Philip. Francois, Jorgen and Kylie still employed? I guess that the decision-makers in high-tech firms also take into account the following arguments:

1. The hiring costs in developing countries rise constantly and quite sharply: about 10% annually. This means that by 2020 (if the trend continues), the hiring costs in India should be around $130,000. I assume that this trend deters mass transition of western firms to developing countries.

2. Mental gaps between continents may be excruciating: the mainstream cultures in the US, in W. Europe or in Australia are almost upside-down compared to those in most Asian nations, and those nearly reversed cultures should work together on a daily basis. Many decision-makers wouldn't take the risk.

3. Telecommuting is a fantastic idea, but most decision-makers just can't bear the possibility of not controlling face-to-face their employees, especially those involved in the core development of products. Let alone when the employees are located across the ocean.

4. Local patriotic concerns - many decision-makers can't come to terms with the idea of firing local employees in favor of foreigners, and do their utmost effort to avoid such steps. They know that they might meet the employee they fire at the local mall.

5. Disrespect for personnel in developing countries - Many decision-makers don't actually believe in the professional abilities of Programmers in developing countries, and tend to believe that the gap in the costs should materialize in gap of quality.



Conclusion - There are some decisive constraints on the move of software development to developing economies (primarily India). In my opinion, the large majority of software development is about to stay where it is today.

We should bear in mind that cultural changes (including organizational changes) take generally generations to take root. Think of how many services we can acquire on the web but still use the services of a professional: travel agents, matchmakers, newspapers, libraries and many more.






Sunday, February 24, 2013

Cloud Computing - is it Rainy Today?..





The term basically refers to performing computing activities online instead of offline (using the computer's hardware).  it means that individuals  or organizations lease remote  memory space and software , that are stored away from their physical location, and use them through the internet.  
The basic advantage of this model is that the customer doesn't have to purchase in advance software or memory space, but purchases them on demand only and for the extent he/she may need.   This feature often saves a significant portion of the computing costs of an organization.

The basic types of service available on Cloud Computing:

First, Sotfware-as-Service (SAAS), which refers to the use of computer programs installed on the supplier's servers, and the user makes use of them through the internet.  Prominent SAAS software examples: Gmail, online gaming.

Second, Infrastructure-as-service (IAAS), which refers to use of memory space of the supplier by the user.  Prominent examples: site hosting, backup storage.

Third, Platform-as-Service (PAAS), which refers to the use of developing platforms by the user in the process  of writing and testing software, such as: Linux emulators, online compilers.

The financial cost reduction using Cloud Computing derives from several factors:

First, no need of purchasing expensive hardware devices, such as: servers.

Second, no need of purchasing in advance expensive software products, such as: operating systems, Integrated Development Environment (IDE).

Third, no need of hiring local maintenance experts for the software and hardware.

Fourth, no need to deal with disaster relief procedures, as the supplier deals with it.

Fifth,  no limit of resources availability.  for example. if there's a shortage of memory space, there's a possibility of purchasing additional small size memory.

Sixth, no dependency on a specific location where software products are installed.

The shortcomings of Cloud Computing can be roughly divided into the following:

First, dependency on the supplier.  The latter may run bankrupt or have many operational failures. In such a case, the user can't do anything to prevent his own setback.

Second, possible security holes regarding the employees of the supplier, who may cause damage to the user's data.

Third, difficulty in communication between software products which are located on  many different servers.  For instance, SQL database that has to communicate with a web script held on another server.



Fourth, difficulty in managing software platform without the ability to access the hardware (because it belongs to the supplier).  For example, running a disk compression may be necessary for a software running but the user isn't permitted to do that.

Prominent Cloud Computing suppliers include:

1. Elastic Compute Cloud (EC2) of Amazon - The most well-known service, which allows memory space & infrastructure software  leasing.
2. App Engine of Google, which allows development & testing of Java/pythons application on remote servers.
3. Azure of Microsoft - which allows mainly platforms for online development of software.

Summary, Cloud Computing is here to stay, but due to its vulnerability concerning security, I believe that the move of organization to work with this model is going to take more than a few years.

Friday, February 22, 2013

Smartphone - in What Ways It's Better than Other Mobile Phones?

The term "Smartphone" refers to mobile phones intended for a relatively complex use compared to "ordinary" mobile phones. The smartphone is actually a mini computer capable of functioning as a telephone.

We should bear in mind that the mobile phone "plague" started around year 2000, and then it was a revolutionary change to be able to use a mobile phone from everywhere. Now it seems quite odd to meet people who don't possess some kind of a mobile phone.

The basic use of smartphones is based on a fast & reliable internet connection: most of the use (other than phone calls) is to websites or web services. Without the web, smartphones are simply useless.

An example to a funny use of smartphones: you're at a party and there are around you about a hundred people. Ooops..your eyes get focused on a 25 years old cute girl. What do you next? you enter a forum of people you know and start sniffing about that girl. Geeky but useful..



So, what are the advantages of smartphones over ordinary mobile phones?

1. Smartphones are actually computers, which means that using them is as intuitive & simple as browsing the internet. Everything is done using a touch screen, without the need of pressing buttons or keys. This also means that listening to music is way more enjoyable than doing so using an ordinary phone.

2. There is a huge market of applications that you may add to your smartphone, and by that enhance its capabilities. Services such as "Android Market" or "iPhone App Store" offer millions of applications for simple downloading.

3. Smartphones can actually browse the internet. That means that you can enjoy a browsing experience similar to that of a personal computer. Ordinary mobile phones offer only a basic browsing capability, which is much slower & graphically limited compared to smartphones.

Monday, February 18, 2013

Free Alternatives to Microsoft Office


Ladies & gentlemen, my dear readers!

Today I'm going to talk a beat about the new born baby - Apple's iPad. Who really needs this toy and what can it really do?

1. Reading articles or books - iPad's screen is large and clear enough to let you read web articles, e-books or PDF/Word documents. You'll not have to ruin your eyes or suffer in any other way.

2. Games - There's a reasonably wide variety of games for iPad and it can be a substitute to game consoles (like Nintendo) for light-gamers. However, it's early to relate to iPad as a substitute to the desktop PC.

3. TV & movies - you can watch TV or videos in a reasonable quality. I wouldn't bet on it replacing your 50 inch plasma TV, but as a little TV it can do great.

4. Presenting presentations - if you need to present Powerpoint presentations outside your office or something similar, the iPad can replace a laptop and make it easier for you.

5. Basic web usage - it can replace a laptop in basic web functions, like: email, Facebook and more. It doesn't suffer from special communication troubles that may harass the web usage, and the screen is large enough not to cause you much misery.

6. Long usage without battery charging - iPad can reach 10 hours of active usage without charging, which is much longer than an average laptop.



The downsides of iPad must be taken into account:

1. iPad's screen isn't successfully suitable for usage outdoors, and you may suffer from using it at the beach or at a picnic.

2. iPad was created by nerds and it's itself a nerd: smart,skinny and fragile. Daily usage by young kids or messing otherwise with it should make its days shorter & shorter.

3. iPad isn't widely perceived as an attractive instrument, and its functionality is much better than its looks. So it might not be the ultimate purchase for making you cool.

4. iPad (as an Apple product) doesn't support Flash, which may be a nuisance for some users.

5. Above all - iPad isn't a PC: which means that you shouldn't expect it to be more than it's meant to be: a partial substitute to a laptop.