.

Wednesday, February 27, 2019

Influential Factors in Choosing a Programming Language Essay

* To booster Gary arrange decisions about which actors line to use up, you argon asked to provide Gary a controversy of key factors and their importance in choosing a programming language.Overview of ReportWhen its time to develop a bracing program, the first thing that mustinessiness be considered is the decision on what programming language to utilise. This is important beca aim changing the program midway finished completion is very difficult to achieve, and depart often require a vast rewriting of decree. There be a number of issues that pass on influence this decision, and these argon* Organisational policy, suitability of the language, the accessibility of trained staff, how reliable the program is, cost of exploitation and maintenance, expandability of the language, and interoperability with another(prenominal) languagesOrganisational insurance policyAll organisations go away fork out policies (methods of practice) dictating that they pass on operate under contract conditions. A policy of developing applications using one particular language whitethorn come from historical use, and a foundation of previous culture tools (such as IDEs) for that one language. (M Fishpool, 2007, p.156) To deviate to using another language may in that instance not suffer sense to the hierarchy of the organisation.This may ring particularly true if the organisation has established a kin with a particular vendor, such as Microsoft. Maintaining a link with this union may be rewarded with better subscribe and discounts. (Anderson, 2010, p.166) On the other hand, maintaining the use of a particular piece of software (such as Microsofts IDE ocular Studio) would limit language choice to those that suit that companys interests. another(prenominal) choice they may pursue is to utilise open source software, which brings its deliver benefits and disadvantages. Open-source software does not offer personalised expert support and relies on an unpaid, potenti ally unreliable enthusiast community to provide these ascendants, precisely is usually free to use.SuitabilityBuilding a program in a language unsuitable for its mean task provide answer big problems down the line, which is why understanding the applications technical requirements is important. The first thing to consider when making a program is what the intended platform will be. This could be computer setups such as Windows, OS X, a Linux-based OS, a web-based application, a smart phone-based app or the option to be platform agnostic could also be desired. Languages that are built to be natively run on one platform ( analogous C++) will be more than effective in completing intensive tasks, just twist a program in coffee tree convey that the application will work the same way on any OS with the Java Runtime Environment (JRE) software installed (Oracle, 2011). The complexity of the program will also prompt whether a procedural or object-oriented language will be chosen, as is whether appropriate features are included in the chosen IDE. (Anderson, 2010, p.166)Availability of practised StaffIf a language is popular and used widely (such as Java, C, or C++ (TIOBE, 2011)), then there will be more professionals that are able to code in it than there are for slight popular languages. Therefore, choosing a popular language will make it easier to call down personnel for a new project. Also, looking at what languages the organisation has historically used, the kind of hardware installed, and what skill sets existing useees incur will have an impact in this decision.ReliabilityA program becomes unreliable when how it will deal with data becomes unpredictable, and this is what can cause programs to crash. This is why some languages, like adenosine deaminase, are created with an emphasis on features that make them less likely to crash. (Anderson, 2010, p.166) The silk hat way of ensuring that code is predictable and reliable is to use a exact language, which is one with a strong attribute system. A strong type system specifies restrictions on how values of different data types (such as integers and strings) are allowed to be intermixed, and stops the source code from compiling if it thinks data is beingness incorrectly mixed. This provides a guarantee about how the program will carry when it starts running. (Wikipedia 2, 2011)Development and Maintenance CostsPart of the idea of planning the growing of a program also includes the costing of the entire project. In rear to do so, we take into account the length of time each developing stage will take, and what resources will be pick outed at which point. A lot of resources are spent before the first line of code is even written to make sure that the language and IDE we choose will be the most suitable and acceptably reliable, because choosing an unreliable solution means more money spent in maintenance costs. (M Fishpool, 2007, p.155) Also, rather than solely creating error fi xes, maintenance is also about how the program acquires post-deployment, as suggested by Lehmans Laws. (Wikipedia 1, 2011) Therefore, how much of the overall budget will go towards the phylogeny of the application needs to be taken into account.ExpandabilityExpandability is about planning the grand term future of the program. Programs in active use will seldom cease to be updated following its first release. It will usually evolve beyond its original specification and require more features to be added, or be asked to process more data. If this is the case and the program is not well expandable, a lot more time and money than necessary will need to be spent on rewriting code or porting it to a different language. For this reason, object oriented languages are popular because new features can be bolted on as additional classes. (M Fishpool, 2007, p.156) If this is not a concern, a procedural language can be used instead.InteroperabilityThe aim of several languages may dictate whe ther a language needs to be interoperable. Interoperability is achieved when programs coded in different languages are able to work with each other through a communal set of standards. (Wikipedia 3, 2011) One way this is do is through the Common Language Infrastructure (CLI) specification, which is implemented using monaural and Microsofts .NET. These allow any language that meets the CLI specification to be able to be run by their virtual machine. The most common language is C, which was especially created to be used in .NET, but dialects of popular languages have been created to be used in a sympathetic fashion (examples include C++/CLI and VB.NET).SummeryIn this report, we discussed what factors are influential in choosing a programming language for a project. We notice that companies will have organisational policies which restrict employees to only use certain languages or certain companys software. We also learned that all languages have pros and cons, so that understandi ng what task our program needs to do will ensure we pick the language that is most suitable. We also need to make sure that there are actually people available to employ to code for us, so we should choose a popular language to make it easier to recruit employees. Reliability is also an area of importance, but for programs where reliability must be guaranteed, we learned that there are languages such as Ada which cater to this specific requirement. Budgets are also an issue as development and maintenance costs will differ between languages, and an unreliable solution means more money spent in maintenance costs. If we need our software to be expanded in the future, it is also best to choose a language that can support this from the start. Finally, we learned about interoperability and how programs coded in different languages are able to work with each other through a common set of standards.BibliographyAnderson, J.K.L.M.P.a.S., 2010. BTEC National Level 3 IT schoolchild Book 1. 1st ed. Edexcel.M Fishpool, B.F., 2007. BTEC Level 3 National in IT. 2nd ed. Hodder Education.Oracle, 2011. Java Runtime Environment (JRE). Online on hand(predicate) at HYPERLINK http//java.sun.com/j2se/desktopjava/jre/ http//java.sun.com/j2se/desktopjava/jre/ Accessed 1 October 2011.TIOBE, 2011. TIOBE Index. Online Available at HYPERLINK http//www.tiobe.com/content/paperinfo/tpci/index.html http//www.tiobe.com/content/paperinfo/tpci/index.html Accessed 01 October 2011.Wikipedia 1, 2011. Software Maintenance. Online Available at HYPERLINK http//en.wikipedia.org/wiki/Software_maintenance http//en.wikipedia.org/wiki/Software_maintenance Accessed 2 October 2011.Wikipedia 2, 2011. Strong Typing Wikipedia. Online Available at HYPERLINK http//en.wikipedia.org/wiki/Strongly_typed_programming_language http//en.wikipedia.org/wiki/Strongly_typed_programming_language Accessed 14 October 2011.Wikipedia 3, 2011. Interoperability. Online Available at HYPERLINK http//en.wikipedia.org/wiki/Interopera bility l Software http//en.wikipedia.org/wiki/InteroperabilitySoftware Accessed 27 September 2011.

No comments:

Post a Comment