The Role of Java in Modern Software Development: A Comparative Analysis with Emerging Programming Languages
DOI:
https://doi.org/10.63282/3050-922X.IJERET-V1I2P104Keywords:
Java, Software development, Emerging programming languages, Performance analysis, Scalability, Security, Interoperability, Benchmarks, Enterprise applicationsAbstract
Java will still remain in trend in current software development due to factors such as portability, scalability and durability. However, with the arrival of such languages like Python, Go, Rust, and Kotlin, for instance, some people are unsure of its value these days. This paper compares Java to these modern languages by discussing performance, security, maintainability, scalability, and developer opinions of Java. The performances are compared using the real-world uses and operative benchmarks as well as survey results. Java remains popular in applications in the enterprise environment, mobile application development with the help of the Android operating system, as well as in the development of backend systems. However, new languages are introduced by providing new things like memory safety as we talk about Rust, concurrency as in Go, and interoperability as in Kotlin. Three comparative studies, case studies, performance results, and opinions are given in the study which describes that though Java is at a very competitive place but it has to continue this competition and make changes
References
[1] Bloch, J. (2017). Effective java. Addison-Wesley Professional.
[2] Pressman, R. S. (2005). Software engineering: a practitioner's approach. Palgrave macmillan.
[3] Nanz, S., & Furia, C. A. (2015, May). A comparative study of programming languages in rosetta code. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (Vol. 1, pp. 778-788). IEEE.
[4] Fourment, M., & Gillings, M. R. (2008). A comparison of common programming languages used in bioinformatics. BMC bioinformatics, 9, 1-9.
[5] Garcia, R., Jarvi, J., Lumsdaine, A., Siek, J. G., & Willcock, J. (2003, October). A comparative study of language support for generic programming. In Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications (pp. 115-134).
[6] Knuth, D. E., & Pardo, L. T. (1980). The early development of programming languages. A history of computing in the twentieth century, 197-273.
[7] Holtz, N. M., & Rasdorf, W. J. (1988). An evaluation of programming languages and language features for engineering software development. Engineering with Computers, 3, 183-199.
[8] Ryder, B. G., Soffa, M. L., & Burnett, M. (2005). The impact of software engineering research on modern programming languages. ACM Transactions on Software Engineering and Methodology (TOSEM), 14(4), 431-477.
[9] Joshua, B. (2001). Effective Java programming language guide. Addison Wesley.
[10] Würthinger, T., Wimmer, C., & Stadler, L. (2010, September). Dynamic code evolution for Java. In Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java (pp. 10-19).
[11] McIntosh, S., Adams, B., & Hassan, A. E. (2012). The evolution of Java build systems. Empirical Software Engineering, 17, 578-608.
[12] Koved, L., Nadalin, A. J., Neal, D., & Lawson, T. (1998). The evolution of Java security. IBM systems journal, 37(3), 349-364.
[13] Mitropoulos, D., Louridas, P., Salis, V., & Spinellis, D. (2019, May). Time present and time past: analyzing the evolution of JavaScript code in the wild. In 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR) (pp. 126-137). IEEE.
[14] Dao, C. (2020). The Nature And Evolution Of JavaScript.
[15] Wolter, K., & Reinecke, P. (2010). Performance and security tradeoff. International School on Formal Methods for the Design of Computer, Communication and Software Systems, 135-167.
[16] Suganuma, T., Ogasawara, T., Takeuchi, M., Yasue, T., Kawahito, M., Ishizaki, K., ... & Nakatani, T. (2000). Overview of the IBM Java just-in-time compiler. IBM systems Journal, 39(1), 175-193.
[17] Johnson, R., Hoeller, J., Arendsen, A., & Thomas, R. (2009). Professional Java development with the Spring framework. John Wiley & Sons.
[18] Itzstein, G. S., & Jasiunas, M. (2003, September). On implementing high level concurrency in Java. In Asia-Pacific Conference on Advances in Computer Systems Architecture (pp. 151-165). Berlin, Heidelberg: Springer Berlin Heidelberg.
[19] Stoller, S. D. (2002). Testing concurrent Java programs using randomized scheduling. Electronic Notes in Theoretical Computer Science, 70(4), 142-157.
[20] Sugomori, Y., Kaluza, B., Soares, F. M., & Souza, A. M. (2017). Deep learning: Practical neural networks with java. Packt Publishing Ltd.
[21] Baesens, B., Backiel, A., & Vanden Broucke, S. (2015). Beginning Java programming: the object-oriented approach. John Wiley & Sons.