Swift
Définition
Swift est un langage de programmation compilé et multi-paradigme développé par Apple, il met l’accent sur la sécurité, les performances et une syntaxe expressive.
Caractéristiques principales
- Paradigme : Multi-paradigme (orienté objet, fonctionnel, impératif, orienté protocole)
- Licence : Apache 2.0
- Exécution : Compilateur LLVM + Swift Runtime (compilation AOT en code natif)
- Créateur : Chris Lattner (a également créé Clang/LLVM, Swift
- Première publication : 2014 au WWDC
Fonctionnalités du langage
- Sécurité des types : Typage statique fort avec inférence de types
- Optionnels : Gestion explicite des valeurs nil (prévient les exceptions de pointeur null)
- Protocoles : Fondement du système de types de Swift (remplace l’héritage OOP traditionnel)
- Fermures : Fonctions de première classe avec sémantique de capture
- Pattern matching : Switch avec déstructuration, patterns enum
- Concurrence : async/await, actors, conciliation structurée
- Interopérabilité : Pontage complet avec les bibliothèques Objective-C et C/C++
Versions majeures
| Version |
Année |
Caractéristiques clés |
| Swift 1.0 |
2014 |
Version initiale |
| Swift 2.0 |
2015 |
Gestion des erreurs (do/catch), instruction guard |
| Swift 3.0 |
2016 |
Révision des lignes directrices de conception d’API |
| Swift 4.0 |
2017 |
Compatibilité source, Codable |
| Swift 5.0 |
2019 |
Stabilité swift-abi, type Result |
| Swift 5.5 |
2021 |
async/await, actors, swift-concurrency |
| Swift 5.9 |
2023 |
swift-pattern-matching, swift-actors |
| Swift 6.0 |
2024 |
Vérification stricte swift-concurrency, swift-abi |
Écosystème
| Framework |
Objectif |
| SwiftUI |
Framework UI déclaratif pour les plateformes Apple |
| Combine |
Framework de programmation réactive |
| Foundation |
API de base (chaînes, collections, réseau) |
| Swift Package Manager |
Outil de build et gestionnaire de dépendances |
| Vapor |
Framework web Swift côté serveur |
Cas d’utilisation
- Développement d’applications iOS et iPadOS (principal)
- Développement d’applications macOS
- Applications watchOS et tvOS
- Développement backend côté serveur (Linux)
- Développement de jeux (avec Metal)
Comparaison avec les langages apparentés