BLOG main image
분류 전체보기 (92)
Cocoa Touch (11)
Cocoa (10)
Objective-C (13)
Swift (6)
Development (11)
Tools (11)
Books (7)
etc (21)
Application release (1)
Document Project (1)
105,799 Visitors up to today!
Today 2 hit, Yesterday 2 hit
daisy rss
tistory 티스토리 가입하기!
'2014/06'에 해당되는 글 1건
2014. 6. 10. 13:53

WWDC 2014에서 애플은 Swift라는 새로운 언어를 발표했습니다.

많은 개발자가 놀라워했고 당황스러움과 함께 우려 반 반가움 반 뭐 그런 분위기였던 것 같습니다.


Swift에 대한 첫인상을 대충 이야기 하자면,

“스크립트 언어스러움을 표방하며 최신 언어 트랜드를 적절히 잘 합쳐서 재미있게 코딩을 할 수 있는 별 특색 없는 언어”라고 표현하고 싶습니다.

재미있는 현상은 주변 개발자들에게 Swift의 첫인상을 물어보면 하나같이 자신이 알고 있던 언어와 닮았다고 합니다. :)

스칼라, 자바스크립트, 액션스크립트, 파이썬… 뭐 그만큼 다른 언어에서 빌려 온 부분이 많다는 것이겠지요.


전반적으로는 긍정적인 분위기인듯 합다.

제 개인적인 견해는 앞서 말씀드린 첫인상 한 줄 표현과 함께 “굳이 왜 새 언어를 만들었을까?”로 요약될 것 같습니다.

기존의 괜찮은 언어들이 꽤 많은데 별로 새로울 것도 없는 언어를 새로 만들 필요까지 있었을까 하는 것이지요.

그러다보니 차라리 루비같은 언어를 사용하는 것이 더 좋지 않았을까 싶기도 합니다. 기존 루비 개발자들까지 끌어들일 수 있을테니까요.


그러지 못한 이유가 살짝 보이기도 합니다.

문제는 ARC입니다. 최신 언어들은 기본적으로 GC를 가지고 있는데 Swift는 GC가 없고 ARC 기반으로 동작합니다.

즉, GC를 기반으로 동작하는 언어를 그대로 가져오기에는 많은 어려움이 있었을 것이라는 생각도 듭니다.

애플이 LLVM-ARC를 계속해서 밀고 있는 상태에서 GC를 쓰기도 조금 어색한 구석이 있는 것은 사실입니다.

하지만, ARC를 사용하게 되면서 언어를 구성하는데 필수적이지 않은 지시어들과 룰이 많이 포함되었습니다.

앞서 여러 포스트에서 제 개인적으로 ARC에 대한 부정적인 견해를 많이 피력했었는데요, 지금도 마찬가지입니다.

ARC는 얼핏 봤을 때 매우 단순한 것 처럼 보이지만 실상은 꽤 복잡한 룰을 가지고 있습니다.

결국 retain-release 구조를 뒤로 숨기기 때문에 어쩔 수 없이 발생하는 문제인데요, 결국 이런 부분들이 언어를 불필요하게 복잡하게 만드는 경향이 있습니다.


그렇다면 Swift는 OOP 언어인가요?

글쎄요. 모양 자체는 OOP언어의 기본 형태를 따르고 있지만 access modifier가 없습니다.

해당 이슈에 대해서 Apple discussion forum에서 논의가 있었는데요, 결국 애플 개발자가 access modifier를 추가해주겠다는 것으로 결론이 났습니다.

제 생각이 틀렸는지 모르겠지만 OOP언어에서 access modifier가 없다는 것은 상상도 할 수 없었거든요.


그렇다면 Swift는 함수형 언어인가요?

글쎄요. 가이드를 대충 보기는 했지만 그 어디에서도 함수형 언어라는 인상을 받을 수는 없었습니다. 굳이 따지자면 OOP언어 + 함수형 언어 컨셉인 스칼라와 좀 닮긴 했지만 문법이 닮았다고 같은 부류의 언어로 구분하기는 어려울듯 합니다.


Swift Programming Guide 그 어디를 봐도 이 언어에 대한 명확한 정의는 없습니다. 아, 그냥 “재미있고 빠르게” 만들 수 있다는 정의가 있기는 하군요.

결국 Swift의 기본 컨셉은 “재미있고 빠르게”인듯 합니다.


그렇다면 Swift는 “재미있고 빠르게”의 컨셉에 맞을까요?

뭐 비교적 맞다고 생각은 듭니다. 저도 가이드 문서를 보면서 꽤 재미있는 언어라고 생각하기는 했습니다.


그렇다고 해서 정말 프로젝트를 “재미있고 빠르게” 수행 할 수 있을까요?

불행히도 아직까지 제 인상에는 “글쎄요”입니다.

모르긴 몰라도 현재 작성된 iOS, Mac OS 코드를 Swift로 바꾸는 작업, 또는 재작성 하는 작업은 매우 힘들고 피곤한 일이 될 것이기 때문입니다.

물론 매우 간단한 구조에 Swift에서 제공하는 기능만 쓴다면 “재미있고 빠른” 작업이 가능할지 모르겠습니다만, 세상일이 어디 그런가요?

기존에 있던 C API들(쿼츠, 퀵타임 등등)의 사용이 매우 번거로워질 것이 눈에 보이고요,

기존에 있던 수많은 오픈소스 C/C++/ObjC 코드들을 사용하는 것 역시 매우 번거로운 작업이 될 것이 뻔하기 때문입니다.


물론 저 역시 Swift를 계속 들여다 보며 공부할 예정이지만 이것으로 본격적으로 프로젝트를 수행할 날이 언제 오게 될지는 조금 더 지켜봐야 할듯 합니다.



Name
Password
Homepage
Secret
prev"" #1 next