어제 Neovim 0.1.0 이 릴리즈 됨

Neovim 을 만든 이유 [1]

  • 20년 이상의 시간동안, vim은 소수의 사람들만 이해할 수 있는 무시무시한 C89 코드를 조금씩 수정하여 30만 줄의 코드가 되었다.
  • 문제는 이 거대한 vim 코드 베이스가 오직 한 사람 Bram Moolenaar 의 책임으로 유지된다는 점이다.
  • 이것은 새로운 기능과 버그 수정을 어렵게 한다.
  • vim 은 더이상 plugin 생태계의 개발속도를 따라갈 수 없다.
  • 그래서 우리는 다음의 목표를 위해 vim 의 코드를 공격적으로 refactor 하기로 했다.
    • 버그 수정과 기능 추가를 빠르게 개선하기 위해 maintenance 를 단순화 한다.
    • 여러 개발자들과 분담하여 개발한다.
    • core source 수정 없이 새롭고 현대적인 UI 구현이 가능하게 한다.
    • 플러그인은 어떤 프로그래밍 언어로도 쓸 수 있게 만든다.
  • 이러한 목표를 달성해서 새로운 개발자가 커뮤니티에 참여하게 만들고
    • 그러면 에디터는 개선된다.
  • 무엇보다 중요한 것은
    • Neovim 은 vim 을 처음부터 다시 쓰는 프로젝트가 아니다.
    • 기존 vim 의 편집 모델과 Vimscript 에 거의 영향을 주지 않는다.
    • 기존 Vimscript 플러그인은 Neovim 에서도 정상 작동한다.

(플러그인은 msgpack-rpc API, TCP 통신으로 플러그인과 UI 를 구현하는 구조네요.) [2]

vim 을 만든 Bram Moolenaar 의 인터뷰 [3]

  • Neovim 에 대해 어떻게 생각하나?
    • 하위호환을 무시하거나 특정 시스템 지원을 안 하는 것 등의 선택은 동의하지 않는다.
    • vim 코드가 오래되고 싫어서 “올바로(right)” 구현하기 위한 것 같은데.
    • 오래된 코드는 ugly 하다는 것에 동의한다.
    • 하지만 새로 구현하는 것은 아주 많은 노력이 필요할 것이다.
    • Elvis 텍스트 에디터도 새로운 코드로 다시 구현을 시도 했는데.
    • vim 이 기능 확장을 하는 동안 Elvis 는 사용자를 잃었다.
    • Elivs 가 좋은 코드로 작성되었는지 모르지만 사용자는 모른다.
    • neovim 의 좋은 기능들이 다시 vim 에 돌아오길 바란다.
      • 내 말은.
      • 누구나 좀더 좋은 플러그인 지원, 좀더 좋은 GUI 와 embedding 을 원한다.
      • 더 큰 질문은 그것을 어떻게 누가 적절하게 구현할 것이냐 이다.

덧, 요즘 블로그에 글이 뜸해서 회사에다 쓴 글을 올려봤음.