Developpez.com

Le Club des Développeurs et IT Pro

Apple inclut son langage de programmation Swift 3.1 dans Xcode 8.3

Avec un lot de nouveautés pour les développeurs

Le 2017-03-29 01:00:43, par Coriolan, Expert éminent sénior
La dernière version de Xcode intègre Swift 3.1, la première mise à jour du langage depuis qu’Apple a révélé Swift 3.0 en open source il y a six mois. Bien qu’il s’agisse d’une mise à jour mineure, elle apporte quelques nouveautés intéressantes. Swift 3.1 est compatible avec Swift 3.0 et apporte quelques changements au langage et des mises à jour qui sont pour la plupart passées par le processus d’évolution du langage (une fois une proposition est approuvée, elle devient éligible pour apparaître dans une version future de Swift). Parmi les nouveautés, il y a :

De nouveaux membres du protocole Sequence

Le protocole Sequence a maintenant deux nouveaux membres :

Code :
1
2
3
4
5
6
7
8
9
protocol Sequence {
  // ...
  /// Returns a subsequence by skipping elements while `predicate` returns
  /// `true` and returning the remainder.
  func drop(while predicate: (Self.Iterator.Element) throws -> Bool) rethrows -> Self.SubSequence
  /// Returns a subsequence containing the initial elements until `predicate`
  /// returns `false` and skipping the remainder.
  func prefix(while predicate: (Self.Iterator.Element) throws -> Bool) rethrows -> Self.SubSequence
}
La disponibilité par la version de Swift

Swift 3.1 étend l’attribut @availability pour utiliser la version de Swift et indiquer le cycle de vie de la déclaration. Comme exemple, une API supprimée dans Swift 3.1 sera décrite comme suit :

Code :
1
2
3
4
@available(swift, obsoleted: 3.1)
class Foo {
  //...
}
Déprécation et remplacement de UnsafeMutablePointer.initialize(from

La version de UnsafeMutablePointer.initialize(from qui prend un collection a été retirée en faveur d’une nouvelle méthode sur UnsafeMutableBufferPointer qui prend un Sequence, le but étant d’améliorer la gestion de la mémoire et sa sécurité.

À noter que Swift 3.1 embarque également une quantité d'améliorations pour l'implémentation Linux, grâce à IBM et d’autres membres de la communauté qui s'impliquent beaucoup dans son développement :

  • Implémentation de NSDecimal
  • Implémentation de NSLengthFormatter
  • Implémentation de Progress
  • Plusieurs améliorations de la fonctionnalité URLSession, incluant l’API de couverture et un usage optimisé de libdispatch
  • Une couverture améliorée des API dans NSArray, NSAttributedString et d’autres
  • Des améliorations importantes de la performance dans Data
  • Une amélioration de la performance de la sérialisation JSON
  • Les fuites de mémoires réglées dans NSUUID, NSURLComponents et d’autres
  • Une amélioration du test de couverture, surtout dans URLSession


Avec le lancement de Swift 3.0, les équipes avaient pour objectif de rendre l’expérience de développement avec le langage plus mature et plus solide. De Swift 3.1 à Swift 4+, le langage va rester compatible avec les sources issues des bases de code antérieures. L’équipe de développement du langage se concentre désormais sur Swift 4 qui sera finalisé plus tard cette année.

Le langage de programmation Swift entre dans le top 10 du classement TIOBE

Durant le mois de mars, Swift est entré dans le top 10 de l’index de TIOBE pour la première fois, ce qui souligne le dynamisme du jeune langage de programmation qui s'apprête à fêter sa troisième année d'existence. Mais TIOBE pense que Swift ne montera pas davantage dans son classement, en raison de la nature et la raison d’être du langage centré sur l’écriture d'applications pour l'écosystème d’Apple.

Toutefois, des entreprises comme IBM ont l’intention de recourir à Swift en tant que langage serveur, en raison de sa performance et ses besoins en mémoire moindres. En théorie, Swift permet de faire des économies pour tourner sur les infrastructures cloud comparé à Java.

Source : blog Swift

Et vous ?

Qu'en pensez-vous ?
  Discussion forum
9 commentaires