THE TENDENCY OF CERTAIN PROGRAMMING LANGUAGES TO BE RENDERED OBSOLETE BY CURRENT SOFTWARE ENGINEERING TRENDS.
NAME: OBENG SAMUEL ANDAM KOBINA
COURSE TITLE: TECHNICAL REPORT WRITING
COURSE CODE: FAEN 206
A programming language is a code of reserved words and symbols used in building computer software which provide instructions to the computer on how to accomplish certain computing tasks (Wiktionary, 2018). There are currently about 730 programming languages in existence. (Wikipedia, 2018). It is expected that this tall list will grow astronomically within the next few years since new programming languages are expected to emerge (Fast Company, 2014). The languages that exist are also expected to evolve (Wikipedia, 2018). Following the example of Ada Lovelace, first computer programmer, in 1954 (J Fuegi, 2003) software engineers derive joy from solving problems they encounter to the best of their abilities. Many a programmer is in a dilemma as to which of these languages to gain proficiency in. The main aim of most software developers, as it is with other professionals, is to stay relevant to the market. Aside just writing code, software engineers are also expected to understand how to create and manage algorithms, troubleshoot problems that occur throughout development and also gather specification requirements from clients in order to design solutions that perfectly meet the clients’ needs (Interesting Engineering, 2018). The aforementioned require them to be abreast with changing software engineering trends, newly-made-available resources, and skills in high-demand areas. According to research, there is no conclusive predictive analysis of how the relevance of certain programming languages could reduce to the barest minimum by virtue of changing software engineering trends. This is the motivation for the selection of this research topic.
To clear ambiguity, a stipulative definition of “software engineering trends” is necessary. Software engineering trends, as regarding this research, will refer to an amalgamation of availability of development-facilitating tools and support for the languages to be considered, ethics in the software engineering field and changing demand for software products. According to Bill Gates, “Software innovation, like almost every other kind of innovation, requires the ability to collaborate and share ideas with other people, and to sit down and talk with customers and get their feedback and understand their needs” (Gates, 2018). This research will go a long way to help software engineers, both old and new, focus their resources on gaining mastery in programming languages that will still keep them employed in the not-so-far future and also best meet customers’ needs. Realistically, new computing eras have occurred every 10-15 years (Dixon, 2016) therefore the prediction of this research will be expected to hold for at least 10 years.
AIMS AND OBJECTIVES
It is the aim of this research to give accurate probabilistic details about the top 20 (TIOBE, 2018) in-demand programming languages and how likely they are to stay relevant in the next 10-15 years. This research work is to serve as an industrial standard to inform the selection of programming languages by stakeholders in the software engineering industry. The recommendations made available by this research will also open the floor for the creation of programming languages that will better serve than the world than the currently-existing ones.
In the spring of 2010, Twitter, one of the world’s mostly widely visited websites, saw its front-end migrated from Ruby-On-Rails to Java. According to the engineering team, a 300% reduction in search query latency was seen after this migration (Twitter , 2011). This brings us to the idea of the next school of thought – inability of some programming languages to face competition. If several incidences of like nature happen, there is a high tendency that Ruby-On-Rails will be rendered obsolete.
The gap regarding the aforementioned schools of thought and several others is the fact that there has been no significant research to prove or disprove these claims. This research seeks to produce tangible evidence to lead us in the right direction.
MATERIALS AND METHODS.
A very important part of the software engineering ecosystem is the ability to critically evaluate existing and future programming languages (Sebesta, 2012). The current top 20 most in-demand programming languages will be meticulously examined by three main criteria – how they conform to modern ethics in the software engineering field (Sommerville, 2011), availability of development-facilitating tools and their ability to meet changing demand in software products. Videos of software development conferences and seminars, books, articles and other relevant material will be consulted in the course of the research.
Data will also be required from top software engineering companies (This may include hiring data, data about projects (past, present and future) and user feedback and response. Software development ethics will be investigated into, Data from programmer-support platforms will be analyzed. Several highly patronized software products will be analyzed in order to draw a very accurate conclusion. Many statistical approaches will be involved in the analysis of the collated data.
After the necessary data is gathered, a standard grading system will be created. The purpose of this grading system will be to help rate the programming languages to be studied and list them in order of their tendencies to lose their place on the market.
Cost that will be incurred in the carrying of this search will mainly be from the amounts of money to be charged by consulted companies for the exchange of data relevant to this researc. The printing of questionnaires will also lead us to incur additional cost. In all, at least GH? 5,000 will be needed to make this research a success. This research is expected to be completed within a 6 – 18 month range.
The 21st century software engineering field has seen tremendous metamorphosis (Scriptol, 2018). Any software engineer who desires to maintain relevance to the market will have to stay up-to-date with the trends dictated by the market. Accurate analytic information is required to make this a reality. Programmers, especially new ones, need to know which programming language(s) to specialize in out of the myriad of choices that exists. This as well as many other reasons is why this research needs to be completed as soon as possible. Your cooperation is heavily required to effectively carry out this research.
Dixon, C. (2016, February 21). What’s next in computing? Retrieved from Medium Website: https://medium.com/software-is-eating-the-world/what-s-next-in-computing-e54b870b80cc
Fast Company. (2014, March 06). Why Does The World Need More Programming Languages. Retrieved from Fast Company: https://www.fastcompany.com/3031443/why-does-the-world-need-more-programming-languages
Fortran: 7 reasons why it’s not dead. (2015, May 7th). Retrieved from InformationWeek: https://www.informationweek.com/software/enterprise-applications/fortran-7-reasons-why-its-not-dead/d/d-id/1321174
Gates, B. (2018, May 28). BrainyQuote Software Quotes. Retrieved from BrainyQuote: www.brainyquote.com/topics/software
InfoQ. (2012, November 9). Twitter’s Shift From Ruby to Java. Retrieved from InfoQ: https://www.infoq.com/news/2012/11/twitter-ruby-to-java
Interesting Engineering. (2018, May 9). The Ultimate Guide to Software Engineering, Software Develeopment, Computer Engineering and Becoming A Software Developer. Retrieved from Interesting Engineering: https://interestingengineering.com/the-ultimate-guide-to-software-engineering-software-development-computer-engineering-and-becoming-a-software-developer
J Fuegi, J. F. (2003). Lovelace & Babbage and the creation of the 1843 ‘notes’. Annals of the History of Computing, p16, p19, p25.
Kay, A. (2010, October 20). Why create any more programming languages? Retrieved from Quora: https://www.quora.com/Why-create-any-more-programming-languages-What-are-the-most-interesting-recently-created-programming-languages-and-what-are-the-fundamental-ideas-requiring-their-creation-as-opposed-to-expressing-the-ideas-as-a-new-part-of-an-existing-language
Scriptol. (2018, April 26). History and Evolution of Programming Languages. Retrieved from Scriptol: https://www.scriptol.com/programming/history.php
Sebesta, W. (2006). Concepts of Programming Languages. Hudson: Pearson.
Sommerville, I. (2011). Software Engineering. Massachusetts: Addison Wesley.
TIOBE. (2018, May). Tiobe Index. Retrieved from Tiobe: https://www.tiobe.com/tiobe-index/
Wikipedia. (2018, May 20). History Of Programming Languages. Retrieved from Wikipedia: https://en.wikipedia.org/wiki/History_of_programming_languages#Establishing_fundamental_paradigms
Wikipedia. (2018, May 28). Programming Language List. Retrieved from Wikipedia: https://en.m.wikipedia.org/wiki/List_of_programming_languages
Wiktionary. (2018, April 28). Programming Language. Retrieved from Wiktionary: https://en.m.wiktionary.org/wiki/programming_language