사실 확장성 자체는 나쁘지 않습니다.
리스프 특유의 매크로
동적 모듈 지원으로 native 언어 바인딩(트리시터 같은 프로젝트가 대표적인예)
libvterm과 Xwidget 지원으로 네이티브한 터미널 에뮬레이터와 브라우저를 내부적으로 사용할 수 있다던지..
https://github.com/canatella/xwwp
문제는 I/O나 쓰레드에요.
I/O가 비동기로 구현이 안되어있어서 커다란 파일은 프리징이 생기며 쓰레드를 만들어도 동시성은 지원하지만 병렬은 아니라 부하가 커지면 문제가 꼭 생기더라고요.😢😢😢
그런데 이 프로젝트는
https://github.com/DavidDeSimone/ng-async-files
처럼 파일의 비동기 처리지원을 하려는 노력이 보이길래 관심이 가는 중입니다.
NPM의 방대한 생태계에도 얹혀갈 수 있고요.
이맥스는 예전에 스페이스맥스 밖에 안써봐서 잘 모르지만 메인 페이지에서 아래 부분을 읽어 봤는데 흥미롭네요. 결국 Deno를 통해서 성능향상과 언어지원을 확장을 통해서 생태계를 활성화 시키는게 핵심인가보네요
>
Performance#
v8's world-class JIT offers the potential for massive performance gains. For a simple benchmark (fibonacci), using the following implementations:
(defun fibonacci(n)
(if (<= n 1)
n
(+ (fibonacci (- n 1)) (fibonacci (- n 2)))))
const fib = (n) => {
if (n <= 1) {
return n;
}
return fib(n - 1) + fib(n - 2);
};
emacs-ng's JS implementation clocks in over 50 times faster than emacs 28 without native-comp for calculating fib(40). With native-comp at level 3, JS clocks in over 15 times faster. This, along with Async I/O from Deno, WebWorkers, and WebAsm, gives you the tools to make Emacs a smoother and faster experience without having to install additional tools to launch as background processes or worry about shared library versions - full performance with EVERYTHING in the scripting layer.