I'm determined to write a solid reference on being a multi-lingual developer. The easy part is that there are lots of commonalities in languages and tools. The hard part is that sometimes they are so close that it becomes difficult to remember the difference. That is where this series comes into play - it should become a single source of information to help developers remain multi-lingual.
This series will cover the following languages, frameworks and tools ...
The above list already introduces a lot of concepts that need some sort of logical breakdown in order to keep track of it all. We have already introduced the concepts of language, frameworks or libraries, and development tools. (Typically refered to as IDE's (Integrated Development Environment)
Technically languages can stand on their own. In its simplest form a language defines the syntaxed used to create a text file of instructions that a compiler can turn into execuatable code. So if you were so inclined you could use a simple text editor to write a program, and then from a command line turn it into an application that will execute. There are several good tutorials on the manuy languages out there that demonstrate this capability - I'm not going into it any further.
One thing that is important to point out out this point regarding the languages I'm covering is that the compiler is designed to create an executable for its target machine. As you can imagine there are a LOT of differences between the various machines and operating systems, so making a program useful in various environments is difficult. The following are various major considerations that make up the many combinations of environments:
That is not an exhaustive list, but you get the idea. Two of the languages I mentioned above have a distict advantage in that they are designed to operate on a virtual computer, which eliminates much of the compatibility issues. These are Jave and C#. Objective C doesn't really have a huge issue to deal with because in the MAC world there is only one OS and Hardware source (Namely Apple) so there are a lot less issues to deal with to make sure your application runs where you desire for it to run.