---
저런 이유들도 있지만 결정적인 건 자바와 코틀린의 차이가 커지고 있다는 것이다. 원래 코틀린은 자바에 문법 설탕만 추가해서 자바랑 거의 같지만 더 편하게 쓸 수 있는 걸 목표로 했다. 그런데 그게 어긋나고 있다
1. 레코드. 코틀린이 데이터 클래스를 먼저 추가했고 자바가 나중에 레코드를 추가했다. 그런데 둘의 구조는 아예 다르다. 그래서 코틀린 측에서 @JvmRecord 라는 어노테이션까지 도입했다. 분기가 일어나고 있다는 증거다
2. 코틀린은 언어 차원에서 동시성을 지원하기 위해 코루틴(suspending functions) 루트를 탔다. 그런데 자바는 프로젝트 룸을 진행하면서 그린 스레드를 부활시키려 하고 있다. 이건 코틀린 입장에서 상당한 리스크다. 자바의 동시성 생태계가 그린 스레드 기반으로 정립될 경우 코틀린의 코루틴 기반 동시성 생태계는 무의미해진다
3. 자바가 코틀린보다 앞서는 부분도 나타나기 시작했다. 자바의 instanceof 연산자가 코틀린보다 강력하다. 자바는 getter, setter에서 벗어나고자 하는데 코틀린은 아예 언어 구조 자체에 getter, setter가 강하게 융합되어 있다. 또 하나의 생태계 불일치다
4. 코틀린 프로젝트의 목표가 너무 분산되어 있다. 코틀린 JVM만 제대로 잡아도 큰 업적이라고 생각한다. 그런데 코틀린 JS, 코틀린 네이티브, 코틀린 멀티플랫폼 등 전선을 너무 많이 벌려 놓았다. 이들 플랫폼 간에는 다른 점이 너무 많아서 하나의 코드베이스가 호환되지도 않는다. 여러 플랫폼을 지원하려면 어차피 어노테이션 도배를 해야 한다. 게다가 플랫폼별로 메모리 모델이 다른 것은 큰 골칫거리다. 힘을 이렇게 분산하지 말고 JVM이나 제대로 잡는 게 좋을 것이다
5. 코틀린이 "자바의 엄격한 상위 호환" 노선을 포기한다면 그냥 JVM 플랫폼의 흔한 게스트 언어 중 하나가 되는데, 역사상 JVM 게스트 언어 중에서 자바에 대적하여 이긴 언어가 없다. 스칼라, 그루비, 클로저 등등 시작은 찬란했지만 지금은 그저 그렇다. 어찌 보면 당연하다. 플랫폼을 장악하고 있는 언어는 플랫폼을 자기 마음대로 주무를 수 있는 힘이 있다. 자바에 새로운 기능을 추가하면서 그에 맞게 JVM의 바이트코드 포맷을 바꾸는 것조차 가능한 것이다. 다른 언어들은 이러한 변화를 온전히 활용할 수 없다. 코틀린이 이걸 극복하려면 코틀린 가상 기계(KVM)라도 만들어야 할 텐데 대단히 어려운 일이다
나도 코틀린의 미래에 낙관적이었으나 이런 이유들 때문에 점점 비관적이 되고 있다. 구글이 강하게 푸시해도 이 상황이 나아질 수 있을지 모르겠는데, 오라클과의 소송에서 승리하면서 오히려 손을 뗄 명분까지 얻었다
어캐 생각하냐? 삼성 다니는분이더라
코틀린이 갈수록 난잡해지고 있다는 부분은 맞는거같음. 스칼라도 딱 이 꼴 나다가 운지했음
스칼라 지금 안 좋아?? 그래도 함수형 언어 중에 제일 많이 쓰이지 않나? 뉴비라 잘 모름. - dc App
스칼라가 이거저거 넣어보려고 하다가 스칼라3에서 빅똥싸놓고 파이썬마냥 구버전 신버전 이원화되게 생김
근데 스칼라 연봉 개높음
스칼라 빅데이타 아니면 거의 안쓰는 똥언어
https://klyro.sarl/ddct
틀린말은 없네
틀리다고 하더라도 일단 글 내용자체는 분석 잘하신거같은데
제2의 그루비/ 구글의 전폭적인 지원이 있다면 안드개발 원툴
게터세터 빼고는 다 맞는말인듯
코틀린이 내부적으로 게터세터 많이 활용하는건 맞말 아닌가?
코틀린도 자바도 겉만 아는거 같음
왜 그렇게 생각함?
전혀 연관이 없는걸 끼워 맞추니까?
어디가 연관이 없는 부분인지 궁금함
분기의 증거로 레코드를 가져온다거나 코루틴 구현도 모르고 프룸을 얘기한다거나 instanceof 가 코틀린보다 좋다거나 ㅋㅋ 그냥 말이안되는데 있어보이게 짜맞추는게 안보임?
듣고보니 그런거같기도 하고 ㅇㅇ
2번은 확실히 헛소리인데?
왜?
저러니까 삼성을 탈출 못하는듯
블라에서 가져왔는데 라이센스는 어디써?
그다지?? 왜 자바와의 분기가 미래를 암울하게 만드는지 모르겠네 지금 구글 행보만 봐도 구글이 이렇게 밀어주는 프로젝트가 없는데 자바와의 분기는 코틀린의 큰 장점이 될거고 앞으로 10년만 지나도 코틀린 성장률은 자바랑 비교가 안되게 차이날듯
그냥 지금 현재 시장만을 관점으로 평가하니 저렇게 생각할수밖에 없지 java17만봐도 지적되는 단점은 그대로 추가되는 것들은 단점을 더 크게 부각시킬것 같은데
imstanceof 연산자는 억까고 그린스레드는 자바입장에서의 엄청큰 리스크지 코틀린의 리스크라는건 무슨 논리인지 모르겠음