JavaScript 웹 앱은 아무데도 가지 않습니다

0
237

구글 크롬 로고.

대부분의 웹사이트와 웹 애플리케이션은 JavaScript로 작성되거나 최소한 JavaScript로 변환된 것으로 작성됩니다. 이를 변경하려는 많은 시도가 수년 동안 있었지만 JavaScript가 곧 완전히 사라질 것이라고 기대하지 마십시오.

Zaplib는 JavaScript 기반 웹 애플리케이션의 일부를 Rust 프로그래밍 언어로 다시 작성하기 위한 프레임워크를 만든 스타트업 회사로, 이 프레임워크는 WebAssembly를 사용하여 웹 브라우저에서 실행됩니다. Rust는 성능과 안전성에 최적화된 저수준 프로그래밍 언어이며 많은 응용 프로그램에서 Rust를 사용하여 로드 시간과 응답성을 크게 개선했습니다. Mozilla는 2017년 ‘Firefox Quantum’ 업데이트의 일부로 Rust를 사용하여 Firefox 웹 브라우저에서 CSS 엔진을 다시 작성하여 Firefox의 일반적인 성능을 두 배로 높였습니다. WebAssembly를 사용하면 사이트에서 C++와 같은 보다 전통적인 프로그래밍 언어로 코드를 작성하고 JavaScript와 같은 웹 브라우저 내에서 실행할 수 있습니다.

Zaplib는 한 번에 한 섹션씩 Rust 기반 WebAssembly에서 웹 애플리케이션을 다시 작성하면 성능이 10배나 향상되기를 바랐습니다. 그러나 회사 설립자는 ‘부검’에서 대규모 점프가 제대로 이루어지지 않았다고 말했습니다. “Rust에서 점진적으로 앱 속도를 높이는 것이 인체 공학적으로 10배 더 향상될 것이라고 예상했습니다. 이것은 실제 구현에서는 유지되지 않았습니다.”라고 팀이 말했습니다.

이 그룹은 계획에 몇 가지 문제점을 지적했습니다. 대부분의 회사는 엔지니어가 익숙하지 않을 수도 있는 언어로 코드를 다시 작성하는 것을 (이해할 정도로) 주저했지만, 더 중요한 것은 좋은 JavaScript 코드와 좋은 Rust 코드 사이에 상당한 속도 차이가 없었다는 것입니다. Zaplib는 한 회사가 시뮬레이션 도구를 Rust로 이식하는 데 도움을 주었는데, 결과적으로 기존 JavaScript 버전보다 5% 더 빨라졌습니다. Zaplib은 또한 하드웨어 가속 2D 렌더러가 도움이 되기를 바랐지만 대부분의 성능 향상은 Rust나 WebAssembly가 전혀 필요하지 않은 WebGL에서 나왔습니다.

이것은 WebAssembly가 끔찍하거나 도움이 되지 않는다는 의미가 아닙니다. Google Earth와 Photoshop은 WebAssembly 덕분에 모두 웹 브라우저로 이식되었으며 Microsoft와 같은 회사는 더 많은 개발자가 동일한 전환을 할 수 있도록 프레임워크를 구축하고 있습니다. 존재하는 데에는 절대적인 이유가 있지만 JavaScript도 지난 몇 년 동안 크게 발전했습니다. Chrome, Microsoft Edge 및 기타 Chromium 기반 브라우저에서 JavaScript 코드를 처리하는 ‘V8’ 엔진은 계속해서 빨라지고 있습니다. Google에 따르면 최근 최적화로 인해 Chrome은 Mac에서 사용할 수 있는 가장 빠른 웹 브라우저가 되었으며 기타 변경 사항으로 인해 Windows 및 Android 버전도 빨라졌습니다.

WebAssembly는 이미 몇 년 전에는 존재하지 않았던 새로운 애플리케이션의 물결을 웹에 가져오고 있지만 모든 JavaScript가 곧 사라질 것이라고 기대하지는 마십시오. Zaplib는 게시물에서 “일반적으로 Rust보다 성능 향상을 찾는 더 간단한 방법이 있습니다. [or WebAssembly].”

출처: 자플립