1.jpg

 

프로그래밍 언어의 샛별

스위프트 (Swift)는 WWDC2014에서 처음 발표되었는데요. macOS나 iOS 소프트웨어를 개발할 때 사용하는 새로운 프로그래밍 언어랍니다.

스위프트 등장 이후 폭발적인 인기를 얻고 있는데요. 산업 조사 기관인 레드몽크 (RedMonk)가 발표한 프로그래밍 언어 순위에 따르면 2014년 3분기 46위였던 것이 잘 알려진 여타 프로그래밍 언어를 제치고 2015년 1월 22위, 2017년 1월엔 11위까지 올라왔습니다. 스위프트의 이런 인기는 어디서 온 걸까요?

 

2.jpg

2017년 1월 레드몽크 프로그래밍 언어 순위

 

세상이 바뀌고 언어도 바뀌고

프로그래밍 언어라는 것은 예나 지금이나 컴퓨터가 이해할 수 있는 '기계어'라는 문자의 집합이라는 데는 달라진 게 없습니다. 사람이 기계어를 사용하기란 쉽지 않으므로 프로그래밍 언어라는 것을 통해 사람이 '더 알기 쉽게' 쓸 수 있게 하는 것이죠.

 

그런데 이 '더 알기 쉽게'라는 의미는 시대에 따라 달라진답니다. 예를 들어 초창기 프로그래밍 언어는 한 줄의 길이가 80자 정도로 제한되어 있었는데요. 이것은 천공 카드 (구멍을 뚫어 그 위치나 구멍 유무로 정보를 기록하는 종이)의 크기에 맞추기 위함이었지요.

 

3.jpg

천공 카드

 

1970년대 초반에 태어난 프로그래밍 언어인 'C'는 당시로서는 복잡한 기능이 없고 친근한 문법 때문에 C로 작성된 UNIX와 함께 순식간에 보급되었습니다. 그리고 C에 최신 개념인 '객체 지향'이라는 것을 실현한 C++이 80년대에 등장하였고요.

 

이후 인터넷 시대가 도래하면서 자바스크립트 (JavaScript)라는 언어가 태어납니다. 다양한 상황에서 사용할 수 있고 폭넓은 표현력 때문에 악용될 가능성도 적지 않은 양날의 검과 같았지만, 웹 브라우저와의 찰떡같은 궁합으로 인해 인기 순위에서 1위를 내주지 않고 있다지요.

 

컴퓨터가 발달하고 IT 환경이 진화하면서 기존의 프로그래밍 언어에 대한 연구도 꾸준히 진행되어 왔습니다. 그리고 현재는 프로그래밍 언어에 따른 기능 차이는 사실 그리 크지 않게 되었습니다. 더 정확히 말하자면 어떤 언어는 할 수 있는데 다른 언어는 할 수 없는 것들이 그리 많지 않게 되었다는 것이지요. 다만, 웹 브라우저에서 천공 카드보다는 자바스크립트를 쓰는 것이 더 편리하고 생산성이 좋겠지요. 이런 면에서 새로운 언어는 시대가 변함에 따라 계속해서 태어나고 있습니다.

 

4.jpg

애플에서 밝히는 스위프트 속도

 

역사가 깊은 언어의 장점

물론 새로운 언어가 언제나 좋은 건 아니랍니다. 역사가 깊은 언어는 그때까지 쌓인 라이브러리와 프레임워크 (프로그래밍에서 자주 쓰는 코드나 유틸리티에 대해 간단하게 호출할 수 있는 기능 덩어리)가 있습니다.

 

게다가 새로운 언어는 모든 사람이 편리하게 사용할 수 있기까지 시간이 걸리지요. 기존의 언어는 이미 익숙하므로 더 빠르게 프로그래밍할 수 있고 프레임워크와 경험의 축적 여부도 차이가 나므로 효율성에서도 밀접한 관계를 갖게 됩니다. 7위에 랭크된 루비 (Ruby)는 발표 당시엔 아는 사람만 안다는 그저 그런 존재였는데 Ruby on Rails라는 프레임워크의 등장으로 단번에 메이저가 되었다 해도 과언이 아닙니다.

 

5.jpg

루비

 

Objective-C의 장단점

80년대에 C++과는 별도로 태어난 언어가 바로 Obj-C (Objective-C)인데요. 단순히 말하자면 C++에 최소한의 기능만 추가된 언어였습니다. C를 사용할 수 있는 사람이라면 지금까지의 경험을 최대한 살릴 수 있고 필요한 부분만 추가로 배우면 된다는 장점이 있습니다.

 

당시 애플에서 쫓겨나 넥스트사를 차린 스티브 잡스의 눈에 띄어 그 이후 애플 표준 프로그래밍 언어로 주구장창 사용되었습니다. 넥스트는 아예 이 언어의 모든 권리를 구매했고 넥스트를 인수한 애플은 지금까지 Obj-C의 관리를 책임지고 있습니다.

 

6.jpg

애플에서 쫓겨난 스티브 잡스가 세운 넥스트

 

그리고 코코아 (Cocoa)는 Obj-C 언어를 기본으로 사용하는데요. Obj-C를 주력으로 하는 개발자가 전 세계 1%도 안 되다 보니 코코아를 사용하여 다른 언어를 쓰고자 하는 시도도 잘 되지 않았습니다. 코코아는 Obj-C를 위한 프레임워크였고 각 언어마다 프레임워크를 호출하기 위해 나름대로 정해진 규칙이 있다 보니 코코아가 다른 언어에서 사용되기 위한 다리를 만들어야 하는 또 다른 일이 발생하게 된 것이죠. 자바나 루비, 애플스크립트에서 코코아를 호출할 수 있기는 하지만, 실상 널리 사용되기엔 너무 부담스러운 상태였습니다.

 

스위프트는?

여기까지 오면 왜 스위프트가 주목되는지 알 수 있는데요. 스위프트는 현대적인 언어로 현대적인 기능을 가지면서 Obj-C와 같은 호출 방법을 지원하기 때문에 코코아 등 Obj-C로 작성된 API를 직접 호출할 수 있습니다.

 

물론 Obj-C 코드 사이에 스의프트 코드를 섞어 쓸 수도 있는 등의 배려도 이루어지고 있지만, 카본 (Carbon)이 애플 배려 속에서 안주하다가 64bit 시대에 어떻게 내쳐졌는지, 로제타가 얼마나 빠르게 퇴출됐는지를 본다면 Obj-C도 뻔할 뻔 자라고 봅니다.

 

7.jpg

스위프트 발표 이후 이런 사진도 등장했을 정도

 

 


 

macOS 시에라

 

당신의 맥 활용 능력을 확실히 업그레이드시켜줄

[맥 쓰는 사람들과 함께 하는 macOS 시에라]

 

도서 정보, 구매하러 가기 >>

 

 

  • |
  1. 1.jpg (File Size:61.5KB/Download:1)
  2. 2.jpg (File Size:68.3KB/Download:0)
  3. 3.jpg (File Size:124.6KB/Download:0)
  4. 4.jpg (File Size:27.4KB/Download:0)
  5. 5.jpg (File Size:58.2KB/Download:0)
  6. 6.jpg (File Size:60.0KB/Download:0)
  7. 7.jpg (File Size:93.8KB/Download:0)
  8. swift-og.jpg (File Size:15.8KB/Download:0)
  9. sierra.png (File Size:219.2KB/Download:0)
facebook twitter google plus pinterest kakao story band
Profile image
슈리net at 2017.04.18. 21:38
좋은글입니다. 프로그래밍 언어의 역사에 대해서도 알 수 있었구요.