
Readers Write About Symbian, OS X and the iPhone
Sunday, February 4, 2007
"
iPhone은 어째서 Symbian을 선택하지 않았을까"에 대해 스웨덴과 핀란드의 독자들이 Symbian 개발에 대한 정보와 이 OS를 노키아가 어떻게 바라보고 있는지, 아이폰 개발에는 어떤 의미를 갖는지를 보내주었다.
한 개발자는 이렇게 썼다. "Symbian이 가진 현대적이고 견고하며, 안정적이고 진보적인 스마트폰 운영체제라는 측면은 대부분 부당합니다. 분명 Symbian은 잘 작동합니다. 기능도 매우 많죠. 아마도 지금 살 수 있는 최고의 스마트폰일지 모릅니다. 하지만 Symbian이 앞서나가는 이유는 경쟁사들이 지리멸렬하기 때문인 측면이 큽니다."
"저는 Symbian 프로젝트여 여러번 참여하였으며, Symbian의 하부 구조에 대해 잘 압니다. 그리고 전 Symbian을 싫어합니다. 프로그래머의 관점에서 볼 때 Symbian은 매우 나쁜 운영체제입니다."
Nokia’s POS/OS
노키아와 가깝다는 어떤 독자는 노키아에서, 심지어 고위 중역들까지도 내부적으로 Symbian을 "똥같은 평화(Rauhaa ja Rakkautta)"로 칭한다고 전하였다. "핀란드인들은 이 표현을 심한 욕설로 말합니다."는 설명도 덧붙였다.
다른 Symbian 개발자도 이런 말을 하였다. "노키아는 Symbian에 다소 갇혀 있습니다. 새로 운영체제를 만들 시간도 없고, 경쟁력도 없어서이죠. 실질적으로 노키아에게 남겨진 유일한 대안은 리눅스입니다. 물론 실험중이긴 하죠. 하지만 리눅스로 간다 하더라도 쉽지만은 않을 것입니다."
The Three Symbians
"노키아가 S560 미들웨어를 Symbian 기반으로 너무나 투자를 많이 해 놓았기 때문에 S60은 현재 엄청나게 거대하고 복잡해졌습니다. 전 S60도 아예 Symbian을 커널로 지닌, 하나의 운영체제라고 보죠. 덕분에 노키아는 한 층 더 통제력을 갖고 스스로 변화를 시킬 수 있게 되었습니다.
Symbian 소유자이자 라이센스 업체인 소니 에릭슨은 지난해 11월, UIQ를 인수했어요. UIQ의 Symbian 소프트웨어를 차지하기 위해서였죠. UIQ는 노키아 S60과 유사합니다. 이 역시 Symbian을 커널로 지닌 운영체제랄 수 있죠.
어떻게 보면, 사실 세상에 'Symbian' 전화기라는 것은 없습니다. 서로간에 호환성도 없는 별다른 운영체제일 따름이죠. 아시아 시장에서 팔리는 NTT DoCoMo의 Symbian인 MOAP, 노키아의 S60, 소니에릭슨의 UIQ 모두 심비안이되, 심비안이지 않습니다.
써드파티 개발자의 관점에서 볼 때 더 안 좋은 점이 있습니다. 노키아와 Symbian이 새로운 S60 버전3 바이너리를 만들었는데, 이 바이너리가 이전의 S60과 호환성이 없습니다. 따라서 예전의 Symbian 애플리케이션을 새 휴대폰에 단순히 집어 넣을 수가 없습니다. (물론 실제로 구입하셨다면 해당되겠죠. :-) )
당연히 UIQ는 S60과 호환성을 갖는 바이너리나 소스코드가 없습니다. 하지만 분석가들이나 언론은 "심비안"이라는 단일하고 안정적인 운영체제가 존재하는 양 말하지요."
Symbian Signed
"S60 버전3에서 노키아는 새로운 보안 모델을 제시하였습니다. 모든 애플리케이션을 VeriSign 인증을 거치게 만드는 모델이죠. 인증만 하더라도 매년 수 천 달러는 족히 들어갈 겁니다. 셰어웨어와 취미 개발자들은 앞으로 절대로 프로그램 작성을 함부로 하지 못하겠죠.
‘Symbian Signed’ 인증서를 갖지 않은 애플리케이션을 모조리 막아버리자는 통신사들도 있습니다. 즉, 인증비를 받아내야겠다는 심산이죠. 어디에서 인증을 받는지, 애플리케이션을 왜 개발했는지, 어째서 휴대폰의 특정 기능 사용을 원하는지, 사용자 데이터는 왜 읽는지, 전화기 API는 왜 사용하는지, WiFi는 어째서 이용하는지 등등 모두 알아내겠다는 겁니다.
모두가 보안이라는 미영 하에 일어나죠. 하지만 통신사의 주목을 끌지 않고 애플리케이션을 독자적으로 개발하기란 당연히 어렵습니다. 통신사의 입김이 못 들어가는 VoIP같은 기능 말이죠.
따라서 독립적인 써드파티 소프트웨어 개발 상당수는 앞으로 아이폰에서 사용하는 '폐쇄형' 모델로 가게 됩니다. 실질적으로 그 차이는 별로 크지 않아요. 당연히 애플은 가까운 협력사들에게 애플리케이션 개발을 허용하겠죠. 현재의 아이포드 게임 개발과 마찬가지입니다."
Symbian Design Issues
"Symbian이 현대적이고 견고하다는 미신에 대해 전 반대합니다. Symbian은 90년대 초반에 이뤄진 결정에 상당히 심하게 얽매여 있어요. 디자인 결정이 당시 관점에서야 괜찮았을지 모릅니다. 그 때에는 Psion의 EPOC과 EPOC32-기반의 Series 3, 5가 대상이었으니까요. 오늘날의 기기와 비교해 보면 메모리도 상당히 적고 리소스도 제한적입니다.
저라면 Symbian이 가진 문제점에 대해 매우 기나긴 목록도 작성할 수 있지만, 우선은 주요 영역으로 요약을 해 보겠습니다.
- Crippled C++ support Symbian은 C++ 기반입니다. 적어도 표면상으로는 그러하죠. EPOC32 디자인을 할 때는 (1993년~1994년 당시로 기억합니다), 익셉션(exception)과 같은 C++의 최신 기능을 완전히 지원하는 좋은 C++ 컴파일러가 거의 없었어요. 익셉션은 C++의 주요 기능으로서 올바르고 효율적인 에러 관리를 해 주죠. 대안이라면, 다른 운영체제 대부분이 사용하는 CAPI가 있었습니다.
Symbian은 그 두 개중, 어느 것도 사용하지 않았어요. 스스로 익셉션에 해당하는 리브(Leaves)를 만들죠. C++의 익셉션이 생기면, 분배된 객체 안에 있는 메모리나 다른 리소스를 자동적으로 올바르게 정렬시킵니다. (각 오브젝트의 디스트럭터라 부르는 재정렬이지요.) 작은 프로젝트이건, 큰 프로젝트이건, C++ 프로그램을 올바르게 작성할 때, 이렇게 하면 (상대적으로) 쉬워집니다.
Symbian에서 에러가 리브 신호를 보내면(익셉션이지요), 어떠한 객체도 붙여놓지 않습니다. 각 객체의 정렬상태를 일일이 기록해주지 않으면, 그저 누출시키죠. 이 과정은 정말 짜증납니다. 에러도 많고 피곤한 일이죠. Symbian에서 프로그램을 수정할 때 소비되는 시간이 매우 많습니다. 아예 불가능한 경우도 여러 번 있었죠.
C++은 훌륭한 언어입니다. 자동 보정을 다루는 익셉션(Resource Allocation Is Initialization을 뜻하는 RAII)과 같은 진보적ㅇ니 기능 덕분이죠. 표준 C++ 라이브러리는 (예전에는 STL 라이브러리라 불렸습니다) 리스트와 맵, 트리 스트럭쳐, 스트링, 알고리즘, 탬플릿 코드와 같은 컨테이너 안에 데이터 관리를 위한 코드 지원을 엄청나게 갖고 있습니다. 숙련된 모든 C++ 프로그래머들이 사용하는 모든 표준 패턴과 이디엄이 모두 들어가 있죠.
표준 C++ 개발의 기반을 제거하면, 모두 어떻게 되겠습니까? 디자인 결정은 곧 디자인에 대한 완전히 새로운 아키텍쳐를 고안해야 한다는 의미입니다. 보통 방식, 즉 보통의 C++을 더 이상 적용시키지 않는다는 뜻이 되니까요. 숙련된 프로그래머가 거의 툴로 둘러싸인 초보 프로그래머가 되는 순간입니다. 프로그래머나 개발 관리자에게나 악몽의 시작이죠.
- Confusing and limited string handling 적절한 스트링 관리를 위한 진짜 지원이 전혀 없습니다. Symbian 상에서 스트링을 사용하려면, '디스크립터(descriptor)'라는 희안한 시스템을 사용해야 합니다. Symbian 프로그래머를 시작한다면, 누구나 첫 일 주일은 이 시스템이 어떻게, 그리고 어째서 움직이는지를 이해해야 합니다.
디스크립터를 쓰는 이유야 수 바이트를 각 스트링마다 절약할 수 있어서이죠. 하지만 당연히 오늘날에는 수 바이트가 별 문제가 안 됩니다. 좀 사소하달 수는 있겠지만, Symbian을 쓰기 힘들게 만드는 것 중 하나입니다. 이해하기도 어려워지고, 포팅도 어려워지죠.
- Limited support for multi-threading 다른 플랫폼에서는 중요한 기술이지만, Symbian에서는 쓰이지 않는 기술입니다. 쓰레드에 대한 지원은 제한적이지요. 오히려 '자원을 많이 차지하기 때문에' 쓰지 말라고 권유합니다. 1993년도에는 상당히 수긍이 갈 만한 결정이겠지만, 이 때문에 Symbian은 거의 모든 애플리케이션에서 쓰레드를 사용하지 않고 '액티브 오브젝트'를 사용합니다.
액비트 오브젝트란 협력형 멀티태스킹의 복잡한 형태입니다. 정말 복잡해요. 각 오브젝트를 순차별로 돌리면서(작은 하부 태스크로 이상하게 나눕니다), 서로를 선점시키지 않죠. 이를 실현시키기 위한 코드도 상당히 많이 들어갑니다. 하지만 시스템의 반응성은 떨어져버리고말죠. 프로그래밍도 어려워지고, 포팅도 어려워집니다. 이 모두가 1993년 당시 CPU 주기를 조금이나마 절약하기 위했던 방법입니다.
- Bad development environment S60의 SDK와 개발환경은 매우 이상하기도 하고, 사용하기 어렵습니다. SDK를 설치하는 데만 하더라도 이해할 수 없게 며칠이 걸리지요. 수 년 전 했던 제 첫 번째 설치는 설정에 거의 일 주일이 들어갔습니다. 그리고 매우 문제가 많았죠. 노키아 포럼에서도 설정을 어떻게 올바르게 하느냐가 주된 주제입니다. 한 단계라도 잘못된 순서로 하면 거의 다 틀어져버립니다. 게다가 최신 버전의 비쥬얼스튜디오도 쓸 수 없죠. 비쥬얼스튜디오 2003을 설치해야 합니다. 하지만 윈도 프로그래밍을 한다면 누구나 VS 2005를 설치했겠죠. 노키아도 여러가지 상용 제품을 내놓았는데요. Eclipse에 기반하는 'Carbide'도 있긴 합니다만, 다른 플랫폼이나 엑스코드/아이폰에 비하면 정말 안 좋은 상황입니다.
Analysts Wrong on Symbian
"위의 제 글이 좀 기술적이기는 하지만, 그래도 그것이 현실입니다. 느리고, 에러가 많은 휴대폰이 나오지요. 말 그대로, Symbian용 프로그램 만들기는 어렵습니다.
그래서 저도 언론의 분석가들의 아이폰에 대한 전망을 믿지 않습니다. 완전히 다르게 돌아가는 식이기 때문입니다. 모든 코코아 프레임웍으로 오늘날 대부분의 데스크톱용으로 나오지도 않은 애플리케이션을 만들 수 있기도 하죠.
개발 속도(즉, 시장 진입 시간), 사용자 만족도를 높이는 데에 유용한 애플리케이션(가령 코어애니메이션이나 레퍼드의 다른 프레임웍이 있겠습니다), 코드 품질과 유지 가능성에서 엄청난 차이가 있다는 점을 깨닫는 사람이 거의 없습니다. 그것도 현대적인 고수준의 언어와 프레임웍의 완전한 지원을 받죠."
Existing Mobile Platforms vs OS X
"당연히 임베디드 프로그래밍 프로젝트는 대부분 엇비슷합니다. 셋톱박스와 휴대폰, 오디오 장비, 산업장비이지요. 하지만 휴대폰에 있어서는 이것을 작은 데스크톱 컴퓨터로 생각해야 합니다. 휴대폰 안에서 실질적인 애플리케이션을 돌리기 때문이죠.
Symbian(WinCE나 Palm OS도 마찬가지입니다. 리눅스도 똑같다고 봐요. 메모리 제한때문에 리눅스 프레임웍이 상당히 제한적이리라 보지만요)에서는 언론의 마케팅 치사나 기대감만 드높습니다. 휴대폰 서비스가 곤두박질치는 이유가 다 이런 데에 있습니다. 오늘날의 문제에 시장의 기대감을 맞추기가 어렵고, 복잡하기 때문이죠. "
Five Years Ahead
"오에스텐과 아이폰은 이런 제한이 없습니다. 스티브 잡스를 제가 믿는 이유 중에 하나가 바로, 아이폰이 경쟁보다 5 년은 앞서있어서에요. 물론 이 말 자체도 마케팅 치사이고, 언론과 분석가들은 여기에 동의하지 않죠. 고품질에 진보적인 애플리케이션, 그리고 우월한 사용자 만족도가 오에스텐에서는 빠르고 쉽게 돌아갑니다. 다른 플랫폼과 비교해 보면, 포뮬라 레이스 원에서 조그마한 피아트하고 페라리와 경주하는 꼴이죠.
오에스텐은 아마도 C++ 대신 오브젝티브 C로 프로그램할 수 있는 유일한 운영체제일 겁니다. 코코아 프레임웍을 사용하기 때문이죠. 게다가 오브젝티브 C는 프로그램하기 쉬운 것으로 유명합니다. 자유로이 오브젝티브 C와 C++을 같은 프로그램에 혼합시킬 수도 있죠. 레퍼드에서 애플은 오브젝티브 C 2.0을 선보이게 됩니다. 가비지 콜렉션이나 다른 새로운 기능이 들어있는데, 어떻게 보면 C++보다도 더 나은 기능이에요. 그리고 코코아 프레임웍은 세계적인 데스크톱 컴퓨터상에서 돌아갑니다. 넥스트스텝 시절에도 유명했죠.
그러니까, 이 모든 것을 합하면, 애플은 정말 최고의 무기를 갖고서 더 허술한 경쟁자들과 싸우게 될 겁니다. 미래의 스마트폰 애플리케이션과 무선 서비스를 두고 말이죠. 언론과 분석가 대부분은 기술을 잘 모르죠. 이러한 사정을 깨달을 만한 식견도 없는 모양입니다."
| iPhone 인사이드 | iPhone용 OS X과 WinCE, Palm, Symbian, 리눅스 | iPhone과 그의 경쟁상대들 | This Series 애플과 미디어 |
| | | |
What do you think? I really like to hear from readers. Leave a comment or email me with your ideas.
http://www.roughlydrafted.com/RD/RDM...AF3BD8B30.html