With the onset of technology and technology devices, Ecommerce has become so popular across the world. Due to complexity of life, most working people have a limited time to do their shopping in stores and supermarket (Kabbaj, 2018). Ecommerce therefore servers a very big significance in enabling such people to do shopping and their own leisure time from any location. The only requirement is a either a computer or a mobile device that has access to the internet and an online shopping platform best suitable for the type of shopping they want to do. The Ecommerce business became possible back in the year 1991 when the internet was officially opened to commercial use. From the time when the Ecommerce businesses, they have been huge growth of platforms that offer online shopping.
The growth of Ecommerce was boosted when electronic transaction was enabled (Mahipal, Shankaraiah, 2018). This enabled customers to pay for their goods and services as they shop. This improved the efficiency of online shopping and various platforms recorded an increase in the number of users due to this functionality. Statistics from a study conducted in 2019 indicates that most people have turned to online shopping to take care of all their shopping needs from furniture to groceries and food products. In fact, most shoppers solely depend on online shopping, while others browse through the online platforms and go to do their shopping physically in the nearby stores. Therefore, the online platforms have a lot of significance and benefits to the Ecommerce business.
Ecommerce businesses has grown and advanced in trend with the modern technology accommodating more and more complex operations as the system develops. Ecommerce can be defined as the activity of buying and selling of goods through electronic devices over the internet and online services. The main operations that are supported by Ecommerce include, business aspects, finance, marketing through the internet, online transaction and electronic funds transfer, collection of marketing data as well as supply and chain management (Laudon, & Traver, 2016). Therefore, any Ecommerce platform should be able to integrate and handle all this activities and processes to ensure effective service delivery to the customers with a reasonable level of profit to the investors. The system should also ensure a level of security to the financial aspects of the online platforms as well as the security of any other information and resources used by Ecommerce.
There are a variety of platforms and programming languages that have been developed to host and build such online shopping platforms. Each of these methods have limitations and specifications of the type of platform that they need to put up (El-sheikh, & Mergani, 2017). Ecommerce businesses can either be large scale or small-scale operations. This factor also determines the type of programming language, tools and platforms that will be used to handle the specific operations of online businesses.
For small scale business, technology has availed simple pre-coded platforms that are used to develop online shopping platforms that will support basic operations of the platforms. Such platforms will require the users not to have any programming or coding knowledge to put up an Ecommerce system. However, such pre-coded platforms leave small room for modifications of operations of the Ecommerce systems. Such platforms include, WordPress and WooCommerce (Gunawan, Wahyuni, & Akmal, 2019).
Out of the highlighted languages, Python is the most foregone language due to a variety of reasons and benefits (Saabith, Fareez, & Vinothraj, 2019). First of all, the language is simple to learn and simplifies processes that might be complex in other programming languages to a walk in the pack. The language has efficient and improved readability that makes the process of developing Ecommerce platforms and domains easy. The language is also widely used in other applications which makes it easy to learn. The language has recommended Ecommerce frameworks such as Django that are very prominent and well pronounced in Ecommerce platforms.
Why is Django best fit for online Ecommerce development (Ullah, Ullah, Maqsood, & Hafeez, 2018)? The framework is associated with several benefits such as,
Speed. This is one of the best benefits of the framework. It provides Python designers with a robust tool that hastens the entire process of developing Ecommerce platforms. This tool is best suited for people who are working under timeline and a deadline for the development of the platform. It helps the developers to get their platforms ready before the set deadlines.
The framework is secure. This framework is popular for identifying and eliminating vulnerabilities in codes, whether the vulnerability is intentional or accidental. The end results is that the platform will be sure from cyber-attackers who may exploits such vulnerabilities through, cross-site scripting and SQL injections.
Simplicity. As described above, Python language is easy to learn and so is Django framework. Therefore, developers are ensured of less difficulties while developing the Ecommerce platform with assured speed, effectiveness and productivity. The most advantageous simplicity is the short lines of codes required to create a certain command.
Python is well developed and widely applied in a vast number of operations across industries. Therefore, it is very easy to get the help and support needed in case a developer encounters a problem while developing their platform.
Scalability. The language can be applied to relatively small and large Ecommerce platforms.
It offers a huge number of libraries and add-ons. Ecommerce platforms requires a wide functionality to integrate all the operations required. Django framework offers a wide variety of ready to use tools to accommodate the wide range of functionalities (Kabir, Hasan, Rahman, & Tao, 2018).
Compilation Methods To Be Used.
Python programming language is one of the fastest and widely used programming language and has been employed in many fields due to number of advantages. One of this advantage is improvement of compilation rate since there is no time required to compile the source code to machine code. A compiler plays an important role in converting programming language into low-level language that is easy to understand by the assembly and deduced to logical inputs. The language has a number of compilers but in the development of Ecommerce, there are seven main compilation methods that will be most applicable (Dedner, & Nolte, 2018). These compilation methods are widely used in development of mobile applications and web-based applications which are the key stakeholders in the development of Ecommerce platform.
The compilers to be used are,
Rationale for the compilers.
jPython. The main advantage of this compiler is that it allows for combination of python programming to an immense variety of java computer-generated machine. For Ecommerce this is a very powerful functionality that increases the range of machines that the system will run in. another added advantage is that jPython can receive and run any java class as well as compile the code to bytecode for effective execution.
IronPython. This compiler will target the resources that use the .NET framework. This is also an important framework for developing we-based applications. The entire implementation is usually written in C#. This compiler makes use of the .NET framework for writing dynamic language. This complier assures an effective utilization of the huge user interface libraries that are availed by .NET framework. This is especially important for Ecommerce since it will require development of user-friendly interface.
CPython. This compiler is developed in both python and C language. These two languages are most commonly used for development of online platform which increases the popularity of this compiler.
Nuitika. This compiler is important for the development of Ecommerce platforms since it diversifies the use of other programming languages such as C and C++ extensions. This compiler allows for these operations even if the device used to develop the program has no version of python installed in the system (Dedner, Kane, Klöfkorn, & Nolte, 2019).
Stakcless Python. This compiler introduces a functionality that is known as micro thread approach. It will utilize high level of programming language as well as interpreter that is mainly advantageous for using multithreaded programming. This type of programming helps in applying programming skills without compromising the performance issues and functionalities that is associated with other multithreaded languages.
ActivePython. The main advantage of ActivePython is that it allows for installation of a variety of platforms. These platforms include even the platforms that are not supported by Python source code. Therefore, the developer is presented with options of blending in other programming tools that will help the Ecommerce platform gain the necessary functionalities to handle all the needs of online shoppers and other stake holders and processes that are associated with Ecommerce at various levels (Miller, Ranum, & Anderson, 2019).
Compilers are important in any programming language especially Python. In reflection to that, Ecommerce platforms requires a diverse set of operations in order to facilitate all the intended functionality of the platform. Therefore, the developer may be requiring to consider a lot of programming languages to facilitate its functionality (Johansson, 2018). This makes a complier very important in developing a multipurpose platform. There are other compilers that will be used during the development of the platform, but they don’t play a big role in the development. Such compilers include,
Memory Management And Scoping Features.
In python programing, memory management is defined as the process by which programs read and write data. For a program to run, the memory manger has to find free enough space to allocate data associated with the program (Srinath, 2017). Ecommerce programs deals with a huge amount of data that needs to be managed effectively so that to allow for proper functioning of the platform towards the main functions of the system.
In normal operations of a computer system, there are usually layers of generalization from the hardware of the computer to CPython. The operating system should be able to create a virtual storage and memory layer to enable Python applications to run. From there, the virtual memory manger should be able to slice out a portion of the memory for the Python process to run (Ismail, & Suh, 2018). As illustrated in the figure below, the image shows two sections with different colors, the larger part which is in gray shows the sliced-up chuck o memory that is reserved for running Python program.
Figure 1. Memory management
Python will use a part of the memory mainly for internal use purposes and non-object memory. The other remaining portion in green shade the left out for object storage.
This programming language, CPython usually has an object allocator whose sole purpose is assigning memory inside the object memory section identified in figure 1 above. This allocator is called any time an object requires space added or deleted. This process does not involve much data and time which suites the development of Ecommerce platform within the shortest time possible (Mendoza, Baker, & Pankow, 2019).
Garbage collection. A good programming language need to have an effective garbage collection policy. This can be compared to real time example of a book. In some books, some stories are not visited as frequents as they used to be in the past. Therefore, these stories tend to lose meaning in the book. In Python, such stories can be associated to an object that has a reference count that has dropped to zero. However, the reference number can be increased through various ways. Example is when if the reference number is assigned to a different variable. If the object is passed as an argument, the reference number is also increased. The importance of having reference numbers with different values is to determine which object should be assigned a particular memory based on its importance. Objects with high frequent numbers are given the highest priority in terms of memory allocation. Those objects with reference numbers 0, a deallocation function is activated which frees the memory. The freed memory can be used by other objects that require the memory for development process. This is a well-defined functionality of Python programming language that makes it suitable for Ecommerce platform development (van de Leemput, Teuwen, Ginneken, & Manniesing, 2019).
Specifications And Rationale For Major Language FEATURE.
This section will discuss the main features that makes Python language best suitable for developing Ecommerce platforms. These features helps in the incorporation of all the major features and functionalities of an Ecommerce platform that will effectively satisfy the needs and specifications of their customers.
Planning and execution.
The main rationale for this step is help the developer have a work plan for the activities and processes related to the creation of the Ecommerce platform. This step is important in determining the types of compilers, tools and data type to use during development of the program.
Development of virtual environment. This is an important step of breaking up the python system to fit the specifications and properties of your OS. In addition, a library is needed to manage the virtual environments.
Figure 2. Installing virtual environment library.
Figure 3. Editing virtual environment profile
Two main approaches will be used for code construction.
Generate code in a text case and execute it with Python
Generate code in a text file and import it into the Python REPL.
Creating workspace. Creating the space where the development will take place.
Figure 4. Creating workspace
To begin with, a script will be created first. This will include the various data types and the specific commands that will call the required functions of the platform.
Figure 5. Creating scripts.
The following image represents a way in which codes are executed using Python.
Figure 6. Command line for execution of scripts.
Structuring the project. This is also a very important step that helps in simplifying the work done while developing the program.
Figure 7. Project structure.
Figure 8. Initializing test
Python has gained popularity among many developers due to its simplicity at different levels. According to surveys and comparison done by IEEE survey, the language is easy to learn as compared to other programming languages the like of C and Java programming (Kumar, & Panda, 2019). Python can be used by both beginners and professionals and still show a high level of effectiveness for the purpose they are intended for. The language does not confuse users by complicated syntax therefore ensuring little time is used developing an application. In addition, this functionality makes it very useful in developing program parts that require rapid delivery and maintenance.
Python programming language is an orthogonal language. This means that a moderately small part of original constructs can be joined in a fairly small number of ways to come up with the controls and data structures that define the language. Therefore, the developer will be able to make informed precise guesses about new features after working with Python for a while. The developer therefore will save on time while making decision which will reduce the sum amount of time that will be used during the development of the software. This will also improve the interaction of the developer and the programming language which will increase the chances of success of the program being developed (Ali, Akhtar, Faris, Mala, & Zia, 2016).
Python has a broad type of data (VanderPlas, 2016). This makes the programming language easy to work with. Data types determines the type of operations that can be performed during development. Based on the nature of Ecommerce platforms, a wide range of operations are needed. Types of standard built-in data types in Python include,
Numeric data which has thee following categories, integers that represent negative or positive numbers without fractions, float which a real number with a floating point with fractions represented as decimals and complex numbers (Betancourt, & Chen, 2019).
Sequence type data. This represent an ordered group of different or same data types. They include, string data which is represented in single, double or triple quotes, list data defined as a collection of data including different data types put in square brackets and tuple data type represents same data type as a list but put in parenthesis.
Dictionary data type. This is a collection of unordered data types in a key. This gives in room for dynamic and robust modifications when developing a program.
Mutable and immutable objects (Brownlee, 2017).
This is a representation of rules governing how a python program will be developed (Diamond, & Boyd, 2016). This is important because it serves as guidelines to develop a well-structured program with reduced errors and weaknesses. They include,
Python line structure. Python is well structured. The end of each logical and physical lines is clearly terminated to ensure that the code being written will call the necessary operations.
Figure 9. Line structure
Comments. Python gives in room for comments which begins with a (#) character. Such characters are ignored by interpreter while compiling the code. The comments help the developers to make special notes about some codes so that he is able to build operations guided by the comments.
Figure 10. comments
Joining two lines. In any scenario that the developer will be required to write a long code which is common in designing Ecommerce platforms, one is able to break a logical line into one or more physical lines using () as shown in the figure bellow (Ireland, & Martin, 2020).
Figure 11. Joining two lines.
Making several statements on a single line using (;).
Figure 12. Making multiple lines.
Support For Abstraction.
This can be defined as a way of concealing the complexity of an object and only showing the essential parts of the object. In Python programing, this is achieved through abstract classes and interfaces (Mih?il?, B?lan, Curpen, & Sandu, 2017).
An abstract class will provide an incomplete functionality made up of several abstract methods. These methods are implemented by subclasses. On the other hand, interfaces will provide only the methods names. Implementation of such methods contained in an interface is offered by subclasses. Below is an example of abstraction using abstract class. The scenario presents a payment method which will be important for Ecommerce platform.
Figure 13. Abstraction.
This will specify the creation of variables in Python programming language. The type of the variable however will be determined by the different Python compilers (Boone, de Bruin, Langerak, & Stelmach, 2019). For Python language, dynamic type checking is most applicable. In this approach, the type of variables will be determined at runtime and not in the code. This type of type checking is associated with a lot of advantages such as the developer is be able to identify and eradicate some errors before running the program. Other benefits include,
It is simpler compared to statistical type checking.
It is quicker to read.
It is easy to test or debug.
It is also fairly easy to implement.
Ecommerce platforms will involve large codebases therefore dynamically typed code will be most effective.
An alias is a second name given to a type of data. Python aliasing is important since it becomes easier for the programmer to have a second name of data rather than copying the code. This will help reduce redundancy in the code. As a result, the program will only have the most important codes therefore saving the developer time and space used in developing space. In the cases where the data type is immutable, the data cannot change therefore aliasing does not matter. In the cases that the data cab change, aliasing can cause bugs that are hard to find. Aliasing is common where a valuable’s value is assigned to an alternative variable (Eberhardt, Steffen, Raychev, & Vechev, 2019).
In Python assignment of any value to the alias will result in breaking of the alias identifier and creation of a separate variable with the same name. This eliminates the chances and consequences of creating an alias in place of a new variable (Barsotti, Bordese, & Hayes, 2018).
Ecommerce platforms contributes to a large fraction of the world economy. There serves great importance in simplifying the activities conducted by man (Goumy, & Mejri, 2018). Due to their advantages, many service providers have come up with tools to help create such platforms. It is the duty of the developer to determine which tools and programming language to use for the development of such programs. The write up below is a discussion of how python language is best suited for developing such multi-purpose platforms.
Kabbaj, M. W. (2018). The Major Factors That Contribute To E-Commerce Growth In The US And China: Analyses And Adoption By Morocco.
Mahipal, D., & Shankaraiah, K. (2018). E-commerce Growth in India: A Study of Segments Contribution. Academy of Marketing Studies Journal.
Goumy, S., & Mejri, M. A. (2018). Ecommerce Product Title Classification. In [email protected] SIGIR.
Laudon, K. C., & Traver, C. G. (2016). E-commerce: business, technology, society.
El-sheikh, A. H., Ali, E. M., & Mergani, N. L. (2017). E-COMMERCE PLATFORM IN SUDAN.
Gunawan, A., Wahyuni, N., & Akmal, R. (2019, December). Designing market systems with content management system (CMS) WordPress. In IOP Conference Series: Materials Science and Engineering (Vol. 673, No. 1, p. 012094). IOP Publishing.
Isaac, G., Meacham, S., Hamzeh, H., Stefanidis, A., & Phalp, K. T. (2018, June). An adaptive E-commerce application using web framework technology and machine learning. BCS.
Saabith, A. S., Fareez, M. M. M., & Vinothraj, T. (2019). PYTHON CURRENT TREND APPLICATIONS-AN OVERVIEW. Development, 6(10).
Faruk, M. (2016). DEVELOPMENT OF A COMMERCIAL WEBSITE.
Kabir, M. N., Hasan, M. M., Rahman, M. A., & Tao, H. (2018). Development of a web-extension for authentication of online Hadith texts. International Journal of Engineering & Technology, 7(2. 5), 19-22.
Ullah, H., Ullah, Z., Maqsood, S., & Hafeez, A. (2018). Web Scraper Revealing Trends of Target Products and New Insights in Online Shopping Websites. INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND APPLICATIONS, 9(6), 427-432.
Dedner, A., & Nolte, M. (2018). The dune python module. arXiv preprint arXiv:1807.05252.
Dedner, A., Kane, B., Klöfkorn, R., & Nolte, M. (2019). Python framework for hp-adaptive discontinuous Galerkin methods for two-phase flow in porous media. Applied Mathematical Modelling, 67, 179-200.
Miller, B. N., Ranum, D. L., & Anderson, J. (2019). Python programming in context. Jones & Bartlett Learning.
Johansson, R. (2018). Numerical Python: Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib. Apress.
Srinath, K. R. (2017). Python–The Fastest Growing Programming Language. International Research Journal of Engineering and Technology (IRJET), 4(12), 354-357.
Ismail, M., & Suh, G. E. (2018, September). Quantitative Overhead Analysis for Python. In 2018 IEEE International Symposium on Workload Characterization (IISWC) (pp. 36-47). IEEE.
Kumar, A., & Panda, S. P. (2019, February). A Survey: How Python Pitches in IT-World. In 2019 International Conference on Machine Learning, Big Data, Cloud and Parallel Computing (COMITCon) (pp. 248-251). IEEE.
Mendoza, K. A., Baker, B., & Pankow, K. L. (2019). ANXCOR: Ambient Noise Cross-Correlation with Python. AGUFM, 2019, NS21A-01.
van de Leemput, S. C., Teuwen, J. J. B., Ginneken, B. V., & Manniesing, R. (2019). MemCNN: A Python/PyTorch package for creating memory-efficient invertible neural networks.
Ali, T. J., Akhtar, P., Faris, M., Mala, I., & Zia, S. S. (2016). Implementation of Discrete Fourier Transform and Orthogonal Discrete Wavelet Transform in Python. Journal of Independent Studies and Research, 14(1), 1.
VanderPlas, J. (2016). Python data science handbook: Essential tools for working with data. " O'Reilly Media, Inc.".
Betancourt, R., & Chen, S. (2019). Python Types and Formatting. In Python for SAS Users (pp. 27-63). Apress, Berkeley, CA.
Brownlee, J. (2017). Long Short-term Memory Networks with Python: Develop Sequence Prediction Models with Deep Learning. Machine Learning Mastery.
Diamond, S., & Boyd, S. (2016). CVXPY: A Python-embedded modeling language for convex optimization. The Journal of Machine Learning Research, 17(1), 2909-2913.
Ireland, S. M., & Martin, A. C. (2020). atomium—a Python structure parser. Bioinformatics.
Mih?il?, P., B?lan, T., Curpen, R., & Sandu, F. (2017). Network Automation and Abstraction using Python Programming Methods. MACRo 2015, 2(1), 95-103.
Boone, C., de Bruin, N., Langerak, A., & Stelmach, F. (2019). DLTPy: Deep Learning Type Inference of Python Function Signatures using Natural Language Context. arXiv preprint arXiv:1912.00680.
Eberhardt, J., Steffen, S., Raychev, V., & Vechev, M. (2019, June). Unsupervised learning of API aliasing specifications. In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (pp. 745-759).
Barsotti, D., Bordese, A. M., & Hayes, T. (2018). PEF: Python Error Finder. Electr. Notes Theor. Comput. Sci., 339, 21-41.