Monday, April 29, 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.






Friday, April 26, 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.

Tuesday, April 23, 2013

News about the Web Browsers Market

The web browsers world has introduced us with some new key players during recent years: till about 2005, we were used almost completely to Internet Explorer, without being even aware to other options. But then, the Mozilla association woke up to offer us Firefox and then Sergei Brin's crew also did the same. In parallel, an emerging smart phone browsers market introduced us to new players like: Opera & Android browser.

Let's have a look at the share each main browser holds in the browser market:




1. Internet Explorer - 45%. This means that this portion of users uses primarily (even if not solely) one of IE versions.



2. Mozilla Firefox - 30%. This figure surely reflects a vast expansion of what used to be a marginal browser some 5 year ago. It happened much because of the vast add-on gallery the browser offers, which makes the browsing experience much more entertaining.



3. Google Chrome - 20%. Frankly speaking, it's not very surprising that a brand new browser (issued in 2009) has already gained a respectable proportion of the market, taking into account that its producer is the world's main searching tool, making it visible to almost every web user.

The figures mentioned above depict a simple picture: we have a tough competition between 3 main browser that probably will fascinate us in the coming years.

In the mobile phone browser market, the figures are such:

1. Opera - 22%. This browser is primarily structured for mobile phones, and its development platform (the environment where developers code the applications for the browser) simulates the functioning on mobile phones.

2. Android browser - 17%. as Android is Google's merchandise, it has a significant "push forward" from its owner. so no wonder why it has gain territory recently.

Saturday, April 20, 2013

Your Laptop Battery - Things You Should Know

Your Laptop's Battery - a Few Important Points to Remember Your battery is low again, ah?? Here's a pack of small details you probably don't know yet, and might be helpful for you:

1. What's better : keeping the laptop plugged in to the power socket or letting it get empty and recharging it ? most of you might jump and say "sure, keeping it plugged in". Wrong! the battery is like a muscle, if it gets some training, it preserves its potency. If it's always fully charged, it gets older very fast.

2. If you think that after some 6 months with the laptop, the battery holds for less hours than when it was brand new, you're absolutely right! To know exactly how much capacity the battery has lost, you may use the following software: http://download.cnet.com/BatteryBar/3000-2094_4-10866804.html




3. Along the laptop's life, the power meter (this little meter that tells you how fully charged is the battery at the moment) gets less & less accurate. This may cause you problems like: sudden shutting down of the laptop while doing something important. You can fix this issue by "recalibrating" the battery.
How to recalibrate:
a. Charge your battery completely. Then,wait 2 hours with the laptop plugged in.
b. Drain the battery completely (till the laptop turns off). Then. wait 5 hours.
c. Charge again the battery. Now, the power meter should be more accurate.

4. When is the appropriate time to dump your battery and purchase a new one? Experts claim that it's recommended to keep the battery while it's at least 25% of its original strength. Below this point, the battery can't give you a reasonable service.

Summary - the battery is the laptop's #1 headache, but using the points I've mentioned, might prevent this pain from becoming a migraine..

Wednesday, April 17, 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!

Sunday, April 14, 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.






Wednesday, April 10, 2013

How Computer Geeks Become Such?..






This morning, while still half-asleep, I was wondering - how do geeks become programmers, you know - those pale people who lean on their monitors and make the computer (and the smart phone) work.


So I browsed the web and collected some prevalent reasons.  If one of you knows of another good reason to become a coder,  this is the place  to share:



First, many programmers start their practice while being teenage computer freaks. They start somehow reading some basic  programming books  and start creating codes, and oops.. get hooked and enslaved for good.

Second, some programmers like the idea that what they create may be relevant to almost every aspect of life: technology, media,art,sports,social life,politics, finance and many more.  It's the only technical field which deals with people in depth and not superficially. 


Third, many software developers switch their occupation from another engineering field (especially Electronics), due to employment constraints or natural advancement.   Those professionals are trained to other engineering/scientific fields, work for several years in the mentioned occupation, and 'cross the road'  to software development.

Fourth, undergraduates in many countries are drawn to this field because it allows them a higher living standard than most other occupation in those places.  This is especially relevant to countries in Eastern-Europe and Latin-America, where the job market prospects are relatively limited so programming may be very attractive to people with high technological abilities.


Sunday, April 7, 2013

And The World's #1 Programming Language is...






Knowing what are the most popular languages in the industry can tell you if  your hunch is right, and you indeed code in one of the promising platforms...

The data presented here reflect the number of jobs offered (mainly in North America & western Europe) in a mentioned platform.   It can't reflect the quality of a programming language nor the difficulty of the daily work with it.  Only the number of jobs.


1. Java -  Java is currently the  most popular programming language and hires nearly 20% of the software developers(data: TIOBE).
Java is used in developing complex dynamic web applications, network programming and robotics.   JSP(Java Server Pages), Servlets(Java programs that is executed on server side, and often used to process the client request) are the most popular java technology among web developers.
this excellent and diversified  language was developed in the middle 90th and hires about 9 million developers around the world. 
 This means that this an ocean of application written in Java, and this means there is an ocean of software requiring maintenance and modification.   Java is the language in which developers write Google  mobile-phone Android OS applications.  android OS even supplies an API in order to assist developers. 


2. C   -  Hires about 15% of the software developers.   This ancient language was developed in the early 70th, designated for system application development (operation system program).  It has developed to embedded software (in electronic devices) and recently to mobile phone applications.  C exactly comes between the Assembly language and object Oriented language such as Java.

3. C++  -  Hires about 10% of the software developers.  The language was developed in the late 70th as an enhacement  to C and was initially named "C with Classes".

It is widely used for development of system application, device drivers, embedded software,  server-client applications and entertainment application (graphic games, video games).


4. C#    -  Hires about 8% of the software developers. It was developed as a part of the .NET platform (of Microsoft) and was designated to be parallel to PHP functionally.

In recent years, it has become a standard language and not just a usable on .NET platform. Some viewers consider it as an improved Java.  

5.  PHP  -  Hires about 6% of the software developers. PHP is is the most widely used scripting language over the web.  

This script language runs on the server in web applications. It can also be used for command-line scripting and client-side GUI applications.  It's compatible with most servers, most operation systems and most relational-databases. 


Thursday, April 4, 2013

Programmer Job Market - What's Next?

The #1 question every software professional needs to ask himself is : "Where's the heck I'm going to in the near future??". Software is a quickly changing world, where hot fields today may become irrelevant in a couple of years. Thus, a software professional can't afford neglecting this question, at least if he really wants to stay around for long years.

So where's the hot point: what are the most promising fields in the industry for the coming years.

1. Java - the most popular programming language in the world today, with 20% of developers using it as a primary language. This means that millions of applications are going to need updating and maintenance in the coming years.

Additionally, Java is useful for making desktop applications as well as web applications.

2. PHP - is a language for server side web pages. i.e when you load a web page, some of the operations are performed on a server. PHP is used now by millions of programmers around the world, many of them freelancers.

It's free-to-use ("open source") and enjoys an extensive online support.

3. HTML/Javascript/CSS - these languages (not exactly programming ones, but let's ignore that) are used to simply build the user experience of a web site, i.e. the side of the site which the user can see. Obviously in an era of Internet, mastering these languages is extremely important in order to stay relevant in the industry.

For a programmer, not to know HTML or Javascript is like for a doctor not to know resuscitation.

Summary - don't be indifferent to market trends, because you'll find yourself out of business some day.. I hope this short article will make your day a bit better..

Monday, April 1, 2013

IPad - What Do You Need It For?


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.