There are numerous factors to consider when selecting an appropriate programming language for a specific project. For some projects there will be little choice due to the nature of the targeted environment and device.
When choosing a programming language a variety of different criteria should be considered including: - The nature of the project.
- Different languages are suited to the solution of different types of problems.
- An artificial intelligence application will be suited to a different language compared to software to run an online store.
- The best language to write a low level hardware driver will be very different to the best language to write a platform game.
- Research is required to determine the most suitable language for the type of software project.
- including hardware, operating system and network use has a large impact on the most suitable language.
- There are interpreted languages designed for use on web servers and others which operate within client web browsers.
- Some languages compile down to an intermediate code (such as Java’s byte code) and will execute on multiple different operating systems.
- Other languages or language variants are designed for smart phones or tablets.
- The experience of the programmers.
- It takes a significant amount of time and effort to learn a new language and to become an expert requires experience which can only be obtained over time.
- Therefore, it is often better to select a language the developer’s are already familiar with rather than choose a new language despite the new language being more appropriate for a particular project.
- Event driven or sequential approach.
- Software applications which require a graphical user interface (GUI) often use an event driven approach.
- This means subroutines within the software execute in response to events initiated by the user, such as clicking a button or selecting from a menu.
- Other events such as an incoming network message or a sensor detecting movement are also events the system can detect.
- The design of event driven code is different to sequential code as there is no definite start and end.
- A sequential program has a single start, the processing commences and then finally the program ends. The code controls the order of execution, which includes directing the user through the logic.
- Event driven programs are controlled and led by the user. As the user initiates commands the program runs the code associated with that event.
- Does the language encourage or enforce good practice in terms of well structured and self contained modules which are easy to maintain and reuse?
- Is there a large community of programmers and a large library of code which can be examined for ongoing support?
|