ANALYSIS OF USER PREFERENCES WHEN SELECTING PLATFORMS AND TOOLS FOR THE DEVELOPMENT OF DISTRIBUTED SYSTEMS IN THE JAVA LANGUAGE
ANALYSIS OF USER PREFERENCES WHEN SELECTING PLATFORMS AND TOOLS FOR THE DEVELOPMENT OF DISTRIBUTED SYSTEMS IN THE JAVA LANGUAGE
Vladislav Shtark
Undergraduate, Turan University,
Kazakhstan, Almaty
Bakhytzhan Akhmetov
Doctor of Technical Sciences, Professor, Turan University,
Kazakhstan, Almaty
Every day a person chooses more and more convenient things for his life to get the maximum convenience and comfort of his life. Modern specialists in the field of information technology are trying to help humanity as much as possible and give a product with which it will be possible to solve a huge number of problems in various areas of human life and existence. This product should be user-friendly, have high performance and low response time.
However, as the modern market shows, in both cases, distributed architecture is increasingly being used in application development. Using a distributed architecture, developers immediately solve several problems, such as fault tolerance, performance, portability, testability. Such developments are becoming more popular among modern companies that are willing to spend money on a product that can simplify or optimize existing processes, and further expand their functionality without sacrificing performance.
The main problem for a young developer in the current realities is the lack of a unified system for selecting components, frameworks, libraries based on the preferences of other developers and global trends, analyzing the compatibility of technologies and their use, with which the process would be optimized.
The main idea is to develop a system for analyzing preferences when choosing platforms and tools for development, which has no analogues on the market today. Such a system would help the developer get information about how many projects use certain components, which version is popular, including even minor ones, which libraries can be useful and which are used by his colleagues from all over the world with similar tasks, in the future the system could help the developer in an in-depth study of the tools and development tools he uses.
Today, the Java programming language is one of the most common languages for creating distributed systems, and its compatibility with Kotlin gives it the best chance of being used in the modern world. At the end of 2021, there were 184,861 commercial projects developed in Java, including Alibaba, ESPN, SnapDeal. Table 1 provides data on the latest versions of the frameworks, using dependency usage statistics from the maven/gradle repositories and the official sources for Java and Kotlin to choose from.
Table 1.
Data on the use of tools and platforms in the development of new projects
Tool / platform |
Number of uses |
Usage % |
Last release date |
Spring Boot |
6161 |
36,1 |
March 2022 |
Spring MVC |
4031 |
23,6 |
March 2022 |
JSF |
496 |
2,9 |
August 2011 |
Struts 2 |
207 |
1,2 |
April 2022 |
GWT |
1972 |
11,5 |
May 2020 |
Dropwizard |
629 |
3,6 |
March 2022 |
Apache Wicket |
418 |
2,4 |
March 2022 |
Grails |
1186 |
6,9 |
March 2022 |
Jakarta EE |
65 |
0,3 |
March 2022 |
As you can see from Table 1, the developer has a choice of over 10 large frameworks, not to mention smaller frameworks and libraries, of which there are several hundred thousand just for Java.
Table 2.
Java programming language version data
Version |
Release date |
End of support |
End year of LTS |
JDK 1.0 |
1996 (January) |
|
|
JDK 1.1 |
1997 (February) |
|
|
J2SE 1.2 |
1998 (December) |
|
|
J2SE 1.3 |
2000 (May) |
|
|
J2SE 1.4 |
2002 (February) |
2008 (October) |
2013 (February) |
J2SE 5.0 |
2004 (September) |
2009 (November) |
2015 (April) |
Java SE 6 |
2006 (December) |
2013 (April) |
2018 (December) |
Java SE 7 |
2011 (July) |
2015 (April) |
2022 (July) |
Java SE 8 (LTS) |
2014 (March) |
2019 (January) |
2025 (March) |
Java SE 9 |
2017 (September) |
2018 (March) |
|
Java SE 10 |
2018 (March) |
2018 (September) |
|
Java SE 11 (LTS) |
2018 (September) |
2022 (September) |
2026 (September) |
Java SE 12 |
2019 (March) |
2019 (September) |
|
Java SE 13 |
2019 (September) |
2020 (March) |
|
Java SE 14 |
2020 (March) |
2020 (September) |
|
Java SE 15 |
2020 (September) |
March 2021 |
|
Java SE 16 |
2021 (March) |
September 2021 |
|
Java SE 17 |
2021 (September) |
September 2030 |
|
User preference is the conscious or unconscious recognition of an advantage in making a choice by the user. User preferences are made up of previous experience, the experience of acquaintances, reviews. Groups of people with similar preferences and interest in a particular product or product form a target group, to identify which various methods are used to identify target groups and analyze user preferences.
Figure 1. Data on the use of tools and platforms in the development of new projects
On average, each developing product releases an updated version once a quarter or more often, and a new version is released every 12 months. Products with very different release schedules experience a churn of new users. As for Java itself, new releases after Java SE 9 also happen every 6-7 months. But in addition to the new release and new features, you should not lose sight of the availability of versions with long-term support and updates (LTS). To date, there are only two versions with long-term support without sacrificing functionality and features, these are java 8 and java 11. At the same time, despite the name, the younger version - java 8, which was released back in March 2014, has support until December 2030. But a newer version, java 11, will only be supported until September 2026 or 2027, this issue has not yet been finally resolved. In September, the last 17 version of java was released today, which should become a new version with long-term support, now it is already known that the end of free support is scheduled for September 2030, the end of support for the LTS version is still unknown. If we talk about commercial development, then the issue of long-term support for the version of the language itself should be a priority, since it may suddenly turn out that you can no longer find either software or developers to refine and support the product you have developed, and new updates in functionality, security and many others are no longer in production.
Conclusion
The growth in the pace of development in the modern world requires the developer to create high-quality products using fault-tolerant, productive, resource-efficient development tools. And this, in turn, is a daily choice of development tools that should help the developer in his work. The presence of a system for analyzing preferences when choosing platforms and tools for development should simplify the life of a developer and give an increase in his productivity, which will undoubtedly affect the future quality and speed of developing new products.
References:
- https://mvnrepository.com/artifact
- https://www.predictiveanalyticstoday.com/top-java-web-framework-software
- https://habr.com/ru/company/yandex/blog/223121
- https://www.ibm.com/support/knowledgecenter/ru/SS88XH_1.6.1/iva