Comme tout changement, cela n’a pas fait l’unanimité, alors que certains développeurs ont considéré que les boucles for vont être tout simplement supprimées parce que quelqu’un en a eu l’idée. Si les responsables du projet ont accepté cette requête, il faut toutefois noter que dans le même temps de nombreuses autres n’ont pas obtenu l’approbation de ces derniers. Swift se veut en effet un langage open source, mais n’est pas ouvert à n’importe quelle suggestion. Au cours du mois de décembre 2015, plusieurs changements ont été fréquemment proposés par la communauté, mais n’ont pas eu de suite favorable. Dans la liste des requêtes couramment faites, mais qui sont peu susceptibles d’être acceptées, on peut citer :
- remplacer l’opérateur ternaire ?: : de nombreuses suggestions portaient sur le remplacement de l’opérateur ternaire ?: par une syntaxe plus verbeuse. Une des propositions faites envisageait par exemple de le remplacer par une syntaxe if cond then value1 else value2. Autrement dit, au lieu de let x = cond ? 4 : 8 par exemple, on devrait avoir let x = if cond then 4 else 8 . Cette syntaxe va cependant créer certaines confusions. Comme l’explique l’un des responsables du projet Swift, entre autres arguments qui permettent de rejeter la proposition, cette syntaxe ressemble à une déclaration if/else, mais est sémantiquement différente ;
- remplacer les opérateurs logiques &&, ||, !, etc. avec des mots comme « and » , « or », « not » : si cela peut améliorer la lisibilité du code, les opérateurs booléens de style Python ne s’alignent pas avec la conception de Swift, a expliqué l'un des responsables du projet ;
- utiliser les doubles guillemets ' ' au lieu des simples ' : cette proposition est également très peu susceptible d’être acceptée sous prétexte qu’il n’y a aucun besoin d’un délimiteur de fermeture (un deuxième guillemet). En plus, utiliser un seul symbole permet d’économiser une frappe ;
- remplacer le mot clé continue avec des synonymes existants dans d’autres langages : certains développeurs ont suggéré de remplacer continue par des synonymes comme next de Ruby ou encore skip ou advance dans d’autres langages. Mais les responsables du projet estiment que Swift est un langage de la famille C et qu’il n’y a aucune raison de s’en éloigner sans motivation pertinente ;
- remplacer les accolades { } par l’indentation de style Python : pour les responsables du projet, il n’y a aucune raison de changer Swift pour utiliser l’indentation de style Python au lieu des accolades ;
- réécrire le compilateur Swift en Swift : si cette proposition peut être acceptée avec beaucoup de plaisir un jour, elle peut toutefois exiger la capacité d’importer des API C ++ dans Swift. Les responsables du projet Swift estiment en plus qu’il y a beaucoup de façons prioritaires d’améliorer le langage que de réécrire le compilateur en Swift.
Ce n’est pas la liste exhaustive des propositions les plus courantes qui ont été rejetées. Mais, il faut aussi noter que parmi les autres demandes qui sont peu susceptibles d’être acceptées, il y a également la suppression des points-virgules ;.
Cette liste a été rendue publique pour informer la communauté que ces points ont été largement discutés. Ceux qui projetteraient donc de faire des requêtes dans ce sens doivent d’abord s’assurer d’apporter de nouveaux arguments que ceux déjà présentés dans les discussions. Pour toutes les propositions en général, les arguments devraient être également pertinents au lieu de simples « j’ai vraiment besoin de cela » ou « cela existe dans un autre langage et je le veux ici », est-il précisé sur la page GitHub de Swift.
Source : GitHub
Et vous ?
Que pensez-vous de cette liste de propositions faites par la communauté ? Sont-elles toutes non pertinentes ?
Voir aussi
Swift est maintenant open source, le code source du langage de programmation d'Apple est disponible sur GitHub
Swift : les boucles for de style C seront supprimées dans le langage de programmation à partir de la version 3.0