일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Play2 로 웹 개발
- play2 강좌
- CORDA
- 하이브리드앱
- 스칼라 동시성
- 파이썬 동시성
- akka 강좌
- 파이썬 데이터분석
- 주키퍼
- 플레이프레임워크
- Adapter 패턴
- 스위프트
- Actor
- 이더리움
- play 강좌
- 안드로이드 웹뷰
- Akka
- 그라파나
- 하이퍼레저 패브릭
- 스칼라 강좌
- 블록체인
- Hyperledger fabric gossip protocol
- Golang
- 스칼라
- hyperledger fabric
- 엔터프라이즈 블록체인
- Play2
- 파이썬 머신러닝
- 파이썬 강좌
- 파이썬
- Today
- Total
HAMA 블로그
애플에서 만든 Swift 언어에 대해 (장/단점) 본문
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 가 이미 오픈소스 병렬/분산솔루션에 채택되고 쓰이는것에 비해 앱개발 위주로 사용되고 있다. 이건 첫번째 단점과 맥을 같이하며 시간이 해결해 줄거라 봅니다.
'소프트웨어 사색 ' 카테고리의 다른 글
풀스택이 필요해~ (0) | 2016.08.21 |
---|---|
인더스트리 4.0 (0) | 2016.05.10 |
함수형 프로그래밍이란 (2편) (0) | 2016.01.11 |
왜 스칼라를 비롯한 잡종/순수 함수형 언어가 메이져가 될수 없는가.. (0) | 2016.01.11 |
SCADA 란? 그리고 SCADA 와 IoT (0) | 2016.01.05 |