Programming Language Selection for The Development of Deep Learning Library

Oktavia Rachmawati - Electronic Engineering Polytechnic Institute of Surabaya, Surabaya, 60111, Indonesia
Ali Barakbah - Electronic Engineering Polytechnic Institute of Surabaya, Surabaya, 60111, Indonesia
Tita Karlita - Electronic Engineering Polytechnic Institute of Surabaya, Surabaya, 60111, Indonesia


Citation Format:



DOI: http://dx.doi.org/10.62527/joiv.8.1.2437

Abstract


Recently, deep learning has become very successful in various applications, leading to an increasing need for software tools to keep up with the rapid pace of innovation in deep learning research. As a result, we suggested the development of a software library related to deep learning that would be useful for researchers and practitioners in academia and industry for their research endeavors. The programming language is the core of deep learning library development, so this paper describes the selection stage to find the most suitable programming language for developing a deep learning library based on two criteria, including coverage on many projects and the ability to handle high-dimensional array processing. We addressed the comparison of programming languages with two approaches. First, we looked for the most demanding programming languages for AI Jobs by conducting a data-driven approach against the data gathered from several Job-Hunting Platforms. Then, we found the findings that imply Python, C++, and Java as the top three. After that, we compared the three most widely used programming languages by calculating interval time to three different programs that contain an array of exploitation processes. Based on the result of the experiments that were executed in the computer terminal, Java outperformed Python and C++ in two of the three experiments conducted with 5,4047 milliseconds faster than C++ and 231,1639 milliseconds faster than Python to run quick sort algorithm for arrays that contain 100.000 integer values.

 


Keywords


Programming Language; Data-Driven Approach; Software Development Life Cycle; Software Library; Deep Learning

Full Text:

PDF

References


S. E. Whang, Y. Roh, H. Song, and J.-G. Lee, “Data Collection and Quality Challenges in Deep Learning: A Data-Centric AI Perspective,” The VLDB Journal, vol. 32, pp. 791–813, 2023.

E. Stevens, L. Antiga, and T. Viehnam, Deep Learning with PyTorch. Manning, 2020.

A. Kapoor, A. Gulli, and S. Pal, Deep Learning with TensorFlow and Keras. Packt Publishing, 2022.

A. Paszke et al., “PyTorch: An Imperative Style, High-Performance Deep Learning Library,” in NIPS’19: Proceedings of the 33rd International Conference on Neural Information Processing Systems, Vancouver, 2019, pp. 8024–8035.

N. Ramadijanti, A. Barakbah, and F. A. Husna, “Automatic Breast Tumor Segmentation using Hierarchical K-means on Mammogram,” in 2018 International Electronics Symposium on Knowledge Creation and Intelligent Computing (IES-KCIC), IEEE, Oct. 2018, pp. 170–175. doi: 10.1109/KCIC.2018.8628467.

A. R. Barakbah, T. Harsono, and A. Sudarsono, “Automatic Cluster-oriented Seismicity Prediction Analysis of Earthquake Data Distribution in Indonesia,” Int J Adv Sci Eng Inf Technol, vol. 9, no. 2, pp. 587–593, Apr. 2019, doi: 10.18517/ijaseit.9.2.7269.

M. Subhan, A. Sudarsono, and A. R. Barakbah, “Classification of Radical Web Content in Indonesia using Web Content Mining and k-Nearest Neighbor Algorithm,” EMITTER International Journal of Engineering Technology, vol. 5, no. 2, pp. 328–348, Jan. 2018, doi: 10.24003/emitter.v5i2.214.

M. N. Shodiq, D. H. Kusuma, M. G. Rifqi, A. R. Barakbah, and T. Harsono, “Neural Network for Earthquake Prediction Based on Automatic Clustering in Indonesia,” JOIV : International Journal on Informatics Visualization, vol. 2, no. 1, pp. 37–43, Feb. 2018, doi: 10.30630/joiv.2.1.106.

R. Cordingly et al., “Implications of Programming Language Selection for Serverless Data Processing Pipelines,” in 2020 IEEE Intl Conf on Dependable, Autonomic and Secure Computing, Intl Conf on Pervasive Intelligence and Computing, Intl Conf on Cloud and Big Data Computing, Intl Conf on Cyber Science and Technology Congress (DASC/PiCom/CBDCom/CyberSciTech), IEEE, Aug. 2020, pp. 704–711. doi: 10.1109/DASC-PICom-CBDCom-CyberSciTech49142.2020.00120.

S. A. Abdulkareem and A. J. Abboud, “Evaluating Python, C++, JavaScript and Java Programming Languages Based on Software Complexity Calculator (Halstead Metrics),” IOP Conf Ser Mater Sci Eng, vol. 1076, Feb. 2021, doi: 10.1088/1757-899X/1076/1/012046.

H. Snyder, “Literature review as a research methodology: An overview and guidelines,” J Bus Res, vol. 104, pp. 333–339, Nov. 2019, doi: 10.1016/j.jbusres.2019.07.039.

I. Aguilera-Martos et al., “TSFEDL : A python library for time series spatio-temporal feature extraction and prediction using deep learning,” Neurocomputing, vol. 517, pp. 223–228, Jan. 2023, doi: 10.1016/j.neucom.2022.10.062.

S. Akcay, D. Ameln, A. Vaidya, B. Lakshmanan, N. Ahuja, and U. Genc, “Anomalib: A Deep Learning Library for Anomaly Detection,” in 2022 IEEE International Conference on Image Processing (ICIP), IEEE, Oct. 2022, pp. 1706–1710. doi: 10.1109/ICIP46576.2022.9897283.

F. Cunha, T. Rique, M. Perkusich, K. Gorgônio, H. Almeida, and A. Perkusich, “A Data-driven Framework to Support Team Formation in Software Projects,” in Anais do II Workshop Brasileiro de Engenharia de Software Inteligente (ISE 2022), Sociedade Brasileira de Computação, Oct. 2022, pp. 7–12. doi: 10.5753/ise.2022.227029.

N. Elgendy, A. Elragal, and T. Päivärinta, “DECAS: a modern data-driven decision theory for big data and analytics,” J Decis Syst, vol. 31, no. 4, pp. 337–373, Oct. 2022, doi: 10.1080/12460125.2021.1894674.

S. Shafiq, A. Mashkoor, C. Mayr-Dorn, and A. Egyed, “A Literature Review of Using Machine Learning in Software Development Life Cycle Stages,” IEEE Access, vol. 9, pp. 140896–140920, 2021, doi: 10.1109/ACCESS.2021.3119746.

X. Bai, M. Wang, I. Lee, Z. Yang, X. Kong, and F. Xia, “Scientific Paper Recommendation: A Survey,” IEEE Access, vol. 7, pp. 9324–9339, 2019, doi: 10.1109/ACCESS.2018.2890388.

G. Sun, H. Z. Lv, W. D. Jiang, and F. H. Li, “General process of big data analysis and visualisation,” International Journal of Computational Science and Engineering, vol. 23, no. 2, pp. 177–184, 2020, doi: 10.1504/IJCSE.2020.110543.

J. Liu et al., “Data Mining and Information Retrieval in the 21st century: A bibliographic review,” Comput Sci Rev, vol. 34, p. 100193, Nov. 2019, doi: 10.1016/j.cosrev.2019.100193.

K. Börner, A. Bueckle, and M. Ginda, “Data visualization literacy: Definitions, conceptual frameworks, exercises, and assessments,” Proceedings of the National Academy of Sciences, vol. 116, no. 6, pp. 1857–1864, Feb. 2019, doi: 10.1073/pnas.1807180116.

K. Citra and F. Wahyuni, “Exploring Demographic Variations of Freshmen to Online Learning Anxiety: A Data Visualization Analysis Based Approach,” in 2021 International Research Symposium On Advanced Engineering And Vocational Education (IRSAEVE), Malang: IEEE, Sep. 2021, pp. 33–38. doi: 10.1109/IRSAEVE52613.2021.9604012.

G. O. Odu, “Weighting methods for multi-criteria decision making technique,” Journal of Applied Sciences and Environmental Management, vol. 23, no. 8, pp. 1449–1457, Sep. 2019, doi: 10.4314/jasem.v23i8.7.

A. Nagpal and G. Gabrani, “Python for Data Analytics, Scientific and Technical Applications,” in 2019 Amity International Conference on Artificial Intelligence (AICAI), Dubai: IEEE, Feb. 2019, pp. 140–145. doi: 10.1109/AICAI.2019.8701341.

L. Ardito, R. Coppola, G. Malnati, and M. Torchiano, “Effectiveness of Kotlin vs. Java in android app development tasks,” Inf Softw Technol, vol. 127, Nov. 2020, doi: 10.1016/j.infsof.2020.106374.

A. Gyen and N. Pataki, “Comprehension of Thread Scheduling for the C++ Programming Language,” in 2021 International Conference on Data and Software Engineering (ICoDSE), Bandung: IEEE, Nov. 2021, pp. 1–6. doi: 10.1109/ICoDSE53690.2021.9648489.

S. Krishnamurthi and K. Fisler, “Programming Paradigms and Beyond,” in The Cambridge Handbook of Computing Education Research, Cambridge University Press, 2019, pp. 377–413. doi: 10.1017/9781108654555.014.

A. Adekotujo, A. Odumabo, A. Adedokun, and O. Aiyeniko, “A Comparative Study of Operating Systems: Case of Windows, UNIX, Linux, Mac, Android and iOS,” Int J Comput Appl, vol. 176, no. 39, pp. 16–23, Jul. 2020, doi: 10.5120/ijca2020920494.

J. A. Fabro, E. Teixeira Paula, A. F. G. P. Dias, and L. E. Skora, “Programming Teaching Using Flowcharts in a Simulated Environment Focused on Introducing Practical OBR,” in 2019 Latin American Robotics Symposium (LARS), 2019 Brazilian Symposium on Robotics (SBR) and 2019 Workshop on Robotics in Education (WRE), IEEE, Oct. 2019, pp. 453–458. doi: 10.1109/LARS-SBR-WRE48964.2019.00086.

A. Javed, M. Zaman, M. M. Uddin, and T. Nusrat, “An Analysis on Python Programming Language Demand and Its Recent Trend in Bangladesh,” in Proceedings of the 2019 8th International Conference on Computing and Pattern Recognition, New York, NY, USA: ACM, Oct. 2019, pp. 458–465. doi: 10.1145/3373509.3373540.

J. Pivarski, D. Lange, and P. Elmer, “Nested data structures in array frameworks,” J Phys Conf Ser, vol. 1525, no. 1, p. 012053, Apr. 2020, doi: 10.1088/1742-6596/1525/1/012053.

A. Zhang, Z. C. Lipton, M. Li, and A. J. Smola, Dive into Deep Learning. Cambridge University Press, 2023.

S. K. Gill, V. P. Singh, P. Sharma, and D. Kumar, “A comparative study of various sorting algorithms,” International Journal of Advanced Studies of Scientific ResearchInternational Journal of Advanced Studies of Scientific Research, vol. 4, no. 1, 2019.

Y. Chen, T. Su, and Z. Su, “Deep Differential Testing of JVM Implementations,” in 2019 IEEE/ACM 41st International Conference on Software Engineering (ICSE), Montreal: IEEE, May 2019, pp. 1257–1268. doi: 10.1109/ICSE.2019.00127.