Whether to make the server side at the time of system rebuild with Kotlin or Java
It's a story in a limited number of scenes, but I'll publish it to Qiita because it's a scene that seems to be in the world, and I want to update it if there are any differences or other perspectives.
Also, although there are many articles dealing with differences at the fine syntax level, I also wrote that there seemed to be few articles comparing from various perspectives.
Assumptions for comparison
--Rebuild your existing Java system with Spring Boot
--Spring Boot is not dealt with here because it is a specific context.
--Small language level differences are not compared
--Team development with dozens of people
Java
merit
- Performance
--Many development achievements including mission-critical systems
- Man
--The actual learning cost is low because many people have already paid the learning cost.
--Technology
--Optional allows null safe at runtime, @Nullable allows null safe at the compiler level ...
- Future
――The aspect of Oracle is fading a little, and the danger is low because various vendors are involved.
--Information distribution
――There are new and old ones, but the information that can be obtained is overwhelmingly large.
--Reconstruction context
--When rebuilding, it can be reused if it is the same language
Demerit
- Man
――There are a lot of Java human resources as a population parameter of engineers, but it tends to be a mixture of boulders.
- Productivity
――Isn't it comparable to the familiar Kotlin engineer?
--Reconstruction context
At the time of rebuilding, simple copy and paste is possible because it is the same language, and there is a possibility that spoiled code will be mixed even though it is a precious rebuilding.
Kotlin
merit
- Man
--When hiring, you can do Kotlin = Increase the probability of being a high-level human resource compared to Java human resources
--Technology
--Syntax level + Null safe at the compiler level, and the feeling that other pitfalls that tend to occur in Java are prevented at the syntax level
- Productivity
――It's hard to get used to it, but once you get used to it, is it expensive compared to Java?
--Reconstruction context
--At the time of reconstruction, since it is a different language, it cannot be simply diverted, and it is unlikely to be mixed with spoiled code because it is converted and refactored.
Demerit
- Performance
--Aside from Android, there is little track record of being large or complex as a server-side language.
- Man
--Since there are few engineers who have paid the learning cost, the learning cost is high.
- Future
――It was developed as OSS mainly by JetBrains, and Google has made it the Android standard, but since there is a JVM, can the departure of Oracle be a risk?
--Information distribution
--Overwhelmingly less information is available compared to Java
--Reconstruction context
--When rebuilding, conversion and refactoring are required because it is a different language
reference
-Introduction to Kotlin for Server-Side Java Developers