
Swift는 2014년 WWDC에서 발표한 iOS, watchOS, macOS, tvOS 등 애플 플랫폼에 동작하는 어플리케이션을 제작하기 위해 애플에서 제공하는 프로그래밍 언어이다. 또한 Swift로 개발된 서버사이드 프레임워크를 통해 서버 제작도 가능하다.
Swift는 직관적이며 배우기 쉬운 언어이다(Safe, Fast, Expressive).
개발자의 실수에 대해 문법을 엄격히 적용하며 옵셔널, guard문 등을 통한 통제로 안전성을 높이고 있다.
C언어 수준과 동등한 성능을 일정 수준으로 유지하는 데 초점을 맞춰 개발되었으며, 실행 속도의 최적화 뿐 아니라 컴파일러를 지속적으로 개량해 더 빠른 컴파일 성능을 구현해 나간다.
Swift는 수많은 프로그래밍 언어의 문법의 장단점을 참고해 좀 더 편하고 좋은 문법을 구현하려 노력하는 한편 계속된 업데이트를 통해 더 보고 쓰기 좋은 언어로 발전해 나갈 것이다.
기존 명령형 프로그램처럼 명령어의 목록이 아닌 여러 개의 독립된 객체들의 모임으로 파악하고자 하는 것이다. 객체지향 프로그래밍은 프로그램을 유연하고 쉽게 변경할 수 있도록 작성할 수 있어 대규모 소프트웨어 개발에 많이 사용된다. 다른 사람이 프로그래밍을 할 때 유지보수가 간편해지고 직관적으로 코드를 이해할 수 있다. 객체지향 프로그래밍은 또한 클래스에 하나의 문제 해결을 위한 데이터와 메서드를 모아놓은 방식이기 때문에 응집력을 강화하는 반면 각 클래스는 독립적인 디자인이 되도록 디자인해 결합력을 약화한다. 그러나 지나친 객체와 경향 때문에 실제 모습을 그대로 반영하기 어렵다는 비판을 받기도 한다.
함수형 프로그래밍은 데이터 처리를 수학적 함수 계산으로 취급하고자 하는 프로그래밍이며 이를 통해 대규모 병렬처리를 쉽게 할 수 있다. 기존 객체지향 프로그래밍이나 명령형 프로그래밍 패러다임에서는 값이나 상태의 변화를 중요하게 여기지만 함수형 프로그래밍 패러다임은 함수 자체의 응용을 중요하게 여긴다.애플 프래임워크 대부분은 객체지향 프로그래밍 패러다임을 기반으로 설계된 클래스들로 구성되어 있으나 Swift에서는 함수형 프로그래밍 페러다임을 강조한다. 이는 애플의 프래임워크를 벗어난 다른 영역(서버용 프레임워크 등)에서 사용했을 때 순수하게 함수형 프로그래밍 패러다임으로 프로그램을 작성할 수 있기 때문이다.
- 여러가지 연산 처리 작업이 일어나는 프로그램을 만들기 쉽다.
- 멀티 코어 혹은 여러 연산 프로세스를 사용하는 시스템에서 효율적인 프로그래밍을 만들기 쉽다.
- 상태변화에 따른 부작용에서 자유로워지므로 순수하게 기능 구현에 초점을 맞추어 설명할 수 있다.
순수하게 함수형 프로그래밍으로 패러다임을 작성했을 때는 위와 같은 장점이 있다. 따라서 적절하게 객체지향과 함수형 프로그래밍 패러다임을 섞어 프로그래밍을 작성한다면 최적의 성능을 발휘함은 물론 생산성 역시 극대화되는 프로그램을 만들 수 있을 것이다.
스위프트는 구조체와 열거형에 기존 클래스에서 구현할 수 있던 캡슐화, 추상화, 접근 제어 등의 기능 구현이 가능하다. 프로토콜 지향 프로그래밍을 통해 값 타입인 구조체를 참조 타입인 클래스의 인스턴스보다 값 타입을 더 효율적으로 사용하며 오류를 줄일 수 있다. 또한 프로토콜에 익스텐션을 사용하여 프로토콜 지향 프로그래밍을 구현할 수 있다.