Dart (프로그래밍 언어)
구글에서 개발하고 관리하는 프로그래밍 언어. 자바스크립트의 단점을 보완해서 웹 개발의 편의성을 도모하기 위해서 만들어진 언어다.
자바스크립트는 간단한 문법으로 진입장벽이 낮은 편이지만 코드가 복잡해지면 단점도 많은 언어다. 원래 웹 페이지에 간단한 동적 기능을 부여하기 위해서 만들어졌던 스크립트 언어였지만 AJAX가 대박이 나고 JIT 컴파일 덕택에 처리 속도로 엄청나게 빨라지면서 활용 폭이 엄청나게 넓어졌다. 여기에 jQuery라든가 Angular, 리액트 같은 프레임워크까지 등장하면서 활용 폭이 더더더욱 확대되고, 웬만한 데스크톱이나 모바일 프로그램 뺨칠 정도로 복잡하고 긴 코드들을 개발할 일이 많아졌다. 그러다 보니 전에는 별거 아니었던 자바스크립트의 단점들이 부각되었다.변수의 유형을 지정하지 않고 서로 다른 유형의 데이터들을 연산하려고 해도 어떻게든 변환해서 이상한 값으로라도 결과를 낸다든지, 자바스크립트 개발자들의 머리를 쥐어뜯게 만드는 콜백 지옥 문제라든가... 물론 자바스크립트도 개량을 거치면서 프로미스(promise)와 같은 방법으로 콜백 지옥을 해소시키는 지원책들이 나오고 있지만 언어의 근본적인 한계점이 있는지라 이를 넘기 위해 새로운 언어들이 여럿 제안되었다. 이 방면의 원조격이라 할 수 있는 커피스크립트라든가, 요즘 사용자층이 꽤 넓어진 타입스크립트 같은 게 그 사례. Dart 역시 그런 목적을 가지고 있었다.
커피스크립트나 타입스크립트가 컴파일을 통해 자바스크립트를 결과물로 내놓아서 호환성을 유지하는데 반해, Dart는 아예 '대체'를 목표로 했다. 즉 웹 브라우저가 Dart 실행 엔진을 가지고 Dart를 바로 실행하는 것. 그러나 이 전략은 실패로 끝났고, 같은 구글에서 만든 크롬 말고논 Dart를 직접 지원하는 웹 브라우저가 없다. 자바스크립트가 단점은 있지만 그렇게 나쁜 언어인 것도 아니며[1], 이미 많은 개발자를 가지고 있으며 jQuery, 리액트를 비롯한 풍부한 프레임워크도 가지고 있다. 여기에 타입스크립트 같은 것을 쓰면 자바스크립트의 단점을 피해갈 수도 있다. 그러니 구글을 제외한 웹 브라우저 제작자들로서는 자바스크립트 엔진의 속도 경쟁에도 정신 없는데 굳이 Dart 엔진을 또 만들 이유가 없는 것.
각주
- ↑ 사실 어떤 프로그래밍 언어든 단점이 없을 리 없다.