Monday, May 20, 2019

Influential Factors in Choosing a Programming Language Essay

* To help Gary make decisions about which spoken communication to choose, you atomic number 18 asked to anyow Gary a list of key factors and their importance in choosing a architectural planming manner of speaking.Overview of ReportWhen its time to snap off a brand-new program, the low gear thing that must be considered is the decision on what programming wording to utilise. This is important because changing the program midway through completion is very difficult to achieve, and volition very much require a vast rewriting of code. There be a number of issues that get out see this decision, and these be* Organisational policy, suitability of the language, the availability of trained staff, how reliable the program is, cost of increase and maintenance, expandability of the language, and interoperability with other languagesOrganisational policyAll organisations pull up stakes have policies (methods of practice) dictating that they allow operate under specified cond itions. A policy of create practical coverings using one(a) particular language may come from historical use, and a foundation of old development tools (such as IDEs) for that one language. (M Fishpool, 2007, p.156) To deviate to using a nonher language may in that representative not make sense to the hierarchy of the organisation.This may ring particularly true if the organisation has constituted a relationship with a particular vendor, such as Microsoft. Maintaining a link with this company may be rewarded with better support and discounts. (Anderson, 2010, p.166) On the other hand, maintaining the use of a particular piece of parcel (such as Microsofts IDE Visual Studio) would limit language choice to those that suit that companys interests. some other choice they may pursue is to utilise open source packet, which brings its own benefits and disadvantages. Open-source software does not offer personalised technical support and relies on an unpaid, potentially unreliable enthusiast community to provide these solutions, but is usually free to use.SuitabilityBuilding a program in a language unsuitable for its intended task will cause 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 syllabus will be. This could be computer setups such as Windows, OS X, a Linux-based OS, a web-based application, a stylishness 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 (like C++) will be more effective in completing intensive tasks, but building a program in Java means 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 affect whether a procedural or object- orient language will be chosen, as is whether appropriate features are incl uded in the chosen IDE. (Anderson, 2010, p.166)Availability of Trained mental facultyIf a language is popular and apply widely (such as Java, C, or C++ (TIOBE, 2011)), then in that respect will be more professionals that are able to code in it than there are for little popular languages. Therefore, choosing a popular language will make it easier to leaven 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 employees have 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 Ada, are created with an emphasis on features that make them slight likely to crash. (Anderson, 2010, p.166) The scoop way of ensuring that code is predictable and reliable is to use a strict language, which is one with a strong type system. A strong type system specifies reboundions on how values of diametrical data types (such as integers and strings) are allowed to be intermixed, and stops the source code from compiling if it thinks data is macrocosm incorrectly mixed. This provides a guarantee about how the program will behave when it starts running. (Wikipedia 2, 2011)Development and Maintenance bePart of the idea of planning the development of a program also includes the costing of the entire project. In order to do so, we take into account the length of time distributively development stage will take, and what resources will be extremityed 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 silver spent in maintenance costs. (M Fishpool, 2007, p.155) Also, rather than simply creating error fixes, maintenance is also abou t how the program evolves post-deployment, as suggested by Lehmans Laws. (Wikipedia 1, 2011) Therefore, how much of the overall budget will go towards the evolution of the application needs to be taken into account.ExpandabilityExpandability is about planning the long term future of the program. Programs in active use will rarely cease to be updated following its first release. It will usually evolve beyond its professional 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 easily 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 presence of several languages may ordain whether a language needs to be interoperable. Interoperability is achieved when programs coded in different languages are able to work with each other through a common set of standards. (Wikipedia 3, 2011) One way this is done is through the unwashed Language Infrastructure (command line interface) specification, which is implemented using Mono 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 similar 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 discovered 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 understanding what task our program needs to do will ensure we break apart the language that is most suitable. We also need to make sure that there are actually deal 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 train 3 IT Student Book 1. 1st ed. Edex cel.M Fishpool, B.F., 2007. BTEC Level 3 National in IT. second ed. Hodder Education.Oracle, 2011. Java Runtime Environment (JRE). Online Available 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. package 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/Interoperability l Softwar e http//en.wikipedia.org/wiki/InteroperabilitySoftware Accessed 27 September 2011.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.