Neovim 0.1.0 릴리즈
어제 Neovim 0.1.0 이 릴리즈 됨
- https://news.ycombinator.com/item?id=10488188
- https://www.reddit.com/r/vim/comments/3r45y6/neovim_first_public_release_010/
- https://www.reddit.com/r/neovim/comments/3r4ciu/neovim_010/
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 을 원한다.
- 더 큰 질문은 그것을 어떻게 누가 적절하게 구현할 것이냐 이다.
덧, 요즘 블로그에 글이 뜸해서 회사에다 쓴 글을 올려봤음.