젯브레인즈의 개발자 어드버킷이다. 정기적으로 콘퍼런스에서 강연을 하고, 코틀린 관련 주제에 대한 워크숍을 진행한다. 토킹 코틀린(Talking Kotlin)이라는 코틀린 팟캐스트의 주최자이며 공식 코틀린 유투브 채널의 비디오를 제작하기도 한다. 코틀린 재단의 일원으로 코틀린 생태계가 지속적으로 성장할 수 있게 돕고 있다.
코틀린 언어에 대한 아이디어는 2010년 젯브레인즈에서 시작했다. 그 시절 젯브레인즈는 자바, C#, 자바스크립트, 파이썬, 루비, PHP 등의 다양한 언어에 대한 개발 도구를 제공하는 널리 알려진 꽤 성공적인 회사였다. 젯브레인즈의 대표 제품인 자바 IDE 인텔리제이 IDEA(IntelliJ IDEA)에는 스칼라와 그루비 개발을 돕는 플러그인도 들어 있었다.
이렇게 다양한 언어의 도구를 개발해온 경험으로 인해 우리는 프로그래밍 언어라는 영역을 전체적으로 조망할 수 있는 독특한 시야와 이해를 얻을 수 있었다. 그리고 인텔리제이 IDEA 자체를 포함해서 인텔리제이를 플랫폼으로 하는 모든 IDE는 자바로 개발되고 있었다. 우리는 모던하고 강력하며 빠르게 진화하는 언어인 C#으로 개발을 진행하는 닷넷(.Net) 팀의 동료들이 너무 부러웠지만 자바를 대신할 만한 언어를 찾을 수 없었다. 우리가 자바를 대신할 언어에 대해 어떤 요구 사항을 갖고 있었을까?
처음이자 가장 분명한 요구 사항은 정적 타입 지정(static typing)이었다. 정적 타입 지정 외에 수백만 줄이나 되는 코드 기반을, 미치지 않고 개발할 수 있는 다른 방법은 없다. 둘째로 기존 자바 코드와 완전히 호환되는 언어가 필요했다. 기존 코드베이스는 젯브레인즈의 엄청나게 귀중한 자산이며 상호운용성이 부족해서 그런 자산을 잃어버리거나 자산의 가치가 줄어드는 일을 용납할 수는 없었다. 셋째로 우리는 도구 제공 가능성을 타협하고 싶지 않았다. 회사로서 젯브레인즈에게 가장 중요한 가치는 개발 생산성이며, 높은 생산성을 얻으려면 훌륭한 도구가 필수다. 마지막으로 배우기 쉽고 코드에 대해 추론하기 쉬운 언어가 필요했다.
우리가 회사 내부에 이렇게 충족되지 못한 수요가 있다는 사실을 발견했던 즈음에 일부 회사도 우리와 비슷한 처지에 있다는 사실을 알게 됐다. 따라서 젯브레인즈 내부의 수요를 충족할 수 있는 솔루션을 만들면 젯브레인즈 밖에서도 더 많은 사용자를 찾을 수 있으리라고 예상할 수 있었다. 이를 염두에 두고 새로운 언어인 코틀린을 만드는 프로젝트를 시작하기로 결정했다.
언어를 개발하는 과정에서 처음의 예상과 달리 개발 기간이 더 늘어났고, 코틀린 1.0은 최초의 저장소 커밋 이후 5년이 넘는 시간이 지나서 나왔다. 그 이후 코틀린을 원하는 사용자를 찾았고, 자체적인 생태계가 훌륭히 발전했으며, 지금까지 그런 발전이 계속되고 있다.
코틀린은 러시아의 상트페테르부르크(St. Petersburg) 근처에 있는 섬 이름이다. 섬 이름을 선택한 것은 자바와 실론(Ceylon) 언어의 전통을 따른 것이다.
코틀린 정식 배포가 가까워짐에 따라 코틀린 언어를 설계하는 과정에 관여하고 코틀린 언어의 특성이 왜 현재의 모습이 됐는지에 대해 자신 있게 설명할 수 있는 사람들이 쓴 책이 한 권 있다면 사람들에게 도움이 많이 되리라 생각했다. 이 책은 그런 노력의 일환이며, 독자 여러분이 이 책을 통해 코틀린 언어를 더 잘 배우고 이해하기를 바란다. 행운을 빌며, 여러분이 항상 즐겁게 개발할 수 있기를 바란다.