Information Science and Technology
↳ Modern Technology
How Python and Java Handle Variables
According to Dimitrios & Stelios (2021) one of most significant distinctions among Python and Java seems to be the method in which each language manages variable references. This is not possible to modify the type of such a variable after it has been declared using Java, and changing the type afterwards with in program is not permitted. Static typing is the term used to describe this. Python, on the other hand, makes use of dynamic typing, that enables programming to look at the type of a variables at any time, as example, by substituting an integer with such a string. Due to the fact that may simply utilize the parameters when see fit without thinking about their types, dynamic typing is simpler for a beginning programmer to grasp than static typing. A large community of developers, on the other hand, believe that static typing minimizes overall likelihood of undiscovered faults affecting the application. As a result of the fact that variables shouldn't need to be expressly declared before they are used, it is simple to misspell the variable name and mistakenly create an entirely new variable.
Java has the significant benefit of being able to use to develop program that really are independent of the platform on which they are run. A Java application could be run on every desktop or smartphone device which is capable of running the Java virtual machine, so although Python systems must be run on a computer or smartphone device capable of running a compiler that really can convert Python code in to the code that one’s specific operating system could indeed understand (Htoo et al., 2020). Because of the widespread usage of Java for online applications and basic desktop apps, its Java virtual machine has been installed here on vast majority of devices. As a result, Java programmers may be certain that their application will be useable by most of their users. The drawback of executing Java applications within a virtual machine is also that they perform much slower than Python ones. The majority of programmers feel that Python is a more straightforward useful language for beginning programmers (Htoo et al., 2020).
Python applications are typically predicted to run slower than Java applications, and they are also projected to require much less time to create. Python applications are often 3-5 times less in length than identical Java applications, according to the author. This may be ascribed to Python's built-in high-level data types as well as its dynamic typing capabilities. Examples include the fact that a Python programmer does not waste any time stating a type of reasoning as well as variables, and also the fact that Python's powerful polymorphic description as well as dictionary types, in which rich syntactic assistance is built directly into the language, find application almost in every Python script (McMaster et al., 2020).
The fact that Python's run time needs work harder that Java's is due to the fact that Python uses run-time typing. If the expression a+b is being evaluated, the compiler first must check the objects a & b to determine one ‘s type, that is not recognised until after the expression has been evaluated. It then calls the correct addition operation, that may be a user- defined function with a large number of overloads. Java, on the other hand, may do a fast integer / floating point adding, but it necessitates explicit definition of variables for such variables a and b, and it will not provide the overload of the + operator for instance of user- defined classes to be performed.
A number of research have been carried with in subject of programming language comparisons and contrasts. Okonkwo & Ade-Ibijola (2021), published a study on an empirical evaluation of C, C++, Java, Python, Perl, Rexx, as well as Tcl for a search/string- processing software. They used a search/string-processing software program in C. Okonkwo & Ade-Ibijola (2021), provided a personal appraisal of many commonly used programming languages in his presentation. Benchmarking is used to make a comparison of highly object- oriented Java as well as non-object-oriented Java. Which gave an analytical comparison of nine distinct programming languages titled "Evaluation & comparison of computer languages" in their paper "Comparative analysis of programming languages.
Moreover, the algorithms that are being evaluated in just this way are sometimes quite short and straightforward. Some studies are narrow managed experiments, such as those conducted by Trawi (2020) with the focus on a single language construct, such as those conducted or a whole mathematical notation style, such as those conducted. The results of several of these studies are empirical comparisons based on various and bigger projects (e.g.. They may be discussing failure rates and productivity metrics, for example. The lack of uniformity in such comparison is a source of contention: Each language is represented by a separate service, but it is unclear and which proportion of the differences (as well as lack of distinctions) can be attributed to a language themselves and also what proportion can be attributed to differences in programmer upbringings, differences in software applications, distinctions in application areas, discrepancies in design, and so on.
References
Dimitrios, T, & Stelios, X. (2021). Investigating the Perceived Player Experience and Short- term Learning of the Text-based Java Programming Serious Game “Rise of the Java Emperor.” Informatics in Education, 20(1), 153–170. https://doi.org/10.15388/infedu.2021.08.
Htoo, H. S. K., Su, S, W., Nobuo, F, & Wen-Chung, K. (2020). A Code Completion Problem in Java Programming Learning Assistant System. IAENG International Journal of Computer Science, 47(3), 350–359.
McMaster, K., Sambasivam, S., Rague, B., & Wolthuis, S. (2017). Java vs. Python Coverage of Introductory Programming Concepts: A Textbook Analysis. Information Systems Education Journal, 15(3), 4–13.
Okonkwo, C. W., & Ade-Ibijola, A. (2021). Python-Bot: A Chatbot for Teaching Python Programming. Engineering Letters, 29(1), 1–10.
Trawi, A., P. (2020). Development of real gas model operating in gas turbine system in Python programming environment. Archives of Thermodynamics, 41(4), 23–61. https://doi.org/10.24425/ather.2020.135853
Information Science and Technology
↳ Modern Technology
Java Programming
Java programming language is widely used for various software development projects.
Created in the early 1990s, the language has become one of the most popular programming languages globally. It offers multiple advantages, including platform independence, security, and scalability. In this discussion, we will explore peer-reviewed literature on Java programming.
Literature review of Java Programming
The paper "Java-Based Real-Time Control System for a Mobile Robot," published in the Journal of Intelligent and Robotic Systems, presents a Java-based real-time control system for a mobile robot (Aldriye, Alkhalaf, & Alkhalaf,2019). The authors discuss the development of the control system, which uses a Java-based framework known as Robot Operating System (ROS). The design incorporates modules such as sensor processing, mapping, localization, and path planning, all implemented in Java.
One of the key advantages of using Java in this context is the ease of development and debugging. Java provides robust tools, making developing and debugging code easier. The authors also emphasize the language's code portability, allowing developers to create applications running on different platforms (Aldriye, Alkhalaf, & Alkhalaf,2019). Another significant advantage of using Java for real-time systems is its integration with existing Java-based tools.
The paper compares the Java-based system with popular programming languages like C+
+ and Python. The authors conclude that Java provides significant advantages over other languages, such as ease of development and debugging, code portability, and integration with existing Java-based tools (Mingoc & Sala,2019). The authors also note that Java's garbage collector can cause performance issues in real-time applications. The garbage collector is responsible for freeing up memory by identifying and removing objects that are no longer in use.
However, this process can sometimes cause delays m challenges in using Java in real-time systems.
Furthermore, the paper discusses the use of Java in developing mobile applications. The authors explain that Java is a popular choice for mobile application development due to its cross- platform capabilities and the availability of various Java-based mobile application frameworks. Java has many advantages for mobile app development, including ease of use, extensive documentation, and a large developer community (Al Farsi et al.,2022). Additionally, Java provides a robust set of APIs that can be used to access various mobile device features, such as cameras, sensors, and storage.
The paper also highlights the use of Java in developing web applications. The authors discuss the Java Server Pages (JSP) technology, which allows creation of dynamic web pages using Java code. Java-based web applications offer several advantages, such as platform independence, security, and scalability (Maiga & Emanuel,2019). Java has been used for web application development for many years and has many libraries and frameworks that developers can use to build web applications.
The authors conclude the paper by emphasizing that Java is a universal programming language with many applications in various fields, including robotics, mobile application development, and web development (Maiga & Emanuel,2019). They suggest that further research can explore ways to optimize Java-based systems' performance and address some of the language's limitations. Java's popularity and flexibility make it a valuable language for various software development projects.
Conclusion
In conclusion, the paper provides valuable insights into using Java in various applications, including real-time control systems, mobile application development, and web development. Java offers several advantages, such as platform independence, security, and scalability, making it a popular choice for software development projects. The authors highlight the benefits and limitations of using Java and suggest areas for future research. The paper demonstrates that Java is a powerful programming language with significant applications in various fields. Its versatility and flexibility make it a valuable tool for developers.
References
Al Farsi, G., Tawafak, R. M., Malik, S. I., & Khudayer, B. H. (2022). Facilitation for Undergraduate College Students to Learn Java Language Using the E-Learning Model. iJIM, 16(08), 5. https://www.academia.edu/download/87778219/11159.pdf
Aldriye, H., Alkhalaf, A., & Alkhalaf, M. (2019). Automated grading systems for programming assignments: A literature review. International Journal of Advanced Computer Science and Applications, 10(3). https://pdfs.semanticscholar.org/3ec5/6c7bc0338717acca9d5e519c0a27ca5ce70d.pdf
Maiga, J., & Emanuel, A. W. R. (2019). Gamification for Teaching and Learning Java Programming for Beginner Students-A Review. J. Comput., 14(9), 590-595. http://www.jcomputers.us/vol14/jcp1409-04.pdf
Mingoc, N. L., & Sala, E. L. R. (2019). Design and development of learning your way out: A gamified content for basic Java computer programming. Procedia Computer Science, 161, 1011-1018. https://www.sciencedirect.com/science/article/pii/S1877050919319222
Information Science and Technology
↳ Modern Technology
The Rise of Scripting Languages
Introduction
A principal change has been happening for the decade in the Manner in which individual script computer programs. Computer languages like Tcl and Perl have substituted computer languages such as C++ and C. There has been a significant difference amongst computer languages because computer languages were meant for various jobs than a programming computer language. The programming languages' main tasks are for algorithms and building data structure for the scratch applying essential basics such as the words memory. The computer's language of scripting make an assumption of the powerful constituents and bond them together. Complexity management is the primary application of system programing language. The scripting language, on the other hand, simplifies the component connection and give a quick development of applications. The key focus of this task is the progress and development of scripting language and the advancement made on the web-applications.
The term scripting bears the same age with computers. This is by the fact that a person needs a computer when scripting. It started way back in the 1950s and 1960s, where the computer programmers have exposed punch cards into the operator's mainframe, and the machine used applied in running the batch mode. Job Control Language (JCL) was the first scripting language. It was very functional except that its response time was very slow. In 1960, the scriptable shell ideas came into practice when the programmer began making interactive systems that shared time. MULTICS was one of the earliest projects and also; the last when several of the Bell Labs programmers left the project. Using their system, that is, MULTICs, UNIX was the next project that was created. It was through UNIX shell that doing a complex task in one line of the shell was made possible applying the capability to send the output of one program into the response of the other (Meurer, Smith, Paprocki, Čertík, Kirpichev, Rocklin & Rathnayake, 2017). In the year 1987, a famous Larry Wall made Perl created web-application. Computer languages such as Ruby and Python were discovered, and python was the foremost Perl opponent.
HOW the features provided by the languages have changed the way application developer write a server-side program?
In application development, the following are some of the features that the program developers write the servers program. It includes features such as high-level data types, flexible, dynamic typing, batch, and interactive use, lack of declaration and simple scoping rules, the sophisticated pattern matching, and ease of access to other programs. To the application developer, languages such as AJAX, JQuery JAVA, and other helped them make extensions and plugin for the existing computer applications. Amongst the changes that have been experienced is that a developer can use something like C in as a language of scripting through running a file source to the compiler such as the GCC and, as a result, receive a binary execute. There have as well been hybrid tools of scripting, such as the CPython implementation, which now works as an environment scripting for Python. Once the tool runs for the first time, the existing file compile which others around it are made to use the interpreting source as a PY file. The Area of Application; in this part of this task, languages will be categorized in order to examine them properly. The major categories of languages include; Universal scripting, Application, Command and Markup.
Scripting Command languages; these are the oldest categories of scripting language. It occurred in 1960 when there was great necessity for task and program regulation managers. As earlier mentioned, JCL was the most renowned language which was made for IBM OS/360 operating systems. Awk and Sed were also among the text dispensation languages. They were the first language to comprise regular expression corresponding and later implemented into Perl.
Application Scripting Languages; they were generated in 1980. Such language, Microsoft designed visual basic and after some time subset visual basic for programming application was made. It stresses on the component embedding and user interface programming. With time, the earlier languages such as excel macro language and world basic (Hanam, Brito & Mesbah, 2016). They were later substituted by VBA as the primary programing language in Microsoft office set. Its effect spread later VBScript and LotusScript embraced these modifications.
JavaScript is also found in this class. It is the client’s part of the projects’ web-programming. JavaScript have contain some dialect such as Jscript and was initially established in the Navigator Netscape 2.0 browser.
Markup Computer Languages; this Language is different from the others since they are not programming Language but special commands referred to as ‘tags’ that markup the document text, which is then applied in the programs called ‘processors.’ They have the capacity to change a script to be presented in a browser or turn it into data design. The primary application of markup language is the differentiation of structures and content. Furthermore, markup integrates the interaction of objects and formatting commands into documents.
Generic Markup Language (GML) was the first Makeup language developed in 1969 by IBM. In 1986, ISO produced standard referred to as SGML, which was founded on the GML concept. HTML, TeX, and XHTML were among the Markup Languages that become most famous. Donald Knuth, in 1969, designed a precise description of how the document should look based on the whole structure complexity. This Language was projected on individuals who do not critically require to distinguish the program in disparity with Postscript, which was designed and manufactured by adobe. TeX become more popular in the scientific community due to the fulfillment of the need for high-quality, which rendered complex formulas.
The elementary Language of the World Wide Web is HTML, which is an application of the SGML. A streamlined and simpler version of SGML form is the XML, which highlights storing, exchange, and transporting of data amongst all types of systems. XML is plied for converting complex data and store it in a hierarchical order. In 2001, HTML was regenerated in terms of XML and was renamed as XHTML (Dahl, 2016).
Universal scripting languages; this was a language that was created and well known for the UNIX environment, although its objective was different. The language of Perl programming was created for generating reports but later become known for its ability to put up efficient and simple CGI scripts that are applied in dynamic web pages formation.
To start with, Python was an instrument used for retrieving system services of the investigational operating system Amoeba. It later becomes a tool designed for the scripting language. Other languages exist in application language applied by the Microsoft.NET platform. Tcl was primarily applied as an extension application, although it was initially made as a handling string and closed integration with the Tk library. It was different form Python and Perl since it depended on the extensions of C++ and C. On the web services, another language that appeared, is PHP, which the most famous and bears the combination of traditional programming procedures and HTML (Kennedy & Musciano, 2017).
Python is a tool oriented language that offers high-level structured data. Doe instance, binding, dynamic typing, and associative rays, amongst others. Python is a dominant language of programming that has a simple syntax and is flexible. Guido van Rossum made python in 1990 because, by that time, it was free and could have run by any computer. By nature, python is modular. This translates that the python’s core can be operated by importing new extensions.
Some extended versions for such as Perl like extensions and script manipulations, are contained in the distribution of the python. Additionally, it contains operating system services, web-related utilities, and Graphical User Interface (GUI) generator, amongst others. Besides, new extensions can be created by using old or new codes. There has been a notable number of extensions that have been made. One of them is GADFLY, which is an SQL database manager scripted Python, Numeric Python, FNORB, OmniBorker PIL imaging library, amongst others.
Figure1
The above figure shows the molecule application viewer showing the protein Carmbin (1crm) with its subordinate structure displayed as a stretch. The surface of the molecule corresponds with to sheet2 and helix1 illustrated and colored using the RASMOL residue that color the scheme and the by atom form scheme of coloring. As observed, several pulls down menus have been torn off to portraying the type of command they offer. This type of command set can be dynamically extended by packing commands and modules form the libraries.
Perl; Wall Larry made it in 1986. It is essentially the integration of several UNIX utilities, C, and shell scripting convenience. Several strengths of the language are; Easy access to regular expression, associative arrays, and lists, Automatic resource management and the capacity to treat any figure as a string.
In case one wish to generate something, it can be done in numerous methods. This is termed TIMTOWTDI, which means (There Is More Than One Way To Do It).
To tackle the difficulty, one can apply the object alignment, although some computer languages power the application and often add needless complexity to nearly every project. In order to handle such kind of a problem, Perl Language added some objects support and did so in a manner that, if needed, the complex modeling could be accomplished.
“The above codes shows an easy script that calculates the column’s average in a data table. It portrays one common usage; that is read the data and divide each line openly to “words” and keep this data in an array.”
LISP; this is a figurative data processing language that uses integral calculus, mathematical logic, the game theory, integral and differential calculus amongst other filed of intellect. Since LISP is a language in mathematics, it makes it possible to provide a complete depiction. In the first place, LISP differs in the type of data. S-expressions are arc data in the way of expression symbolism. Major sub-expressions may be secluded because of the fact that S- expressions contain a branching tree type of structure and an indefinite length. The language source is the second variance from the other language since it stipulates on the way that the s- expressions are processed. Lastly, the LISP makes it possible to execute and interpret programs scripted in the form of S-expressions.
“This is a super simple number guessing game. It’s created to demonstrate what it’s like to work within a REPL.”
HOW has the structure of those programs changed?
Over the years, some programming languages like Python 3, C, and PHP 7 and others were different and were crated with different objectives. With time, the languages have been modified so as to suit the developer’s goals. In structured programming included languages such as Pascal, ALGOL, ADA, and PL/I. Due to technological advancement, there has been an eruption of new procedures in programming and application development that have included features that have included structured programming. GOTO, for example, has made the unstructured programming more complex.
HOW mechanism used by the server-side languages interface with web servers has changed. Concerning the server-side application programming, the web browser has been made to communicate with web-servers using HTTP (Hyper, Text Transfer Protocol. It has been mechanized in a way that when the developer clicks on the web program or run a search, the HTTP request is sent from the browser to the man server.
The client codes, on the other hand, have changed, and now the programmers can use languages such as ads HTML, JAVASCRIPT, and CSS. The client code runs inside the web browser and comprises little or no access to the underlying operating system. Unlike in the past, web developers cannot control the browsers on what the user uses to view the website.
The other mechanism that has been applied by the web developer is that the server-side code can be written in several programming languages such as PHP, Ruby, C#, and Python, which gives full access to the operating system and the program developer can choose which language is suitable.
In the current world, individuals have the expectation that web application works in the same manner as the window application due to the fact that web application has turned to be sophisticated and powerful. Primarily, web application resides the source of the coding scripts, assembles, and process to the webserver. The web server, on the other hand, admits an inbound Http request and then goes to the resources entreated in an n HTTP reaction.
The procedure of releasing an ASP.NET sheet to the central server for handling is referred to as PostBack. The HTML page is sent to the webserver every moment a PostBack occurs. The following is what happens; the server loads the page, process the event into new HTML, and goes back to the client, although the PostBack refreshed the entire page.
Ajax; the part of the Ajax is a tool regarded as XMLHttpRequest. The Ajax make it probable to move data from the browser to the server using XMLHttpRequest API deprived of necessarily reloading the web page. This Ajax part quickly famous, and web applications like Gmail and Google maps were made through the use of XMLHttpRequest to obtain a title of a new map without having to reload the page (Choi & Kim, 2017). The Ajax use requests are activated codes of the JavaScript. What occurs is as follows; the code sent a request to a Uniform Resource Locator (URL). A response is then received and activate a callback role to tackle the answer. The other codes continue to conduct while the request line up to be processed due to the fact it is asynchronous.
In conclusion, the technologies' server sides gave significantly progressed in the last two decades. Computer languages like Perl, HTML, and Python have outstretched the criteria of the language scripting. The web application has enhanced with the aid of customer-side technologies like as AJAX while plays a critical function in the development of web applications. It is forecasted that in the near future, there will be the development of various computer languages that can exceed the current language by a large margin.
References
Choi, K. H., & Kim, K. J. (2017). A study on acceptance procedure improvement of web application by outsourcing for mobile service. Wireless Personal Communications, 94(1), 5-16.
Dahl, D. B. (2016). xtable: Export Tables to LaTeX or HTML. R package version 1.8-2. Hanam, Q., Brito, F. S. D. M., & Mesbah, A. (2016, November). Discovering bug patterns in JavaScript. In Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (pp. 144-156).
Kennedy, B., & Musciano, C. (2017). HTML & XHTML. The Definitive Guide.
Meurer, A., Smith, C. P., Paprocki, M., Čertík, O., Kirpichev, S. B., Rocklin, M., ... & Rathnayake, T. (2017). SymPy: symbolic computing in Python. PeerJ Computer Science, 3, e103.
Information Science and Technology
↳ Modern Technology
A comparative study of Python, Java and C++ Programming Languages
Abstract
Over the last few decades, we have witnessed an exponential growth in programming languages, primarily due to the increase in information technologies and increased software demand. Also, continued research has improved how we program and develop software in the modern information age. This paper aims to is a comparative study of some of the three widely used programming languages, namely Python, Java, and C++. Typically, C-based programming languages have dominated the software development arena and have used to develop sophisticated systems across the globe. Java is estimated to be the most applied programming language around the world, with over 3 billion devices running Java. However, C++ and Java are experiencing reduced popularity with the introduction of Python in the programming arena. Python provides admirable features that solve modern-day programming languages, thus attributing to its extensive popularity. This paper advances through chapter one to chapter five. Chapter one gives a detailed overview, such as the background of the study, the problem statement, the objectives of the study, and to research questions that will guide the study. Chapter two provides a detailed literature review and some of the similar works associated with this paper. Section three describes some of the methodologies used in the study. Chapter four provides an analysis of each language's features, while chapter five provides a summary of the whole paper.
Chapter 1Introduction
Introduction
Software engineers, scholars, and programming experts define programming language as a constructed language or computer language designed and developed to help software developers to communicate commands to a computer or a machine. Typically, programming languages are used to control a computing device's behavior by communicating instruction to the machine. Due to the exponential growth in information technologies, there has been tremendous growth in the development of programming languages. For instance, programming languages have five generations from the first time they were introduced in the early 1950s (Oguntunde, 2012). The growth of programming languages has seen software development shift from an era of assembly language to an era where computers are being designed to solve problems in their environment without the programmers.
Overview of Java Programming Language and its significance in the software development
The Sun Microsystems team lead by James Gosling was the first developer to work on Java in 1991. The original version of Java (Java 1.0) was developed to develop systems for home appliances and was released in 1995. After the release of Java 1.0, the platform promised to deliver a Write Once, Run Anywhere (WORA) technology that could eliminate the high-cost runtimes experienced with other typical languages. As of today, Java has released over eight versions of the platform. One of the Java's latest standard editions is Java version 8 released in March 2014, with Oracle indicating on releasing Java 9.0 in a short while. However, Oracle recommends Java version 7 update 51 as the most suitable version for software development and writing of code. Due to the extensive application of Java across numerous platforms, Oracle has produced various configurations to suit each platform's needs and demands. For instance, Java 2 Micro Edition (J2ME) was developed to primarily support the development of mobile applications, while Java 2 Enterprise Edition (J2EE) was designed to ease the development of enterprise applications.
Some of the key features of Java are:
Object-oriented – unlike other typical programming languages, the basic unit of a Java program is an object. Objects in Java allows easy scalability and reusability of code (Oguntunde, 2012).
Platform independent – during the compilation process of Java, the platform is not compiled depending on the specific machine code requirements. Instead, Java has compiled into byte code that the Java Virtual Machine interprets on the machine on which Java is being run.
Security – Java programs support the use of public-key encryption to configure authentication mechanisms. Also, Java supports the development of tamper-free software.
Multithreaded – when using Java, it is possible to develop two or more executable programs to execute tasks concurrently. This feature is applied extensively to enable programmers to build interactive systems that can do multiple tasks simultaneously.
Portable – since java programs are platform-independent, the programs can be moved one platform to another more smoothly.
Architecture-neutral – the object file generated by the Java compiler is architecture-neutral. This means that the compiled code can be run on numerous platforms, and the code can be executed by various operating systems and processors. All that is required to run a java program in any architecture is a java runtime system.
Overview of C++ and its importance in software development
C++ was developed as an improvement of C, and it was first worked on by AT& T Bell labs in 1979. Generally speaking, any C program can be described or considered a legal C++ program, meaning that C++ is a subset of C. C++ combines the features of both the low-level languages and high-level languages, and it is typically considered a middle-level language. C++ is one of the oldest programming languages still in use today. The language is used extensively in numerous domains such as a high-performance server, entertainment software such as video games, system software, embedded software, device drivers, and application software. C++ is also widely applied in research and has had a significant influence on the development of other programming languages such as Java (Oguntunde, 2012). One of C++'s most notable features is its speed and provision of different programming styles to support the development of software and systems. When dealing with large projects, C++ can be configured to support object-oriented programming. Some of the typical features of the language are: C++ supports generic programming, it is case sensitive, it is statically typed and compiled, and it is a free-form programming language.
Overview of Python and its significance in software development
Although many still consider Python as a scripting language, Python is a dynamic programming language that can be used to develop sophisticated programs. For instance, Python is being applied by developers to write programs for some of the world's fastest computers. Python is derived from many other programming languages such as SmallTalk, ABC, C++, Modula-3, Unix shell, Algol-68, and many other scripting languages. Python was developed between the late 1980s and the early 1990s by Guido van Rossum. The modern-day version of Python was established in the Netherlands by the National Research Institute for Mathematics and Computer Science. Python is different from Java and C++ in many aspects. For instance, Python's syntax does not use semicolons, but rather uses whitespace. Also, in other programming languages, the programmer must declare variables and define their datatype (Van Rossum & Drake, 2011). When using Python, the programmer uses variables as objects, meaning that there is no need to declare their datatype. Pythons guide developers into writing readable code and reduces the amount of time required. One of Python's distinguishing features is that the language is easy to read and easy to learn. The language is also scalable and portable from one platform to another.
Problem statement
All programming languages offer various strengths and weaknesses that motivate the programmer to pick them during a software development task. The use of API to implement parallelism is one of the most advanced features that are on some of the existing programming languages. The advancement in technology is making it challenging for young and novice developers to choose the most effective programming language to use. One of the critical challenges is investing time in learning a new programming language and implementing the knowledge in a software development platform under certain constraints.
Goals
This paper provides a foundation for programming language paradigms by comparing the three most prominent and extensively used programming languages. This paper also aims to identify the distinguishing features between C++, Python, and Java and analyze which of the three programming languages gives the best performance for any given instance.
Research questions
What are the distinguishing features of C++, Java, and Python programming languages?
How does the usage cost of the three programming languages differ?
What is the programming Domain of the three languages?
What are the programming paradigms used by the three programming languages?
How do the three languages compare in terms of portability, simplicity, and readability?
Relevance and significance
As stated above, it is challenging for beginners to distinguish between the three prominent programming languages. Also, it is essential for software developers and computer scientists to distinguish the three prominent programming languages. The insights provided in this article offer a robust preparation for selecting the most appropriate language to learn and reducing the inconveniences of learning an unsuitable language depending on one's needs and requirements. On an overall note, this study will help one to choose and learn a programming language that will fit the needs and requirements of his or her software development demands.
Barriers and challenges
The exponential growth and development in the three programming languages posed a challenge since it was difficult to compare the three languages at any given point in time. I had to compare the latest version of the technologies. Additionally, Python is still an immature technology that is still under development, mainly due to its application in data mining. As a result, I had contradicting perspectives about the language, and I had to research an extensive amount of articles to identify Python's unique features in software development.
Chapter 2 Literature review Generations of programming languages
In total, there are five generations of programming languages that are described by time sequence.
Machine language
Machine learning is the first generation of machine learning, and it appeared in the early 1950s. As the name suggests, machine language was written in machine language, that is, ones and zeros, and it was challenging for human-being to understand the language. As a result, the language was prone to errors that limited its functionality. Another critical disadvantage of machine language is machine dependency. The language was developed to meet each specific processor's demands and requirements, meaning that the scientists had to create a different version of the language for every CPU (Ogala & et al., 2020).
Symbolic assembly languages
The symbolic assembly language is the second generation of programming languages, and it simplified the complexity of machine languages by using symbols to represent the ones and zeros. The assembly language operated at a higher abstraction level compared to machine languages and used number combinations and other symbols such as the dollar, portions of words, and percent to create instructions. The key challenges limiting symbolic assembly languages were their hardware dependency and lack of portability, meaning that software developed using assembly language could not be moved from one processor to another.
Problem-oriented languages
The third-generation languages were developed between the 1960s-1980s, and they were the first languages to be referred to as high-level languages. These languages used near-English words to develop commands and relied on compilers to convert the code into machine language. The conversion relied on compilers to match the English words with their machine equivalent. One of the distinguishing features that differentiated third-generation languages from the prior generations is that each programming language in this generation had a compiler or an interpreter. Additionally, the languages were relatively quick to execute after they were compiled (Ogala & et al., 2020). One of the critical challenges in this generation was different types of source code was needed for every different processor.
Non-procedural languages
The distinguishing feature with fourth-generation programming languages is that they are more concerned with the problem being solved than how the actual coding will be done. Fourth- generation programming languages are friendly, are independent of the operating System, and the processor can be used by non-programmers, are portable, and have intelligent options that automate various tasks during the software development process. The most notable programming languages in this generation include MYSQL and SQL.
Fifth-generation programming languages
The 5GL programming languages are still under development and rely on modern-day technologies such as artificial intelligence and machine learning. The 5GL programming languages will automate the generation of code and creating instruction to solve a problem. These languages will require minimal supervision or interactions with programmers. The languages in this generation will have the capacity to think for themselves and address challenges that would otherwise prove to be challenging to solve using programming languages in other generations.
Time Comparing between Java and C++ software
Another study by (AlHeyasat & et al., 2012) provides a detailed study that compares the flexibility of Java and C++ in executing some given tasks. The study focused on determining the time needed to run some given algorithms and determining the execution's swiftness and efficiency. The scholars used the same algorithm to determine which programming language was useful in than the other. in simpler terms, the results of which software is better were based on the time the two software took to execute the same algorithm. The study found that Java took an average of 500 microseconds to execute the algorithm while C++ to an average of fewer than 450 microseconds to run the same algorithm. The conclusion of the study indicates that although Java is a robust language, C++ is more effective in executing programs since it requires less time to compile and run an algorithm compared to Java.
Chapter 3 Methodology
Due to the time limitation in this research, I relied on the comparative analysis to compare the three programming languages. The primary goal of this analysis study is to identify the fundamental and advanced features of Python, Java, and C++ to determine their distinguishing factors and their suitability to be applied in different programming environments. Additionally, I carefully reviewed each language's advantages and disadvantages and the problems each language can solve. This comparative analysis focused on identifying the distinguishing features between the three programming languages using the following criteria:
Readability
Programming paradigm
Programming Domain
Portability
Usage cost
Programming environment
Chapter 4 Findings and analysis
Programming domain
Software development has advanced exponentially to affect every aspect of our lives. Among the various applications of software development are in business applications, systems programming, and scientific applications. Java and C++ standout as hybrid programming languages since they are used in almost every aspect of programming. As a result, these two languages have been extensively applied in software development and have played a significant role in the development of other programming languages. The two languages have data structures that can be applied in a wide range of applications in the development of scientific and business applications (Foster, 2014). One of the key differences between the two languages is that C is typically used for large projects, while Java is used for relatively smaller projects. For instance, C++ is used in the development of operating systems and other complex software programs such as the Symbian Operating System and Linux Operating system. Java plays a minimal role in the development of such systems, and not a single operating system that has been developed using entirely Java.
Python is also a hybrid language that is typically used as a scripting language for the web application. However, Python also has the capacity to support the development of standalone software programs that can be executed independently. However, Python is not as widely applied as Java and C++, and its yet to be used in the development of a large project such as an operating system.
Programming paradigm
The programming paradigm of a language provides details on the design characteristics that must be followed during the development process. In other words, the programming paradigm provides details on the styles used to write instructions. Java programming languages support the use of various programming paradigms, such as object-oriented, reflective programming, and structured programming. Typically, Java is used due to its ability to support the object-oriented programming paradigm (McMaster & et al., 2017). In an object-oriented paradigm, messages are passed to objects and the basic unit of the program in the object. Objects have state and can do something within the software. Structured programming means that the programs have nested control. Java also supports the imperative programming paradigm meaning that the commands are written as a sequence of instructions. In imperative programming paradigm, the commands are written step-by-step and are also interpreted in the same format.
The following code samples indicate the difference between the three programming paradigms.
Object-oriented programming
Result = [];
For a in name {
If a.lastname.length>4{ Result.add(a.lastname.toUpper);
}
}
Return result.sort;
Structured programming paradigm
Result = [];
For i=0; i<length(lastname); i++{ A=lastname[i];
If length(a.lastnale)) >5 { addToList(Result, toUpper(p.name));
}
}
Return sort(result);
Imperative programming
Result = []
I = 0
Start:
Numlastname = length(lastname) If I >= numlastnale goto end
A = lastname [i]
Namelength = length(a.lastname)
If namelenght = toUpper (p.lastname) addToList (result, upperName)
next:
i = i + 1 goto start end:
return sort (result) just like Java, C++ and Python are multi-paradigm programming languages that various programming paradigms. For instance, C++ supports generic programming, structured, object- oriented, and functional programming. C++ uses procedural calls to support the imperative programming paradigm. Both C and C++ have similar programming styles. Similarly, Python also supports object-oriented and structured programming styles. Python is a hybrid language and based on its design characteristics, and it supports other programming paradigms, such as aspect-oriented programming and functional programming.
Readability
The readability of programming language is determined by the consistency of its rules and the clarity of the keywords used in the language. Java is relatively easy to learn and understand since it requires the programmer to understand only 50 keywords. As a result, the readability of Java is very effective and impressive, especially since the keywords are not complicated and are consistent. The consistency of Java is also extended to its coding rules. The use of operators, coding conversions, importing libraries, and dealing with exceptions in Java is consistent throughout the language. It is, therefore, appropriate to conclude that Java is a highly impressive and readable programming language.
Unlike Java, C++ readability is not very impressive due to the numerous inconsistencies affecting the language coding rules. Also, C++ has multiple rules and an average of 84 keywords, which are relatively difficult to understand. Some of the keywords in C++ include goto, enum, break, struct, bitand, static, auto, alignas, static_cast, case, switch, if, for, explicit, false, delete, xor, volatile, using, union, true, float, bitor among many others. the rules used to handle exceptions in C++ are also not consistent and requires the programmer to cram when to use which rules and when not to use them (Foster, 2014). On an overall note, the readability of C++ is not as impressive as the readability of Java.
Python was explicitly designed to overcome the readability challenges of other programming languages, with Java and C++ being involved. Python has only 35 keywords that are relatively easy to understand and remember. Some of these keywords are true, and, as, del, from, print, continue, while, lambda, is, try, false, return, raise, import, nonlocal, not or, exec, break and many others (Van Rossum & Drake, 2011). All the keywords in Python are English words, meaning that it is easy for the programmer to remember them and understand their use.
Furthermore, Python has a reduced set of rules and syntactic exceptions. These characteristics make Python the most readable programming language among all the three programming languages.
Simplicity
Simplicity describes the simplicity of learning a language and understand how it works. The simplicity of the three languages can be gauged by developing a simple program such as the "Hello World" program. In Java, the program will be a three-part structure with the System.out part, it is printing the message on the screen. For a beginner or a novice programmer, understanding the three parts and their functionality can be challenging, thus making Java a complicated and challenging language to learn (McMaster & et al., 2017).
Similar to Java, developing a "Hello World" program in C++ involves a series of steps that can be difficult to understand. The numerous variables that one must declare in C++ complicate the learning process even further. In Python, the creation of the same program is much simpler since the print command is in natural language. To create a "Hello World" program in Python, the programmer only need to write 'print "Hello World!" this makes Python the simplest language to learn for beginners and novice programmers.
Portability
The portability of a programming language defines the language's ability to work in different processors and operating systems. The portability of a programming language relies on the abstraction between the system interface and application logic. The Java Virtual Machine (JVM) makes Java a highly portable programming language, meaning that software and systems developed using Java can run on any processor and in any operating system. Java provides abstraction in three distinct ways, namely OS portability, CPU architecture portability, and source code portability (Foster, 2014). Software produced using Java produces a source code called J-code that enables java codes to be run in any CPU architecture. The JVM means that java programs can be run in any system regardless of the underlying java compiler, Operating System, and CPU.
Since C++ is an integral part of all major operating systems, the programming language is highly compatible with most existing technologies and systems. However, different versions of C++ such as C++11, C++98, and C++03 use different compilers, which are not compatible with each other. as a result, C++ can be said to be less compatible compared to Java. On the contrary, Python has impressive portability and can be integrated with the major operating systems such as Windows, MacOS, and Unix.
Programming environment
The programming environment defines the friendliness of the editors used by the programming languages. Java relies on two Integrated development environments (IDEs), namely Eclipse and NetBeans. C++ can also use the two IDEs used by Java since they support extensibility and plugin support. The two IDEs enable the programmer to start new projects and debug the source code during development. The programs also trace errors during development and will allow the programmer to detect them more easily. Additionally, the IDEs provide visual editors that would allow developers to develop GUI more comfortably. Visual studio is the most common option for C++, and most programmers use this tool to develop C++ programs (Satav & et al., 2011). Visual studio, NetBeans, and Eclipse are open source programs, and developers do not have to pay a fee. Pythons have numerous programming environments and can use any environment stated above. Other programming environments used by Python include PyCharm that provides features such as a debugger, unit testing, code navigation, and code completion. Other Python programming environments support Web development with Web2Py, Mako, Flask, and Django.
Usage costs
Some of the costs associated with programming languages include development costs, training costs, marketing costs, program execution costs, and maintenance costs. The usage cost of a programming language is directly proportional to its easy to learn and understand. Python is the cheapest programming language to use since it reduces the costs associated with training, development, and maintenance of Python software programs (Foster, 2014). Since Java is more readable than C++, it is less expensive than C++. C++ is the most expensive language to use between the three programming languages. The usage costs are some of the significant aspects that organizations consider when selecting the language to develop their systems.
Chapter 5 Conclusion
Many in the software development industry continue to view Java as the most appropriate language moving forward due to its extensive applicability and portability. Also, many programmers are appealed to Java as the standard programming language for software development due to its advanced features. However, Oracle must strive to develop Java and release versions that are compatible with the requirements of the modern-day requirements such as data mining and the use of Artificial Intelligence and machine learning in the development of software. C++ continues to appeal to experienced programmers as the most effective programming language to execute large programs and native coding, such as the development of complex video games. On the other hand, Python is attracting young developers who are passionate about exploiting modern-day technologies fully. Python is surpassing its close competitors such as Ruby, and it is moving forward rapidly to emerge as one of the most applied programming languages across the globe.
Implication and Recommendation
Anyone within the software engineering industry can use the underlying programming principles identified in this paper to be able to pick the right language Learning a new programming language is relatively hard, especially if one does not have the skills to distinguish the best language for him or her to learn. Continued research should be conducted to help us identify how the three languages differ in terms of exploiting modern technologies such as Internet of Thing (IoT), Artificial Intelligence and Machine learning.
References
AlHeyasat, O., Abu-Ein, A. A. K. & Sharadqeh, A. A. (2012). Time comparing Java and C++ software.
Foster, Elvis. (2014). A COMPARITIVE ANALYSIS OF THE C++, JAVA, AND PYTHON LANGUAGES.
McMaster, K., Sambasivam, S., Rague, B., & Wolthuis, S. (2017). Java vs. Python coverage of introductory programming concepts: a textbook analysis. Information Systems Education Journal, 15(3), 4.
Ogala, J. O., & Ojie, D. V. (2020). COMPARATIVE ANALYSIS OF C, C++, C# AND JAVA PROGRAMMING LANGUAGES. GSJ, 8(5).
Oguntunde, B. O. (2012). Comparative analysis of some programming languages. Transnational Journal of Science and Technology, 2(5), 107-118.
Satav, S. K., Satpathy, S. K., & Satao, K. J. (2011). A Comparative Study and Critical Analysis of Various Integrated Development Environments of C, C++, and Java Languages for Optimum Development. Universal Journal of Applied Computer Science and Technology, 1, 9-15.
Van Rossum, G., & Drake, F. L. (2011). The python language reference manual. Network Theory Ltd..