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