
지금까지 얕게나마 여러 언어를 다뤄 보았지만, 정작 백엔드의 주류 언어인 Java는 거의 본 적이 없었다.
워낙 많은 사람들이 사용하는 언어기 때문에 지나가다 우연히 보게 되어 생김새 정도는 알고 있지만, 언어 자체를 학습한 적은 거의 없는 것 같다.
Dart는 사실상 Flutter를 위해 Google에 의해 만들어진 언어다.
그래서 Flutter 개발팀과 긴밀하게 협업하며 Flutter 팀의 요구 사항이 Dart에 반영된다고 한다.
프레임워크 입맛대로 언어를 좌우하는 경우는 듣도 보도 못했는데, 성능이 잘 나올 수밖에 없겠다는 생각이 들었다.
여하튼 Dart도 Flutter를 가지고 놀면서 살짝 생김새 정도만 본 정도이고, 언어 자체를 학습한 적은 없었다.
그리고 마지막으로 Kotlin은 Java를 대체하기 위해 Jetbrains 사에 의해 만들어진 언어인데, Google Android의 공식 언어로 지정되었기 때문에 앱개발에도 사용이 되고 있고, 무엇보다 Java와 마찬가지로 JVM 기반 언어이자 Java와 100% 호환되기 때문에 Spring도 사용할 수 있다고 한다.
그래서 Kopring 이야기를 여기저기서 본 기억까지만 있고 이건 아예 본적도 없다.
이 3가지 언어를 한 번에 보면서 찍먹 해보려 한다.
셋 다 큰 틀에서는 비슷할 것이므로, 각 언어의 차이점과 장단점을 비교해가며 볼 수 있을 것 같다.
어차피 Dart를 제외하면 아직 사용할 예정도 없기 때문에 각 언어의 공식 문서를 훑어 보고 정리하는 정도로 충분할 것 같다.
언젠가 쓸 일이 생긴다면 그 때 깊게 파면 되는 것이니.
글을 마치기 전에, Kotlin은 사용한 적이 없어서 살짝 보고 차이점을 몇 개 적어두고 "Hello, World!" 한 번 찍고 끝내겠다.
문법이 Java에 비해 간결하고 Dart와 마찬가지로 NULL SAFETY를 지원한다.
Dart와 마찬가지로 new 없이 instance 생성이 가능하다.
new keyword가 없다 라고 되어 있는 것으로 보아, Dart는 new가 옵션인데 반해 Kotlin은 new의 존재 자체가 없는 모양이다.
Go가 아니니 Pascal, camel Case에 따라 알아서 잘 구별하면 될 것 같긴 하다.
또 한가지 특이한 것이 Kotlin은 statement 이후에 ;가 필요없다.
Java, Dart는 필요하다.
Dart, Kotlin의 String Interpolation과 Nullable 표현 방식은 같아 보인다.
확장자는 .java, .dart, .kt다.(친숙한 것이 하나 있다)
마지막으로 Java, Dart는 선행 타입, Kotlin은 후행 타입으로 표기한다.
이제 "Hello, World!" 한 번씩 찍어보고 마무리하자.
// java
public class Main
{
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
// dart
void main() {
print("Hello, World!");
}
// kotlin
fun main() {
println("Hello, World!")
}
Java는 혼자 장황하고, 나머지는 상대적으로 코드가 간결해진 것을 볼 수 있다.