Wednesday, June 29, 2011

The World's Most Popular Programming Language

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. 

Friday, June 17, 2011

Java's Advantages over C#

Recently I've had an argument with myself about which language to use for combined desktop & web application. After a few sleepless night, I've come to the decision: Java. The main advatages that I've seen in Java compared to C#.NET are the following:



1. The amount of reference resources (i.e. solution to problems one may find on the web) is several times the amount of reference for C#. The reason for this feature is that Java is based on open-source & community mutual help, whereas C# is based on the proprietary .NET framework, which means that Microsoft is supposed to supply the main portion of reference and developers are less likely to participate in help forums.

2. Java is the main flatform for cell-phone applications, whereas C# seems quite irrelevant for this field. As an independant developer, it might be irresponsible to neglect the cell phone field, by abandoning every possiblilty of creating such applications.

3. Java is free whereas C#.NET costs $500-$1000. It may be insignificant to firms, but for individual developers it's not always so. Furthermore, I believe that psychologically it's easier choosing a language platform which one is sure is going to be free for the years to come and for the versions to come.

4. C# seems to be very web-oriented, which means that it's mostly used for web applications. Java seems to be used for a larger spectrum of applications. This may be imporatant for a developer who can't see his/her future mainly in the web development field.

5. Java is a cross-flatform language, which means that every application developed in Java should be comapatible with every operation-system in the market (Linux, Apple OS etc.). C# is basically limited to Windows computers, so by using it, a developer loses much of the distribution potential of the developed product.

To summarize - as an independant developer, I just can't afford a language rellevant only to Windows, taking into consideration the increasing market of cell-phone applications and the Linux arena.

Monday, June 6, 2011

C++ vs. C#

Ladies & gentlemen, my dear readers - today I'm going to discuss the tough rivalry between the veteran C++ and its Microsoft counterpart C#. When shall we opt for the first and when we should favor the second.

A little beat of history - C++ was issued back in 1983 as a supplement to the C language, and its main topic was to add object oriented programming (OOP) capabilities to C. It was meant to b e used for creation of DOS applications (Windows wasn't reality then). C# was issued by Microsoft in 2002, as part of the .NET platform, which was meant to be Microsoft software development platform. Later on, it became a standard language (not necessarily usable just on the .NET platform).



So when shall we use the old (& good..) C++ when developing a new application? the answer lies within the basic purpose C++ serves: a medium-low language which is meant to deal with the hardware of the computer. We have to bear in mind that C++ was invented for DOS, and the software for DOS had to deal directly with the hardware (DOS wasn't as sophisticated as Windows). The conclusion is that we should choose C++ for applications manipulating directly the hardware, such as:

1. Security & privacy software - antivirus, anti-spam, anti-keyloggers.
2. Computerized graphics - 3D applications, image processing, video streaming.
3. Drivers - for printers,scanners,cameras,keyboard,mouses,USB devices.
4. Communication protocols - HTTP, TCP, SSL, SSH.
5. Operation systems applications - programs that encrich the functioning of the operation system.


As we can see, much of the software world isn't mentioned above, and this is exactly the portion of software applications we can conveniently develop in C#. C#, in its basic definition, suits application development which doesn't involve in the computer's hardware much and which is designated for use mainly on Windows operation system. C# is also suitable for web programming (i.e server side scripts), so mastering C# helps both in desktop applications development and in web applications development.