Lambda
article thumbnail

Ruby on Rails의 개발자 데이비드 하이네마이어 핸슨(이하 DHH)의 Turbo 8 is Dropping TypeScript 포스트가 최근 화제를 모으고 있습니다. 최근 Svelte 또한 프레임워크 개발 시 TypeScript를 사용하지 않는 방향으로 전환하기도 해서 더욱 눈길이 가는 소식입니다.

 

해당 게시물은 여태까지 TypeScript 배우고 프로젝트에 사용해야하는지에 대해 별다른 비판없이 수용하던 저에겐 상당히 충격적인 내용을 다루고 있었습니다. 기회가 된다면 원문 전체를 옮겨보고 싶지만 오늘은 해당 게시물의 중요 포인트에 대해서만 다뤄보겠습니다. 

 

 

Turbo 8 is dropping TypeScript 원문 내용 

DHH(David Heinemeier Hansson) 제기한 TypeScript 문제는 아래와 같습니다. 

 

  1. 명시적인 컴파일 단계 필요 (requires an explicit compile step)
  2. 타입을 쓰는 것이 코드를 오염시킴 (pollutes the code with type gymnastics)

DHH(David Heinemeier Hansson) 본인이 밝힌 Turbo 8에서 TypeScript를 퇴출시킨 직접적인 이유는 아래와 같이 밝히고 있습니다.

 

 

DHH 밝히길 대부분의 프로그래머들은 자신의 경력 초기에 타입에 강하게 끌리거나 그렇지 않을 것이며, 후로는 그들의 올바른 선택 합리화하는데 시간을 보낼 것이며 이것이 JavaScript TypeScript 이분법을 초래한다고 간주하고 있습니다.

이러한 상황을 근본적으로 해결하기 위해 JavaScript 편에서 TypeScript 퇴출시키기로 결정한 것으로 보입니다. 

 

이러한 DHH의 견해는 그의 Twitter(현 X)에서도 확인해볼 수 있습니다. 그는 트위터를 통해 타입스크립트와의 결별을 선언하며 그가 추구하는 JavaScript 정신에 대해Free of strong typing이라 밝히고 있습니다.

 

단순한 헤프닝 ?

그렇다면 이쯤에서 짚고 넘어가야 할 부분이 있을 거 같습니다. 

 

그냥 한 자바스크립트 덕후가 벌인 헤프닝 아니야 ?

 

우선 확실한 사실은 DHH Removing TypeScript 움직임에 대해 현재 개발자 커뮤니티는 찬반 양론이 팽팽하게 맞서고 있다는 점입니다. 실제 해외의 개발자 커뮤니티와 깃허브 등의 플랫폼에선 이러한 TypeScript 퇴출의 움직임에 대한 논쟁이 현재까지 이어지고 있습니다. 

 

ECMAScript proposal : Type Annotations

또한 눈여겨 점은 자바스크립트 진영에서도 타입스크립트 의존 문제에 대한 대응책을 제시하고 있다는 점입니다. 현재 ECMAScript에 Type Annotations 도입하기 위한 움직임도 진행중에 있습니다. 특히 자바스크립트 표준에 타입 주석 (Type Annotation)을 추가하는 제안이 TC39의 Stage 1에 진입하였다는 점은 자바스크립트 진영에서도 현 문제 상황을 받아들이고 이를 자바스크립트 내부에서 해결하고자 한다는 점을 보여줍니다. 

ECMA스크립트(ECMAScript, 또는 ES)란, 
Ecma International이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어
를 말합니다. 자바스크립트를 표준화하기 위해 만들어졌습니다.

 

 

마치며

지금까지 Turbo 8의 타입스크립트 결별 뉴스를 시작으로 현재 진행중인 자바스크립트의 ECMAScript proposal까지 알아보았습니다.

 

이번 포스팅은 여태 작성한 '기술 중심적인' 포스팅과는 약간 동떨어진 주제를 선정하게 되었습니다. 

이러한 주제는 저의 멘토님의 질문에서 시작되었습니다.

 

TypeScript에 장점에 대해 잘 조사해오셨네요!
그러한 혹시 TypeScript의 단점은 뭐가 있을까요?

당시에는 TypeScript의 장점을 학습하며 함께 배운 ‘코드의 가독성 저해’, ‘초기 세팅의 어려움’ 등을 언급하며 유야무야 넘어갔던거 같습니다. 어쩌면 멘토님도 저의 답변에 충분히 만족하셨을지도 모르겠습니다. 

 

단순한 궁금증에서 시작한 조사는 저를 보다 심오한 논의의 장으로 이끌었습니다. 본 포스팅을 준비하기 이전까지 저에게 있어서 JavaScript는 TypeScript를 배우기 위한 전단계에 불과했습니다. 얼마전까지 앞으로 JavaScript로 다시는 프로젝트를 진행하지 말자고 굳게 다짐했던 제 자신의 모습이 떠오르네요.

 

본 포스팅을 마무리하며 제가 내린 결론은 ‘JavaScript 학습을 게을리 하지 말자 !’ 입니다. 특히 앞으로 ECMAScript 공식문서를 조금씩이라도 읽으려 노력하자고 스스로 다짐하게 된 계기가 된 거 같습니다.

 

여러분들도 다음 프로젝트는 Vanilla JavaScript 프로젝트를 진행하며 다시금 JavaScript 기본기를 다져보시는 것을 추천드리겠습니다. 

 

 

참고

 https://world.hey.com/dhh/turbo-8-is-dropping-typescript-70165c01 

 

Turbo 8 is dropping TypeScript

By all accounts, TypeScript has been a big success for Microsoft. I've seen loads of people sparkle with joy from dousing JavaScript with explicit types that can be checked by a compiler. But I've never been a fan. Not after giving it five minutes, not aft

world.hey.com

https://devclass.com/2023/09/07/ruby-on-rails-creator-removes-typescript-from-turbo-framework-upsets-community/ 

 

Ruby on Rails creator removes TypeScript from Turbo framework, upsets community • DEVCLASS

Ruby on Rails creator David Heinemeier Hansson has removed TypeScript from the forthcoming version 8 of the Turbo […]

devclass.com

 https://github.com/tc39/proposal-type-annotations 

 

GitHub - tc39/proposal-type-annotations: ECMAScript proposal for type syntax that is erased - Stage 1

ECMAScript proposal for type syntax that is erased - Stage 1 - GitHub - tc39/proposal-type-annotations: ECMAScript proposal for type syntax that is erased - Stage 1

github.com

profile

Lambda

@Lamue

포스팅이 좋았다면 "공감❤️" 또는 "구독👍🏻" 해주세요!