구글이 ‘구조화된’ 웹앱 개발을 목표로 했던 자바스크립트 대안 언어 다트(Dart)가 실험적인 고성능 모바일앱 UI 프레임워크 스카이(Sky)의 UI 처리 언어라는 새로운 역할을 맡기 위해 변신하고 있습니다. 통상 60헤르쯔(㎐)인 화면 갱신주기를 120㎐로 뻥튀기해 반응이 매끄러운 앱UI를 보여주겠다는 게 포인트인 듯. 사실 다트가 비슷한 역할을 표방하며 등장한 마이크로소프트의 언어에 비해 입지 확보에 실패하면서, 측면돌파를 시도중인 모습이 본질 아니겠는가 싶어 이런저런 근거와 생각을 뒤죽박죽 적어 봤습니다.
우선 세 줄 요약하면 다음과 같습니다.
- 웹앱 개발 언어 다트를 안드로이드앱 개발 언어로 쓰는 시도(스카이)는 새로운 게 아니다. 폴리머.다트를 활용한 머티리얼디자인을 통해 일부 가능했으므로. 이는 또한 아파치 코르도바같은 모바일앱 프레임워크에서 자바스크립트의 역할을 넘어서지 못하는 모양새다.
- 구글은 다트 외에도 서버 프로그래밍 언어 고를 키우고 있는데 최근 안드로이드 모바일 앱 개발 용도로 영역이 확대된 바 있다. 이는 안드로이드 앱 개발 기술이란 영역에서 고와 다트의 역할분담이 필요할 수 있다는 얘기다. 판이 어떻게 정리될 것인지 난 잘 모르겠다.
- 지금은 구글이 다트를 버리지 않기 위해 다양한 시도를 하는 것처럼 보일 수 있겠지만 앞으로 어떨지. 구글은 앳스크립트를 인기 웹앱 프레임워크 앵귤러 차기 버전의 기반언어로 삼을 생각이었지만, 그 역할을 타입스크립트가 맡게 됐고 앳스크립트는 존재감을 잃었다.
풀어서 말하면 열여덟 줄 정도 되는군요.
- 냉정히 볼 때 폐기 대상인 것 같은 다트를, 구글이 대놓고 포기하는 건 몇년간 기껏 공부해 준 개발자들의 배신감을 유발할 가능성이 있습니다. 적절한 용도(내지는 그걸 찾을 가능성)를 마련해 주는 게 도의적(?)으로는 맞는 것 같습니다.
- 이미 아파치 코르도바(Apache Cordova)처럼 HTML/CSS+자바스크립트로 모바일앱개발을 할 수 있는 여러 프레임워크가 존재하니까, (한때) 자바스크립트 대체재였던 다트를 안드로이드앱 개발 영역으로 끌어오는 게 꼭 억지스러운 건 아니죠.
- 다만 사실 이런 식의 다트 부활이 통할지는 좀 회의적입니다. 이게 잘 되더라도 다트의 역할은 언어 특성상 앱의 ‘UI 프로그래밍’에 머물 것 같거든요. 물론 제가 다트의 유망한 가능성을 간과했을 가능성이 있으니 단정할 순 없지요.
- 제 생각에 UI 프로그래밍 영역에서의 앱 성능 개선 여지가 얼마나 되겠나 싶습니다. 물론 이건 다트 프로그래밍을 하는 스카이 프레임워크가 아니라, C++ 코드 기반이라는 스카이 엔진이 맡을 역할이 더 클 수도 있으니 두고 봐야지요.
- 또다른 구글 프로그래밍 언어 고(Go)가 서버 프로그래밍 언어에서 모바일용으로 영역 확대를 시도한 바 있는데요. 고를 통한 앱개발 시나리오에서 다트의 역할이 상충하는 건지, 그 나름대로의 조화가 가능한 건지도 궁금한 지점입니다.
– 관련기사: [구글 GO, 안드로이드 앱 개발서 자바와 격돌(http://www.zdnet.co.kr/news/news_view.asp?artice_id=20150106144155)] - 아무것도 모르는 제가 예상하는 다트와 고의 역할 분담은 이런 식입니다. 고는 안드로이드 앱 프로그래밍과 이를 위한 백엔드 개발, 다트는 앱의 UI 프로그래밍 또는 이를 지원하는 하이브리드 앱개발 프레임워크용 언어.
- 사실 다트의 앞날은 가시밭길 같습니다. 마이크로소프트도 자체 자바스크립트 대안 언어 타입스크립트(TypeScript)로 안드로이드같은 모바일 하이브리드 프레임워크용 개발 언어 시장을 노리고 있고 최근 차분히 그 계획을 실현 중입니다.
- 일례로 마이크로소프트는 최근 비주얼스튜디오에 아파치 코르도바를 지원한다면서, 코르도바 개발 언어에 자바스크립트와 함께 타입스크립트를 슬쩍 끼워넣었거든요. 마이크로소프트는 속으로 ‘좋아 자연스러웠어!’라고 외쳤을지도.
– 관련기사: [MS 비주얼 스튜디오, 크로스 플랫폼 개발 지원 강화(http://www.zdnet.co.kr/news/news_view.asp?artice_id=20140513085141)] - 타입스크립트는 이미 연초에 핫한 웹앱 프레임워크 앵귤러(Angular)의 차기 메이저 버전 개발 언어로 채택되면서 잠재력을 인정받았습니다. 이번 마이크로소프트 빌드2015 타입스크립트 관련 세션에 구글 앵귤러 엔지니어도 와서 얘길 하고 갔다네요.
– 링크: [한국인 자바챔피언 양수열 님 페이스북 사진(https://www.facebook.com/photo.php?fbid=10153195706887088)] - 그래서, 안타깝게도 제가 보기엔 다트의 존재감이 너무 작습니다. 대세를 탄 기술은 특정 시장에서 사실상 표준이 되고 쇠락한 기술은 재기하기 어려운 걸로 아는데, 다트가 반례를 만들어 줄 수 있을지 두고 봐야겠네요.
- 스카이라는 프레임워크를 통한 다트 회생 시나리오에 대한 제 생각은 여전히 비관적입니다. 안드로이드 앱 개발 시나리오에서 다트를 UI 프로그래밍 언어로 쓰려는 시도는 이게 최초가 아니거든요.
- 다트 등장 초기부터 폴리머(Polymer)라는 게 있었습니다. 원래 폴리머는 웹앱 UI 프레임워크인데, 공식사이트의 문서 중에 머티리얼디자인(Material Design)과 함께 활용하는 가이드가 나옵니다.
- 넵, 여기서 제시된 머티리얼디자인 가이드는 나중에, 안드로이드 롤리팝(Lolipop) 환경의 앱 디자인 가이드라인 명칭으로 등장하면서 유명세를 얻습니다. 머티리얼디자인은 원래 안드로이드 앱이 아니라 웹앱 디자인 가이드였단 얘기.
– 링크: [폴리머 공식사이트 가이드 중 폴리머를 활용한 머티리얼디자인(Material design with Polymer) 항목(https://www.polymer-project.org/0.5/docs/elements/material.html)] - 이쯤에서 구글이 머티리얼디자인을 안드로이드 앱 디자인 가이드로 삼은 것과 다트가 뭔 상관인지 궁금해지실 텐데요. 자바스크립트 기반인 폴리머를 다트 기반으로 이식한 폴리머.다트(Polymer.Dart)가 있다는 게 포인트지요.
– 링크: [다트 공식사이트 중 폴리머를 다트 기반으로 이식한 도구 polymer.dart 소개 항목(https://www.dartlang.org/polymer/)] - 정리하면, 다트 기반의 폴리머 프레임워크를 활용해 머티리얼디자인 기반의 안드로이드 롤리팝 앱을 만드는 건 이전부터 가능한 시나리오였다는 점. 다만 UI디자인만 가능하고 앱 결과물을 얻을 순 없었다는 점.
- 이와 달리, 스카이 프레임워크를 활용하면 아마도 결과물을 안드로이드 앱 패키지로 제공할 것으로 짐작된다는 점. 따라서 스카이는 다트 기반의 안드로이드 앱 개발 시나리오를 새롭게 제시한 건 아니지만, 그 실용성을 받쳐줄 것으로 보인다는 점.
- 잘 될 지는 아직도 거듭 의심스러운데, 이는 구글이라는 회사의 특성 때문입니다. 구글은 이미 앵귤러 기반 언어의 지위를 타입스크립트에 넘기면서 직접 만들었던 앳스크립트(AtScript)라는 언어를 과감히 포기한 전례가 있습니다.
– 관련기사: [구글, 차세대 웹앱 기술에 MS 웹개발 언어 수용(http://www.zdnet.co.kr/news/news_view.asp?artice_id=20150316123424)] - 앳스크립트 버린 구글이 다트라고 못 버리겠나, 그게 제 생각입니다. 물론 앳스크립트보다 다트에 투자한 기간이라든지 활용 범위를 고려해보면, 구글 입장에선 다트를 여러모로 아까워할만하긴 하지만요.
이 글의 주장에 대한 반론 및 생각에 대한 의견 받습니다. 구글 다트 파이팅.
– 관련기사: [구글 ‘다트’로 안드로이드앱 만든다?(http://www.zdnet.co.kr/news/news_view.asp?artice_id=20150504082642)]
—
150505 페이스북 노트에 쓴 글 구글 웹프로그래밍 언어 다트 회생전략을 160717 개인 블로그에 재작성 후 160805 재편집. 170402 재편집.