관리 메뉴

HAMA 블로그

애플에서 만든 Swift 언어에 대해 (장/단점) 본문

소프트웨어 사색

애플에서 만든 Swift 언어에 대해 (장/단점)

[하마] 이승현 (wowlsh93@gmail.com) 2016. 4. 25. 13:53

C++ 만 알고 있다가 자바를 알고서 C++ 은 뒷전이되고, 파이썬을 알고 나서 자바는 뒷전이 되고.. 이제 파이썬 말고 다음 주력 언어로 무엇을 해볼까 생각하던중.. Go 아니면 Clojure 를 생각하고 있었는데  (물론 이런 언어 선택은 상황에 맞춰 선택하는게 답이지만 ) 이번에 폴리글랏 오프라인 스터디를 시작하면서 처음으로 Swift 언어로 코드를 작성해봤고, 공부를 좀 했는데 이거 맘에 들더군요.  :-)    그래서 좋은건 나누고자하는 마음으로  장/단점을 리스팅 해보겠습니다. 

(주관적 견해가 섞여있습니다.)


장점


- 파이썬과 차원이 다른 속도.

 거의 C++ 과 비교될만한 속도를 보여줍니다. 
 C++ > Swift > Go >  Scala > Clojure > 표준 Python  정도로 보시면 될거 같습니다.
 사족을 추가하자면 현대 컴퓨팅 환경에서 간단한 벤치마크로 속도를 판별하는건 좀 의미가 없지 않나 합니다.
 리얼 월드에서의 진짜 문제들을 빠르고 안정성있게 개발하는게 우선시 되고 있으니까요.

- 파이썬,루비급의 심플함 및 코딩하고 싶게 만드는 매력 

 구글의 Go언어가 C 의 진화형(?) 자식이라면 , 애플의 Swift 는 파이썬의 진화형 자식입니다.   
 그만큼 가독성 및 심플하다는 야그. import 나 include 를 할 필요도 없음.  Clojure 같은건 대중화 될 가능성이 희박하다로 보고 있으며  C 및 객체지향에 익  숙해져 있는 주변개발자들을 설득하기가 어려울거 같습니다. (이 언어를 좋아하는 사람만 뽑던가 해야함) 

- Class 의 존재 

 자바스크립트 (최근에 class 가  포함됬다고 합니다) 라든지, Go 언어는 명시적인 Class를 이용한 객체지향언어가 아니라서 좀 헦  깔리며, 가독성이 떨어집니다. Class 매니아로써 이거시 필요합니다. 파이썬 2.7 은 Class  가 있지만  self. 를 계속 써  줘야한다는 불편함이 도를 넘었습니다.

- 오픈소스로 개방 

 다행이 swift 는 자사환경에서만 돌아가는것에서 벗어나서 범용 언어로 방향을 틀었습니다. 리눅스나 윈도우에서 
 서버개발을 swift 로 할 수 있겠지요.

- 아이폰 개발 및 안드로이드 개발까지 

 아이폰개발을 할 수 있으며, 추후에 안드로이드 개발까지 할 가능성이 열려 있습니다.

- 컴파일 언어지만 , 인터프리터로도 실행시킬수 있습니다. 

 파이썬처럼 그냥 코드 고치고 실행하면 됩니다. 엄청 편하겠쥬~



단점 


- 신생언어라 써드파티지원이 약함 (치명적이죠 -.-;;) 

 파이썬의 다양한 분야의 그 어마어마한 라이브러리 지원에 비하면, 엄청 초라합니다. 너무 신생이라 당연합니다. 예를들어 급히 얼굴인식이나 OCV/R 프로그램을 만들어야 한다고 치면, 파이썬은 구글링한후에 openCV 이용해서 코  딩하면 1시간이면 만듭니다. (물론 완성도등 수준에 따라서 1년이 걸릴수도있습니다.)

- Go 에 비해 컴파일 시간이 현저히 느립니다. 

 Go가 너무 빠른것. Go 는 컴파일언어인데 컴파일&실행이 인터프리터 실행한것처럼 빠르게 진행된답니다.

- Go/Scala/Clojure 가 이미 오픈소스 병렬/분산솔루션에 채택되고  쓰이는것에 비해  앱개발 위주로 사용되고 있다. 이건 첫번째 단점과 맥을 같이하며 시간이 해결해 줄거라 봅니다.



Comments