A propos de Swift

Certains d'entre vous ont-ils testé Swift ?

a marqué ce sujet comme résolu.

Salut tout le monde.

Suite à la lecture de cette planche :

Dilemme

Qui fait resurgir, je pense, chez tous les développeurs d'app mobiles de mauvais souvenirs, je me suis souvenu qu'Apple avait annoncé l'arrivée de Swift et que ça vaudrait peut-être le coup d'y jeter un œil en profondeur quand même avant la rentrée.

Donc d'une part je me demandais si certains ici avaient commencé à bricoler avec pour avoir quelques retours d'expérience, et d'autre part s'ils avaient trouvé des ressources intéressantes à partager.

J'ai pour l'instant récupéré un livre gratuit sur iTunes ainsi que la version en ligne mais je ne doute pas qu'il doit exister des cours d'introduction peut-être plus vivants et sympathiques à suivre.

Je compte sur votre sérieux pour pas troller sur iOS, Apple et compagnie bien évidemment, surtout que dans le cadre professionnel du développement mobile on ne peut malheureusement plus trop ignorer les iDevices.

Merci d'avance pour tous les retours.

Note : on pourrait également se fendre d'un article ou post-it sur les différents frameworks (voire méthodes) de développement mobile cross-device (celles citées sur la planche notamment, je sais qu'il en existe en Python également) ça pourrait être intéressant, au moins pour les répertorier.

+0 -0

je sais qu'il en existe en Python également

Kivy ! Kivy ! Kivy !

Bon, une fois passé mon coté python fan-boy, je ne vais pas pouvoir aider plus ne disposant pas ni de iDevice, ni de mac. L'arrivée de Swift me laisse assez indifférent puisque cela ne touche qu'un monde qui ne me concerne pas et je doute que ça dépasse les frontières de l'eco-système d'Apple, tout comme l'Objectif-C n'a jamais vraiment percé ailleurs. Pour autant c'est peut être une bonne nouvelle pour les dev devant travailler sur ces plateforme, ce nouveau langage comblant visiblement des lacune de l'obj-c.

Au passage, si certains sont compétent sur le sujet, cela ferait probablement un grand bien a zds si des articles ou tuto concernant Swift étaient rédigé. Il y a très peu de contenu sur le sujet et en français on doit approcher le zéro absolut.

J'ai pas commencé les bouquins, je les ai téléchargés ce matin.

Après, pour te faire un retour sur "la concurrence", perso j'ai toujours travaillé avec PhoneGap (et j'étais plutôt heureux de ne pas avoir à toucher à Objective-C) donc ça risque d'être limité en termes de comparaisons, à moins que tu ne veuilles parler de "concurrents" en parlant d'autres langages de script. Si c'est le cas, je connais juste Javascript, Groovy et Ruby principalement, ça risque d'être léger pour faire une comparaison ;)

+0 -0

Oui je parlais plus niveau langage car outre le fait que le dev mobile ne m'interesse pas, en soit, swift est un langage et n'est théoriquement pas limité aux plateforme mobile (et de toute façon je doute que ce soit interopérable avec d'autres plateforme)

A cours terme Swift est inintéressant car il se veut seulement "complémentaire" de l'Objectif-C pour le dev iOS. En revanche si Apple le rend indépendant avec des fonctionnalités novatrices, pourquoi pas…

Mon point de vue personnel sur Swift, est une grosse déception. Actuellement le dev mobile se fait grâce au Java, C# et Objectif-C qui sont très, très, très proche, plus que similaire (syntaxe, fonctionnement). La programmation allait depuis quelques temps vers une uniformisation, GÉNIAL!! Évidemment Swift sort et est radicalement différent des autres… Merci Apple.

Pour moi c'est plutôt une bonne nouvelle. La concurrence et l'innovation est ce qui fait avancer la technologie, pas l'uniformisation. C'est d'autant plus vrai dans un domaine comme les langages de programmation où il y a dix milles façons de décrire un programme.

Qu'acteur bouge les lignes est une bonne chose.

Merci Cirdo pour le lien :)

Pour ce qui est des APIs Cocoa et Cocoa Touch oui, ce sont bien les mêmes.

@Brionne : je ne comprends pas ce que tu appelles complémentaire et pourquoi, de facto ça en fait un langage inintéressant.

Je serais tenter de penser tout le contraire. Le fait d'avoir un autre langage pour attaquer la même API me semble non seulement dans l'ère du temps (cf. les frameworks polyglotes émergents) mais en plus intéressant. Objective-C est un langage pénible à prendre en main en plus d'être vraiment très verbeux, ce qui a poussé beaucoup de développeurs mobiles à se tourner vers les frameworks cités dans la BD (PhoneGap, Adobe Air, …) pour plus de productivité et maintenabilité.

Apple y a sans doute vu (et à juste titre je pense) un désaveu de la part des développeurs sur le langage et non l'API. Conserver l'API en l'état me semble être le bon choix.

Ensuite, en quoi trouves-tu Swift plus éloigné de Java ou C# qu'Objective-C ? Et quand bien même je serais d'accord avec toi sur ce point, quel en serait l'intérêt ?

Je vois un Swift un langage similaire aux langages de script assez récents que je connais, qui sont justement apparus pour pallier les manques des langages plus anciens et établis.

Et ces derniers finissent par suivre le mouvement : l'apparition de closures en Java 8 (lambda expressions) en est selon moi une preuve.

On retrouve dans Swift beaucoup d'éléments astucieux ou pratiques d'autres langages de programmation et surtout de script. L'inférence de type est sans doute ce qui me vient le plus rapidement à l'esprit. Etant donné que c'est un langage compilé, j'aurais préféré l'approche Groovy, à savoir : je déclare le type d'une variable si je veux, sinon j'utilise un mot-clef (def en Groovy, let en Swift) pour signaler que cette variable (ou le type de retour d'une fonction) peut varier. Je trouve cela personnellement plus rapide et élégant que de devoir écrire 4 fois la même fonction ou lui faire retourner Object.

Swift utilise les génériques (d'ailleurs très fortement inspirée de ceux qu'on trouve en Java 5 d'ailleurs, beaucoup plus que des templates C++) et c'est toujours dans la veine d'écrire du code plus facile à maintenir (code générique plutôt qu'écrire 40 fois le même code) et plus dans la veine des langages ayant émergés ces dernières années.

On notera aussi les variables possiblement nulles (optionals) ce qui est plutôt intéressant : je peux déclarer que cette variable ne DOIT JAMAIS être nulle ou bien qu'elle peut prendre la valeur nil (que ça a un sens quoi).

Enfin, parmi les bricoles que j'ai relevées, l'utilisation de tuples me paraît être une excellente idée aussi. Faire retourner plusieurs valeurs à une méthode dans un langage objet est souvent disgracieux (tableau, ou encapsulation dans un objet qui n'a aucun sens/intérêt fonctionnel). C'est très certainement inspiré de Python, et tant mieux.

Bref, pour répondre à Kje : y'a rien de spécialement innovant dans ce que j'ai lu. C'est un langage de script orienté objet, et d'inspirations diverses (je dirais Python et Ruby parmi ceux que je connais un peu, mais y'a sans doute une forte inspiration fonctionnelle mais que je ne saurais attribuer). Je pense qu'en dehors des développeurs iOS et OS X il n'a aucun intérêt (pour les pédagogues ou les curieux donc), un peu dans la même veine que ce que Groovy est à Java : aucun intérêt 'scolaire' en tant que langage (contrairement à Erlang, Caml, Haskell ou autres) mais un gros intérêt en termes de productivité, en reprenant des idées de langages "modernes" (pardonnez-moi l'expression).

Donc les curieux passeront leur chemin, tant pis c'est un peu dommage. Les développeurs Mac (iOS, OS X) disposeront d'une alternative "made in scripting" à un langage somme toute assez vieillissant.

+1 -0

Objective-C est un langage pénible à prendre en main en plus d'être vraiment très verbeux

Javier

L'Objective-c n'est pas vraiment un language pénible et le syntaxe est facile a apprendre (Pour moi), mais surtout cocoa qui difficile à manipuler car comprendre qu'on n'est pas le maitre de certain class, c'est pas vraiment évident au début. Je m'explique, parfois avec certaine class on lui dira que dois-je faire ? Avec le framworks Qt on dira fais ça!

@Brionne : je ne comprends pas ce que tu appelles complémentaire et pourquoi, de facto ça en fait un langage inintéressant.

Javier

Actuellement Swift occupe un rôle complémentaire, tu ne peux faire du Swift sans de l'Objective-C et Apple souhaite mettre en place la réciproque… Personnellement je le vois comme un désavantage, car c'est deux langages à maîtriser qui en plus sont différents. Il me semble que Swift est partit de zéro avec un objectif de simplification, donc une nouvelle syntaxe, alors forcement il s'éloigne des langages à tronc commun Java, C#, Objective-C.

Je ne comprends définitivement pas pourquoi tu dis ça :

tu ne peux faire du Swift sans de l'Objective-C

J'ai lu une seule bonne raison qui pousse à toujours utiliser Objective-C (pour le moment) : c'est d'appeler une lib en C++ (impossible visiblement depuis Swift). Le reste des arguments n'ont rien à voir avec Swift (style : "faudra toujours corriger des bugs dans des libs donc connaître l'Objective-C", "la communauté parle en Objective-C").

Donc il y a quelque chose qui m'échappe dans tes arguments.

Mais ça ne veut pas dire "tu ne peux pas faire de Swift sans Objective-C".

Qu'est-ce-que tu appelles le "tronc commun" entre Objective-C, Java et C# ?

+0 -0

Qu'est-ce-que tu appelles le "tronc commun" entre Objective-C, Java et C# ?

Javier

Par tronc commun j'entends même origine, le C, et même orientation (syntaxe).

Mais ça ne veut pas dire "tu ne peux pas faire de Swift sans Objective-C".

Javier

Voir source.

@Cirdo: j'irais pas jusqu'à dire que Swift est un dérivé de l'Objective-C. Apple a déclaré être partit de zéro, pour apparemment faire mieux que les autres.

J'ai lu ce lien, et pour moi ça ne veut surtout pas dire "on ne peut pas faire de Swift sans Objective-C" mais "il est préférable de connaître Objective-C pour développer une app sous OS X ou iOS" et l'argument principalement soulevé c'est pour corriger des problèmes dans les libs que tu utilises…

Désolé, mais c'est un très très mauvais argument. Peu importe par qui il est formulé.

Enfin bref, je laisse tomber le débat ici si c'est pour me bouffer des arguments d'autorité du style "lui il a dit ça, j'ai pas lu mais j'te donne le lien".

Et pour la syntaxe honnêtement je préfère ne pas commenter.

+1 -1
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte