WWDC : Apple dévoile son nouveau langage de programmation Swift
Qui serait plus sûr, plus rapide et plus fiable qu'Objective-C

Le , par Hinault Romaric, Responsable .NET
La conférence WWDC 2014 (Apple Worldwide Developers Conference), l’événement majeur de l’année regroupant les développeurs autour des technologies d’Apple a été riche en annonces pour sa première journée.

La plus grosse surprise du jour a été la présentation d’un nouveau langage de programmation par la firme à la pomme croquée pour le développement d’applications pour iOS et OS X.

Baptisé Swift, ce nouveau langage introduit une syntaxe toute nouvelle. Apple souhaite marquer la rupture avec le langage C, sous lequel repose Objective-C. Selon Craig Federighi, vice-président d’Apple, à qui l’honneur a été accordé pour annoncer le langage, « Swift représente le nouveau Objective-C sans le langage de programmation C ».

Swift sera inclus par défaut dans l’outil de développement Cocoa et Cocoa Touch. Il reposera, pour un début, sur le même runtime qu’Objective-C et le code écrit en Swift pourra cohabiter avec du code C/Objective-C, ceci pour éviter dans un premier temps de dépayser les développeurs déjà familiers avec C/Objective-C. Mais, le langage évoluera vers une syntaxe proche des langages de script comme Python.


Par rapport à Objective-C, Swift introduit de nouveaux opérateurs ; prend en charge les types de variables comme les Tuples et les types facultatifs ; les génériques ; « closures » ; des structures qui soutiennent des méthodes, des extensions et des protocoles ; des itérations rapides sur une plage ou une collection ; le support des modèles de programmation fonctionnelle, etc.

Swift bénéficiera d’une intégration parfaite avec Xcode. Les développeurs auront à leur disposition un éditeur de code interactif, permettant d’appliquer des changements dans le code et de voir instantanément les résultats sur l’application.

« Swift est un nouveau langage de programmation puissant pour OS X et iOS, qui permet aux développeurs de créer avec facilité des applications incroyables », vante Apple dans un communiqué de presse. « Swift aide les développeurs à écrire du code plus sûr et plus fiable, en éliminant les erreurs qui existent avec Objective-C. Les développeurs peuvent facilement intégrer Swift dans leurs applications existantes. »

Selon Apple, le langage a été conçu avec la sécurité à l’esprit, avec notamment les variables qui doivent être initialisées avant utilisation, des tableaux qui sont vérifiés en cas de débordement ou encore la gestion automatique de la mémoire. Apple met également en avant la vitesse du langage. Par exemple, un algorithme de tri complexe est 3,9 fois plus rapide que son équivalent en Python et également plus rapide que son équivalent en Objective-C.


Dès que les versions stables du prochain iOS et OS X seront disponibles, les développeurs pourront publier sur l’App Store leurs applications développées avec Swift.

Source : WWDC 2014

Et vous ?

Que pensez-vous de ce nouveau langage de programmation ? A-t-on encore besoin d'un nième langage ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de abriotde abriotde - Membre éprouvé https://www.developpez.com
le 03/06/2014 à 8:17
Son principale défaut : tout comme Objective-C c'est un langage propriétaire exclusivement réservé au développement Apple. Cela limite grandement l’intérêt.
Sinon dans l'absolu un langage plus rapide a l’exécution et au développement est toujours le bienvenu. Je doute que le langage soit vraiment plus rapide car le benchmark est sur un algorithme répétitif simple que les VM compilent en langage machine pour les plus optimisé. La VM est simplement plus optimisé car plus récente...
Avatar de rthomas rthomas - Membre du Club https://www.developpez.com
le 03/06/2014 à 9:16
Beaucoup de développeurs iOS réagissent sur Twitter et pensent plutôt passer à Xamarin qui à l'avantage de cibler aussi Android et Windows phone.
Avatar de CP / M CP / M - Membre actif https://www.developpez.com
le 03/06/2014 à 9:26
Citation Envoyé par abriotde Voir le message
Son principale défaut : tout comme Objective-C c'est un langage propriétaire exclusivement réservé au développement Apple. Cela limite grandement l’intérêt.
Sinon dans l'absolu un langage plus rapide a l’exécution et au développement est toujours le bienvenu. Je doute que le langage soit vraiment plus rapide car le benchmark est sur un algorithme répétitif simple que les VM compilent en langage machine pour les plus optimisé. La VM est simplement plus optimisé car plus récente...
Objective-C n'est pas un langage propriétaire. Ce qui l'est, c'est l'implémentation par Apple des librairies Cocoa, NextStep et ce qui gravite autour, même si GNUStep est une réimplémentation partielle de NextStep. Et clang et gcc sont tout à fait apacbles de compiler de l'Objectve-C ; c'est d'ailleurs les compilateurs qui sont ou ont été fournis par Apple.
Avatar de Gugelhupf Gugelhupf - Modérateur https://www.developpez.com
le 03/06/2014 à 9:52
Est-ce que les programmes créés avec Swift seront exécutés par une machine virtuelle Apple ?

Objective-C n'est pas un langage propriétaire.
De base non. Mais Apple est la seule société à l'utiliser, et je vois mal un programme en Objective-C sans les API Cocoa etc...
Objective-C était un langage mort jusqu'à ce que les iPhone/iPad débarquent.
Le jour où Apple laissera tomber Objective-C, ce sera la fin de celui-ci.
Avatar de Sylvaner Sylvaner - Membre éclairé https://www.developpez.com
le 03/06/2014 à 10:36
Citation Envoyé par Gugelhupf Voir le message

Objective-C était un langage mort jusqu'à ce que les iPhone/iPad débarquent.
Merci grâce à toi je comprend ce que j'ai ressenti quand j'ai appris ce langage, c'est donc un langage zombie
Citation Envoyé par CP / M

... même si GNUStep est une réimplémentation partielle de NextStep. Et clang et gcc sont tout à fait apacbles de compiler de l'Objectve-C ...
C'est officiel, le masochisme informatique existe.
Avatar de iolco51 iolco51 - Membre habitué https://www.developpez.com
le 03/06/2014 à 11:41
Comme d'habitude Apple fait les chose différemment. D'habitude j'aime bien ceux qui font différemment, mais comme il y a déjà pléthore de langages...

A l'époque Objective-C était un langage pertinent pour les devs, au vu de la part de marché d'IOS jusqu'il y a 4-5 ans. Swift le sera-t-il autant? Et puis Objective-C avait quelques heures de vol (1983, c'est quand même du éprouvé sur long terme).

Maintenant, un langage de programmation juste pour IOS, alors que les parts de marché d'IOS sont en nette régression, et que les devs doivent déjà maitriser au grand minimum une demi douzaine de langages pour être performants.

C'est juste S.T.U.P.I.D.E.

Mini état des lieux du métier de développeur:

  • Les langages répandus (C, C++, Haskell, Python, Perl, Objective-C, Java, Javascript, Scala, Groovy, Lisp et ses dérivés, Ruby, C#, F# et autres langages de .NET, PHP, Lua, langages de shell divers), sans oublier les dinosaures (FORTRAN, COBOL -aie) et les petits derniers prometteurs (D, dart, coffee, GO), les tentatives de langages plus ou moins propriétaires, les langages à applications spécifiques (VBA, R, Mathlab, les variantes de SQL), la multitude de ceux que j'ai oublié, et bien sur se tenir a jour des nouvelles versions et fonctions de tous ces langages. Combien de ces langages devez vous maitriser un minimum pour être performant dans votre métier?
  • On ajoute les frameworks qu'il faut maitriser, les concepts de plus haut niveau (architecture SOA, MDA... Les concepts SOLID, injection de dependance, les design patterns), les methodes de dev (TDD, BDD, La rache), les methodes et process d'ingenierie (RUP, SCRUM, XP, Crystal, la rache), l'integration continue et DevOps...
  • J'ai failli oublier les grandes bases: l'architecture systeme, les processeurs, la mémoire et sa gestion, les protocoles et les services réseau (OSI, TCP/IP, HTTP...etc.), les structures de données.
  • Ah, et les formats de sérialisation données (XML, JSON, protocol buffers...), les protocoles de services (JMS, COM, CORBA...), les couches de présentation (HTML et consorts... Heureusement le HTML semble prendre la tête)
  • N'oublions pas non plus les outils: IDEs, compilateurs, gestionnaires de version et consorts
  • Et puis les bases de données, car il faut en savoir dessus (toutes les variantes SQL, Big Data, orientées graphe
  • On rajoute aussi les bonne pratiques, la sécurité de l'information
  • Enfin et surtout: savoir faire du code qui marche (et qui fait ce qu'il doit faire) dans les temps impartis


Wow!

Merci Apple. Nous avions justement besoin d'un nouveau langage, qui n'est pas interopérable, que vous êtes les seuls a développer et soutenir, avec une ÉNORME API, qu'il faudra (ré)apprendre, maitriser (et évidemment debugger pour vous, comme toute nouvelle techno informatique qui sera truffée de bugs mystérieux).
Et puis le communiqué est plutot rigolo:
  • Gagner un pouillème sur les tris d'objets? C'est presque comique comme promotion de langage, sur du big data je comprendrais l’intérêt, mais sur un terminal mobile ou un PC Mac je n'ai pas vu de problème de perfs avec les tris depuis 15 ans dans 99% des cas d'utilisation. Et encore je doute de leur benchmark, lorsqu'on se rendra compte que peut-être trier un tableau d'entiers prend 15 fois plus de temps qu'en C/Java/Python/C#.
  • Et communiquer sur la sécurité alors que le bousin va être en bêta dans les 5 années à venir avec une multitude de failles dans le coeur du langage (ou le compilateur, ou les API) bien plus faciles a exploiter en masse que les erreurs de dev.


COOL !

Ceci dit, que j'aime avant dans notre métier de développeur c'est que l'on ne s'ennuie jamais.
Avatar de teddyFry teddyFry - Membre à l'essai https://www.developpez.com
le 03/06/2014 à 12:48
J'ai du mal à comprendre comment avec le même runtime un language peut tourner deux fois plus vite qu'avec un autre.
Il me semble que traduire un programme de C# à F# n'apporte pas de bénéfices particuliers à moins d'utiliser les nouveaux concepts introduits avec le F#.

Enfin il me semble que faire évoluer l'objectif C aurait été un choix bien plus judicieux pour leur écosystème.
Avatar de TheLastShot TheLastShot - Membre averti https://www.developpez.com
le 03/06/2014 à 12:56
Au début quand j'ai lu cette nouvelle j'ai réagi un peu de la même manière que mes prédécesseurs ("Allez, Apple continue de se la jouer Hipster et on va encore avoir droit à un langage dégueulasse". Mais finalement, après avoir jeté un coup d'oeil (rapide) au langage en question, je dois avouer que c'est plutôt une bonne chose. En effet, Apple a fait le choix de s'orienter sur un autre paradigme, à savoir le paradigme fonctionnel qui certes est un peu difficile à comprendre pour les non initié mais qui au final permet d'avoir un code beaucoup plus propre (quand on sait s'en servir) que ce que donnait l'Objective-C (faut dire que c'était pas très difficile de faire mieux).

Alors certes ça rendra le travail un peu plus compliqué dans un premier temps pour ceux qui devront découvrir ce paradigme, mais au final ce sera peut-être un gain de temps sur le long terme. A voir...
Avatar de DonQuiche DonQuiche - Expert confirmé https://www.developpez.com
le 03/06/2014 à 12:59
Il était temps de flinguer Objective-C, ils auraient dû faire ça il y a dix ans. Du coup je consentirai peut-être à m'intéresser à cette plateforme. Par contre je passe sur les grands élans à propos de la révolution, du top de la recherche, des performances incroyables, etc : avec Apple on a l'habitude des superlatifs, promesses faramineuses, graphiques sortis du chapeau et de la com' outrancière. A priori c'est un langage à l'approche standard (impératif et objet à typage statique) avec des fonctionnalités standard en 2014 (éléments de prog fonctionnelle, cf. Scala, C#, Java et tous les autres) et point barre. Et encore : rien pour les traitements concurrents en 2014 ? Mouaiiiiis.

Par contre une question pour les pommeux svp : il y a un an de cela environ Apple mettait fin à la gestion automatique de la mémoire au profit du comptage de références en forçant tout le monde à réécrire son code et en jurant leurs grands dieux que c'était l'avenir et indispensable. Techniquement ce revirement fait sens mais c'était attendu ou bien ça vous tombe encore dessus sans crier gare ?

Accessoirement y a t-il une raison technique à ce qu'ils aient créé leur propre langage? Y avait-il des besoins spécifiques pour la compatibilité avec Objective-C que les autres langages ne pouvaient satisfaire (notamment Java ou C#) ?
Avatar de Le Vendangeur Masqué Le Vendangeur Masqué - Nouveau Candidat au Club https://www.developpez.com
le 03/06/2014 à 13:25
Citation Envoyé par rthomas Voir le message
Beaucoup de développeurs iOS réagissent sur Twitter et pensent plutôt passer à Xamarin qui à l'avantage de cibler aussi Android et Windows phone.
L'homme qui a vu l'ours, qui a vu… LOL

Désolé mais la campagne de FUD ça ne prendra pas. Non Twitter n'est pas envahi de devs avec la bave aux lèvres…
Et franchement des rageux on en a chaque fois qu'Apple dévoile un truc qui sort de l'ordinaire. Tout ça parce que ça remet en cause la fainéantise et la médiocrité de certains pseudo développeurs. Minable et insignifiant mais on en a l'habitude…

Comparer avec Xamarin c'est juste n'importe quoi ! Sans parler des qualités propres de Swift face à un vieillissant C#, le critère des perfs disqualifie automatiquement ce bricolage lourd qu'est Xamarin.
Et vu la taille du marché d'Apple (un parc total qui frise le milliard d'appareils) et de ses clients qui n'ont pas de pingrerie à acheter des applis, je dois dire que l'argument du "ça tourne ailleurs" m'est parfaitement égal.
Contacter le responsable de la rubrique Accueil