솔직히 말씀드리면, Discourse의 프론트엔드는 정말 부풀어 있습니다. 이전에 프론트엔드 컴파일이 전혀 필요 없었던 Go 기반 포럼 플랫폼을 사용해 본 적이 있습니다. 필요한 CSS와 JS가 모두 페이지 HTML과 함께 쉽게 서빙할 수 있을 정도로 작았기 때문이죠. 그 플랫폼은 잘 작동했지만, FOSS(자유 및 오픈 소스 소프트웨어)가 아니었고 지금은 더 이상 사용할 수 없습니다. Discourse에서 프론트엔드를 "컴파일"해야 한다는 사실 자체가 저에게는 반패턴(anti-pattern)처럼 느껴집니다.
음, 이 프로젝트에는 매우 똑똑한 사람들이 많아서, 일반화하거나 폄하하는 발언을 하는 것은 조심해야 할 것 같습니다. 똑똑한 팀이 깊이 있게 고민한 사안에는 항상 뉘앙스가 있는 이유가 있기 때문입니다.
Discourse는 사용자 친화적인 네이티브 앱과 유사한 인터페이스를 갖춘 정교한 웹 애플리케이션입니다. 하루 종일 페이지가 계속 새로고침되는 것을 원하지 않는 한, JavaScript를 대량으로 사용하지 않고 브라우저에서 구현하는 것은 불가능하지 않나요? (그 과정에서 웹 서버에 막대한 부담을 주게 됩니다!)
"컴파일"에는 느린 인터넷 연결과 브라우저 메모리 사용량을 돕기 위해 다운로드를 줄이는 미니파케이션(minification)도 포함됩니다. 이는 거의 논쟁의 여지가 없는 부분입니다.
또한 일부 Ember 코드를 네이티브 JavaScript로 변환하는 트랜스파일링도 이루어진다고 생각합니다. 이 부분도 마찬가지입니다.
우리는 이 앱을 Rust나 Go로 다시 작성할 계획이 없으므로, 이 토론은 조금 무의미하다고 생각합니다.
이제 이 주제를 닫겠습니다. ![]()