본문 바로가기

프로그래밍

[Typescript vs Javascript] 타입스크립트의 종말

반응형
저는 언젠가 타입스크립트가 대체될 것이라고 생각합니다.

타입스크립트는 자바스크립트의 단점을 보완하여 만들어진 언어입니다.

자바스크립트와 타입스크립트의 가장 핵심적인 차이는 type이 있느냐 없느냐입니다.

Javascript

const a = 10
const b = 20
const c = "abc"

a + b // 30
a + c // "10abc"
a + Number(c) // NaN

Typescript

const a: number = 10
const b: number = 20
const c: string = "abc"

a + b // 30
a + c // "10abc"
a + Number(c) // Error

 

타입스크립트의 코드는 컴파일 과정에서 오류가 발생합니다. 서로 다른 자료형을 더했기 때문이죠.

이처럼 타입스크립트는 컴파일 과정에서 자료형을 한번 더 검사하게 됩니다.

덕분에 개발자의 실수를 줄이고 버그를 줄일 수 있도록 지원해주죠.

 

그럼에도 저는 앞으로 자바스크립트가 타입스크립트를 앞설것이라고 생각합니다.

지금부터 제가 그렇게 생각하는 이유와 타입스크립트의 전망과 예측을 조심스럽게 해보겠습니다.

1. NodeJS + Babel

NodeJS 등장 이후 자바스크립트는 빠르게 발전했습니다. 더이상 웹에서만 사용되는 언어가 아니게 됐죠.

빠르게 발전할 수 있었던 이유는 자바스크립트 언어를 자바스크립트로 컴파일하는 방식이 등장했기 때문입니다.

그로 인해, 과거의 구 문법을 버리고 같은 자바스크립트지만 전혀 다른 자바스크립트를 탄생시키게 되었습니다.

 

그리고 이 구조는 타입스크립트와 크게 다르지 않습니다. 타입스크립트 코드 또한 자바스크립트로 변환되기 때문이죠.

 

타입스크립트를 자바스크립트로 변환 VS (신) 자바스크립트를 (구) 자바스크립트 코드로 변환

 

어떤게 더 나을지는 저도 알 수 없습니다. 하지만 확실한건 두 언어는 구조적으로 크게 차이나지 않습니다.

2. 자바스크립트의 발전

자바스크립트는 언어 자체가 계속해서 발전하고 있습니다.

이는 단순히 더 많은 라이브러리와 프레임워크가 제작되는 것이 아니라, 언어의 스펙이 바뀌고 있습니다.

 

 

[프로그래밍] 2024년에 새롭게 추가되는 자바스크립트 신규 기능

프로그래밍 언어의 최신 기능을 탐색하는 것은 휴일이나 생일을 간절히 기대하는 것과 비슷합니다. 이는 새로운 선물을 탐구하는 설렘과 스릴로 가득 찬 시간입니다. ES2024®에 포함될 예정인 향

aierse.tistory.com

 

이렇게 매년 자바스크립트에는 새로운 기능들이 추가됩니다.

그리고 최근에 자바스크립트 신규 기능으로 데코레이터가 추가되었습니다. 

데코레이터는 클래스, 메소드, 속성 또는 매개변수의 동작을 수정하거나 강화할 수 있습니다.

 

원래 타입스크립트만의 기능이었지만 자바스크립트로 역수출된 기능입니다.

 

저는 바로 이 부분에서 타입스크립트의 전망을 예측했습니다.


 

 

타입스크립트는 자바스크립트의 단점을 해결한 훌륭한 언어입니다. 많은 기업에서 타입스크립트를 적용하고 있죠.

그러나 자바스크립트의 유연함을 타입스크립트의 안정성보다 더 중요시 여기는 사람도 많이 있습니다.

빠르게 개발해서 서비스를 런칭하는게 유리할 수도 있고, 안정적인 서비스를 구축하는게 목표일수도 있습니다.

 

서로의 언어는 각자의 이해관계에 따라 사용된다고 할 수 있죠.


자바스크립트는 계속해서 발전하고 있습니다. 즉, 두 언어간의 격차가 계속해서 줄어들 수 있다는 뜻이죠.

그 대표적인 예시가 바로 데코레이터입니다.

 

앞으로 타입스크립트의 장점이 자바스크립트로 역수출될 수 있다는 것이죠.

어쩌면 Type이 자바스크립트로 역수출 될수도 있습니다. 파이썬이 그러했던 것처럼요.

 

그래서 저는 타입스크립트가 망한다기보다는, 자바스크립트로 흡수될 것이라고 조심스럽게 예측해봅니다.

추천 포스트

 

[프로그래밍] 나만의 클린코드

클린 코드란 무엇일까요? 코드에 정답은 없습니다. 이 글에서는 제가 생각하는 클린 코드의 정의를 전달하고자 합니다. 먼저 구글에 클린코드의 정의를 검색하면 다음과 같습니다. 클린 코드(Cle

aierse.tistory.com

 

 

[VSCode] 협업시 프로젝트 환경설정 (.vscode 폴더)

VSCode는 여러 확장을 통해 기능을 강화시키고, 커스터마이징이 가능해서 많은 개발자들이 사랑하는 IDE 중 하나입니다.그러다보니 협업을 할때 팀원들도 VSCode를 사용하는 경우가 많이 있습니다.

aierse.tistory.com

 

반응형