You know it’s essential to choose the right platform and tools for an IT project if you want the resulting system to be successful. Let’s take a closer look at some factors to consider when choosing the programming language you will use to write source code for your software.
Languages are Not All the Same
If you are multilingual, which of these languages would you choose to write an opera: French, German, Italian or Dutch? How about a love poem? Chances are that for each of those questions, one or two of the options stood out as suitable and one or two stood out as terribly unsuited.
As you plan what your software will do, some programming languages will be obvious misfits. Others will be appealing possibilities. You just need to decide among the ones that are appealing. Make a list of the answers to these questions:
- Will the software perform predictable sequences of activity, or unpredictable sequences?
- Must the software squeeze as much performance as it can out of the computer?
- Are specialized interfaces needed between the software and hardware devices (such as device drivers), or between the software and operating system (special hooks to operating system internals) or other applications (such as database engines)?
- Is the software a small, medium, large or very large application? Is it complex?
- What hardware platforms must the software be able to run on?
- What operating systems must the software be able to run on?
- Is availability of expertise an issue?
These are enough factors to evaluate for most projects. There may be more factors you want to include for your specific project. Next, see which languages fit your needs best.
Strengths versus Weaknesses
To the right of your list, add a column for each language under consideration. Go down the list of factors one at a time and apply a checkmark for each language that is well suited in regard to that factor. Get help about any language where you don’t personally know about its strengths and weaknesses. Your spreadsheet needs to be filled with factual information, not fads or personal feelings.
Language differences should jump out at you from the completed evaluation chart. Here are some traits that will help you fill out your chart:
- Languages that must be compiled and linked to generate an executable program, such as COBOL, C, or C++, make much faster-running software than interpretive languages such as the original BASIC or Java. These languages have to be recompiled and relinked for every target operating system.
- Interpretive languages such as Java or BASIC execute relatively slowly. Software written in these languages can be taken from one operating system to another with little effort.
- For predictable sequences of work, procedural languages make fast-running, compact programs with low overhead. For unpredictable sequences of work such as responding to human users in a windowed user interface, they are cumbersome.
- Object oriented programs are intended for unpredictable sequences of work. They take more overhead than procedural languages, so object oriented code tends not to run as fast as procedural software.
- High level languages are more easily read by people, simpler to debug, easier to maintain, and reduce the chance of such errors as memory leaks. These are languages such as COBOL, FORTRAN or PL/1. They are less flexible than low level languages such as C. High level languages cannot readily manipulate bits or directly manage hardware.
- Low level languages like procedural C or object oriented C++ can perform almost as “close to the machine” as a computer’s native assembly language. You can do nearly anything with low level languages. However, these languages are cryptic and do not include safeguards that are built into high level languages. That makes it easy for programmers to make such mistakes as memory leaks, and it makes software in these languages hard to maintain. The bigger and more complicated your software is, the more a high level language will save you from long term maintenance headaches.
After you finish filling in your chart, some languages will have more checkmarks than others. The ones with the most checkmarks, or with checkmarks by the most important factors, are your finalists. You might even be lucky enough to find all the finalists are similarly capable for your project. In that case, any language among your finalists will do, and you can pick the one among them that you find most comfortable.