Information Science and Technology
↳ Computers
Cloud Computing and Human Resources in Malaysian Firms
Overview
According to Daher and Hajjdiab (2018), the development of cloud computing has made it easier for numerous enterprises all over the world to store vast amounts of data. The scalability and elasticity of cloud computing have made it possible for businesses' Human Resource Management (HRM) systems to store their organizations' crucial information in the cloud. For instance, the Onibere Odunayo Security (OOS-4) model has made it simpler for HRM to store data by having it deployed in the cloud. This has enabled the model to support OOS-4. Software is used in Human Resource Information Systems. This software often combines various human resource activities into a single package. These functions include recruitment, review, administration of benefits, and training. Performance analysis may also be included. The Human Resource Information Systems (HRIS), which are also known as Human Resource Management Systems (HRMS), are available to a wide variety of businesses. It incorporates a strategy approach that comprises storing, collecting, validating, maintaining, and retrieving data required by a specific business about its personnel activities, human resources, and organizational unit attributes (Linthicum, 2018). The data can be retrieved as needed.
Purpose of the research
When a company's essential data is kept in the cloud, it opens the door to a number of potential problems. These problems are mostly associated with the safety of the data, which calls for an exhaustive investigation into the dangers posed by cloud computing (Guo, 2019). In addition, it is vital to have a conversation about the different facets of cloud computing, with the goal of formulating solutions to the specific vulnerabilities that have been found in order to keep the organization's data secure. Concerns with the security of cloud computing include the virtualization of systems and the sharing of resources. According to Linthicum (2018), organizations and service providers of cloud storage should work together to develop solutions for improving cloud storage security that are based on unique security concerns. In addition, cloud human resource managers are equipped with a variety of modules to ensure that all tasks related to human resources are improved. For instance, choosing the appropriate benefit modules guarantees that management will have complete access to the benefit programs offered to employees. According to Xu et al.'s research from 2020, these benefit plans make it simple to implement other methods like adjusting salary schedules, saving for the education of children, and putting money away for medical expenses.
Literature review
According to Guo (2019), human resource management entails educating, recruiting, compensating, and evaluating workers, in addition to providing an acceptable response to their issues over justice, labor relations, and health and safety. Computing in the cloud, on the other hand, refers to a method to information processing in which computing capabilities that are generally handled centrally are typically provided in the form of services. These computing capabilities are typically offered to a variety of user-interfacing devices throughout the network systems in accordance with the individual requirements of each device. Computing in the cloud has given rise to a new facet of information technology, which is centered on the provision of a wide variety of services to clients. It is currently utilizing large amounts of computing power and storage space that is associated with cloud storage service providers in order to make sure that computing is made easier for a variety of customers and that their experience is improved. According to Hussein (2018), cloud computing is defined as a platform that makes a variety of services available to its customers based on the demand of users located all over the world.
According to Daher and Hajjdiab (2018), the top players in the platform, such as Microsoft, Google, and Amazon, are delivering cloud computing services that include platform as a service (PaaS), infrastructure as a service (IaaS), and software as a service (SaaS) for their customers to utilize (PaaS, IaaS, and SaaS). The Platform as a Service (PaaS) architecture gives its users the ability to create and develop their own apps without having to worry about storage or processors. Users of Google App Engine, which is an example of a platform as a service, have the ability to launch their apps using the programming languages Java and Python thanks to Google App Engine. Additionally, cloud computing has the potential to provide a large amount of leverage for use in human resource management systems. This is because there are many enormous datasets that need to be able to be accessed and stored with ease. It makes sure that human resource managers are able to concentrate on the applications, while cloud computing service providers take care of providing the essential facilities (Hussein, 2018).
Many people are concerned about the safety of their data while it is stored in the cloud, and the majority of these debates are centered on the activities that take place in the cloud (Hasan et al., 2020). It was clear that the data as well as the assets consisting of computing equipment and assets needed to be safeguarded. One user of cloud computing may access the databases of other customers using the cloud platform, despite the fact that this presents various opportunities. On the other hand, in order to limit or decrease the number of instances in which other users access data that belongs to other companies or users, the organizations that are utilizing the program are supposed to allocate certain privileges and roles to specific parties. In addition, there has been a rise in the number of attacks that are cloud-based, but strategies and precautions are being developed to prevent incidents of this nature. According to Xu et al.'s research from 2020, the level of data security that is connected with cloud storage should be sufficient to inspire sufficient trust that the platform is safer for enterprises to store their essential data.
Practical applications
Because it provides both local and global security designs that are relevant to military contexts for human resource information systems, the OOS-4 model is extremely important. This is related to the fact that the model is associated with applying sensitive sorts of information due to the presence of multiple levels of protection measures. The OOS-4 was developed to enable departmental and management security levels, where permission is necessary to post and create summary. This was done with the intention of preventing unauthorized access. In a more fundamental sense, the model generates an organization that possesses the appropriate people at the required places at the required time, which is also carried out in an environment that is more secure (Hasan et al., 2020).
According to Xie, 2020, the operational human resource management process, which includes retirement, hiring, training, and deployment, should be carried out in settings that maintain confidentiality and exclude external parties. In addition, strategic human resource management, which provides organizations that are subject to checks with future orientations for their businesses. It also focuses on how management, integrated administrative, and personnel systems ought to be deployed in an effective manner in order to support functional processes both inside and outside the country. For instance, making key information essential for United Nations observation missions available to individuals could lead to intense lobbying on the part of the personnel. The primary purpose that the human resource models provide is to aid in the comprehension and examination of work organization, workforce governance, reward systems, and staffing structures. Management of human resources is an essential function since it plays an important part in fostering positive worker interactions, which are shaped by a variety of different circumstances. According to Ankrah and Sokro (2016), the presence of factors such as these has the potential to significantly impact the level of confidentiality maintained by a system. (Ankrah & Sokro, 2016) The final point is that the human resource system is a data-intensive approach, which means that the records of the organization are typically kept in the form of a database. The database contains all of the records of a specific company that have been captured by the applications. This database is also a typical target for cybercriminals because it contains sensitive company information. It is not always the case that data security is considered until the development of the applications, despite the fact that fixes are issued routinely. The majority of publicly administered human resource management systems either make insufficient use of data encryption or do not use it at all to protect the organization's database. On the other hand, the human resource management system that is available to the public ought to implement data encryption, and Google should make certain that its platforms require apps to be created in programming languages and deployed in runtime environments that are either Python or Java.
On the platform for cloud storage, the applications can be accessed either free domain names or the users' own domains. This will ensure that companies are able to easily manage the human resource information systems thanks to the anonymity that is produced by the cloud storage once the information has been encrypted. This will lead to minimal effects from external variables, which will improve the operations of human resource management (Xie, 2020).
Conclusion
Cloud storage is an essential component of the storage and data protection landscape. The processes of selecting, recruiting, retiring, training, and deploying personnel can all be improved with the help of human resource management in an organization. Because each user's needs are treated uniquely, the cloud storage will provide a level of protection that is superior to that provided by traditional methods. This protection will be provided to the data that is stored there. In most cases, the records that are obtained from the clouds using the applications are in the form of plain text. If you view them from records, they will appear in the form of numbers, which will make it more difficult for persons to gain illegal access to such data and use it. Because of this, it is more difficult for outside forces to access the data of the business and utilize those data to exert influence over the functions of human resource management.
References
Ankrah, E., & Sokro, E. (2016). Intention and Usage of Human Resource Information Systems among Ghanaian Human Resource Managers. International Journal Of Business And Management, 11(2), 241. https://doi.org/10.5539/ijbm.v11n2p241
Daher, Z., & Hajjdiab, H. (2018). Cloud Storage Comparative Analysis Amazon Simple Storage vs Microsoft Azure Blob Storage. International Journal Of Machine Learning And Computing, 8(1), 85-89. https://doi.org/10.18178/ijmlc.2018.8.1.668
GUO, W. (2019). An Analysis of the Innovative Model of Enterprise Information Resource Management Based on "Internet +" and Cloud Computing. Destech Transactions On Social Science, Education And Human Science, (iced). https://doi.org/10.12783/dtssehs/icesd2019/29864
Hasan, M., E, B., Almamun, M., & K, S. (2020). An Intelligent Machine Learning and Self Adaptive Resource Allocation Framework for Cloud Computing Environment. EAI Endorsed Transactions On Cloud Systems, 6(18), 165501. https://doi.org/10.4108/eai.13- 7-2018.165501
Hussein, L. (2018). The Relationship Between Information Technology Governance and Human Resource Information Systems Infrastructure. TANMIYAT AL-RAFIDAIN, 37(120), 115- 130. https://doi.org/10.33899/tanra.2018.159991
Linthicum, D. (2018). Approaching Cloud Computing Performance. IEEE Cloud Computing, 5(2), 33-36. https://doi.org/10.1109/mcc.2018.022171665
Xie, Q. (2020). Machine learning in the human resource system of the intelligent manufacturing industry. Enterprise Information Systems, 1-21. https://doi.org/10.1080/17517575.2019.1710862
Xu, Z., Zhang, Y., Li, H., Yang, W., & Qi, Q. (2020). Dynamic resource provisioning for cyber- physical systems in cloud-fog-edge computing. Journal Of Cloud Computing, 9(1). https://doi.org/10.1186/s13677-020-00181-y
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..
Information Science and Technology
↳ Computers
My Journey Learning PHP in Web Development - Reflection Paper
As a Web Development major, I have learned to appreciate the exhilarating moment when my mind engages a new language. Learning PHP has been an experience, to say the least. There were a few times where I incorporated JavaScript, whereas that is a language that I am comfortable with, and I guess by default, that is typically what I code. In the beginning of the course, I was worried about what software I should use, and what would be acceptable, but thankfully I just had to click on the link that was provided, and it was smooth sailing from there. This course has been very informative, and unfortunately due to some inconvenient illness, I got pretty behind. I would suggest to any future student to make sure you do not get behind. Playing catchup can be very difficult, especially when you are a full-time student and working a full-time job. It is best to just stay on top of the workload, and if you run into any issues, just reach out to the professor, and hopefully work something out.
Throughout the duration of this course, there has been many up’s and downs. A few ups have been learning the capabilities of PHP. It is tremendous. I have taken Python, JavaScript, C# and ASP.NET and I am happy to add PHP to this list. I really enjoy learning a new language and comparing them to the other languages that I have learned. Now sadly we must take the good with the bad. I did not enjoy the day and time of the meet. I had to watch the meets recording the day after, or while doing my homework. I know it is hard to determine and set an appropriate time for the meet that works for everyone, which I am sure is difficult.
A few significant learning moments in this course was learning about PHP form Processes and how you can use $_GET, $_POST, or $_REQUEST superglobal arrays to access form data. I found this very interesting. I also enjoyed learning about the form processing workflow – Access the value in $_POST(carefully), check that the submitted value is valid, process the value(MVC) and then redirect or render a template. There was a video based on this process which was located in the week four videos section and the video went over an example which was very informative. I understood this process much better because of it.
Nevertheless, I had multiple ah ha moments. As mentioned before, I was very worried about what software we would be using. I was dreading the first homework assignment because it is always a hassle to get a grasp of things right in the beginning. I worried so much about the first assignment and then when I opened the link, I realized the professor included a starter link to the opensource site that we would be modifying. This was a great a moment for me, and as also a relief. Another ah ha moment was when I was completing homework ten. I was having issues with question two - Alice and Bob want to have a private (encrypted) email conversation. Explain how Alice can send a secure email to Bob using public/private key cryptography. I am not sure where my head was at during this, but I initially wrote something completely off the wall, and then I remembered something very similar being discussed in the weekly videos. I then located said video and the video touched based on a similar scenario. I was relieved that I remembered something so similar and was able to refer back to it and get full credit for that question.
Lastly, based on my experience and expectations, how would I characterize what I have learned in this course? For starters, I was nervous for this class. I took python last semester, I am more comfortable coding in JavaScript, and I code in SQL every single day for work. I was nervous that I would get too confused. Every language is different. I am very experienced in SQL, I like coding in JavaScript, and the last programming language I took was Python. It is a mess. I was nervous that I would code one line in JavaScript, the next in SQL, and so on so forth. I however think I did okay. On the first few assignments, I got some feedback that I was coding in JavaScript. Which I will admit did not surprise me, but once I got that feedback, I made sure that I was coding in PHP. I will say that I enjoyed the database section of the course. It was a break from programming language, so I just focused on the basic SQL. I work with ER diagrams, relational databases every day. I work in the IT Department for Genesis HealthCare as a Reporting Analyst. English Is our first language there, SQL is our second, and Clinical terminology is our third (I consider this another language because of how extensive it is). Now to characterize this all to what I have learned in this class, I would say I learned how to differentiate PHP with other languages and I learned that it is an open source language, which is always convenient. I created my Mother’s website using Bootstrap, which was self-taught, and if I would have known this language beforehand, I probably would have attempted to create her website using PHP frameworks.
In conclusion, I enjoyed this course. I got behind, and I will receive a low grade, but I actually enjoyed learning this language. The capabilities are impeccable and if my mother ever needs me to modify her website, I might just rebuild it using a php framework. I would not mind learning more about the language, and configuring something using PHP and maybe the ah ha moments do not have to stop because the course ended. Thank you for everything Professor Whitney.