IBM exporte le terrain de jeu de Swift dans le navigateur
En proposant à tous les développeurs OS X et iOS un tout nouveau langage de programmation, le Swift, Apple a aussi imaginé le « Playground ». Ce terrain de jeu intégré à Xcode permet de découvrir le langage sans créer de programme : on tape quelques lignes, on exécute le code et on obtient immédiatement un résultat. Un excellent moyen d’apprendre le Swift, mais aussi la programmation en général et cette interface est d’ores et déjà utilisée dans certains cours.
Puisque Swift est désormais open-source, on peut l’utiliser en-dehors de Xcode, et même du Mac. La preuve, IBM a recréé le Playground imaginé par Apple, mais dans un navigateur web. L’entreprise a utilisé pour cela le compilateur pour Linux fourni par Apple et on peut utiliser ce service comme la fonction de Xcode : on saisit du code sur la gauche, on a le résultat sur la droite. Cette version est toutefois encore plus simple, puisque la seule chose qui est nécessaire, c’est un appareil connecté à internet…
Dans un article de blog qui présente la fonction, IBM ajoute que ce n’est que le début. L’entreprise exploite Swift bien au-delà de ce terrain de jeu, sans préciser pour quoi faire à ce stade.
rhaaa un accent dans un nom de variaaaable
Tu peux même mettre des emojis si tu veux !
Chouette ! Sans accents, j'ai parfois du mal à trouver un nom directement lisible et compréhensible pour mes variables en français.
@Schwarzer Stern :
Tu les écris à l'identique mais sans l'accent...
Simple principe de programmation ! Tout comme la majuscule lorsqu'ils sont en deux mots.
Ex: annee, anneeNaissance
lol merci je n'y avais pas pensé :P le problème vient des mots qui n'ont pas la même signification avec ou sans accents, du genre (exemples imaginaires) : une fonction "trouve" ou une variable "trouvé" ;)
@Schwarzer Stern :
Jamais eu ce problème... Je pense que tu as une mauvaise convention de nommage (sans vouloir t'être désagréable !)
Oh non c'est plus que possible, je reste amateur
@mac-a-dames :
Plus besoin de convention de nommage si l'on utilise le langage naturel.
Ça s'appelle le CamelCase:
https://fr.wikipedia.org/wiki/CamelCase
Beaucoup de langages le permettent.
Certains te permettent même de créer des raccourcis, genre
nouveau = nouvelle = new, Chaîne = String
Comme ça tu peux faire
var chaîne = nouvelle Chaîne()
au lieu de
var chaîne = new String()
Si c'est ça qui peut te permettre de mieux programmer, faut pas s'en priver
@françois bayrou :
Oai ! ^^
Y 'a même des langages qui permettent de programmer en langage mathématique … wysiwyg … à partir des équations et des schémas avec reconnaissance des concepts
@Schwarzer Stern :
D'accord avec toi. Les accents me permettent de lire plus facilement le code en le rapprochant du langage naturel.
Cela me permet de me rapprocher des algorithmes que j'écris en français.
@Schwarzer Stern :
Cela permet d'exprimer en français les actions passées. Exemple :
laPhraseEstCoupée
laPhraseEstCoupee
Le premier est immédiatement interprété alors que le second nécessité une "traduction" mentale.
Quitte à écrire des vars en français, autant mettre les accents.
Mais tu auras toujours besoin de cette traduction mentale.
Pire encore, tu devras sans arrêt switcher entre traduction et non traduction au sein d'un même fichier :
En effet, tu peux appeler ta view "vue", mais ca sera toujours une "View" et elle aura toujours une méthode "viewDidLoad", et ton algo aura toujours des "if", des "switch", des "while", des "for" etc. puisque les frameworks et les mots réservés sont, et seront toujours en anglais !
Je trouve personnellement plus facile de lire un code quand tout est dans la même langue.
@ françois bayrou
Du moment qu'on n'utilise pas toto...
C'est plutôt « Playground » que « Sandbox »
EDIT: Je ne sais pas pourquoi IBM l'a appelé Sandbox, car cela prête à confusion.
@ Seccotine : ah oui, je me disais aussi que ça ne collait pas ! j'ai corrigé, merci.
J'imagine qu'ils n'ont pas réutilisé Playground pour ne pas avoir de problème avec Apple ?
Playground en lui même n'a rien de bien exceptionnel, donc c'est pas bien compliqué de faire la même chose sans utiliser directement Playground.
C'est un REPL relativement classique, comme on en trouve pour quasiment tous les langages. Le seul point qui n'est pas très commun, c'est le fait de pouvoir modifier à posteriori une ligne (les REPL fonctionnent souvent ligne par ligne, sans possibilité de modifier les lignes précédentes), mais ce système temps totalement interactif existait déjà pour d'autres langages (par exemple, la Worksheet de Scala, qui existe depuis 2012).
Et là IBM ne s'est pas particulièrement foulé, il n'y a même pas cette réévaluation temps réel à chaque modification de ligne, ça évalue tout le script en une seule fois et sur demande. Il suffit donc d'avoir derrière un quelconque interpréteur Swift, de lui passer le script et de récupérer sa sortie.
C'est bel et bien une sandbox : un environnement d'exécution propre et verrouillé, tournant au sein d'un système hôte auquel on n'a pas accès depuis la sandbox.
Playground n'est pour sa part pas une sandbox, mais peut être exécuté en environnement sandboxé (ce n'était pas le cas au début, mais je crois que ça l'est maintenant).
Je ne sais pas s'ils ont eu accès aux sources avant ou s'ils se préparaient à la sortie, mais c'est plutôt impressionnant d'avoir fait ça dès le premier jour.
EDIT : à ce propos, quelqu'un connaîtrait un outil pour écrire du code JS et l'exécuter directement, un peu comme le fait jsfiddle, mais qu'on puisse héberger soi-même ?
@ErGo_404 : t'as essayé la console de dev de ton navigateur web ?
Du coup ça serait marrant de Swifter dans un Playgound sur iOS …
Le développement sur iPad pro va t il devenir une réalité?
Pas besoin d'attendre la version open-source de Swift. Des compilateurs Swift online, y en a depuis le début de l'année. Comme http://swiftstub.com qui fait la même chose que celui d'IBM.
Comment vous voyez Swift par rapport à Python? Python est très implanté dans la communauté machine learning par exemple... Est-ce que Swift peut le remplacer?
Moi je me pose surtout la question de l'intérêt d'un nouveau langage en 2015...
@Lemmings :
"Moi je me pose surtout la question de l'intérêt d'un nouveau langage en 2015..."
Ouaih tu peux toujours faire du Cobol, turbo pascal , et autres :-)
Pour Moi l'avenir de l'informatique passe aussi par de nouveaux langages évolués et sans toutes les contraintes accumulés durant tant d'années . À part pour les jeux , et encore, nuls besoins d'un langage proche proche de la machine.
Mais je sais bien que les informaticiens purs et durs voudront toujours garder la main sur ce qu'ils ont appris durant tant d'années avec sueur, toutes ces règles , pour ne pas tout jeter à la poubelle :-)
Sur le principe je suis bien d'accord, je ne fais pas d'assembleur au quotidien loin de là, mais je comprend mal l'intérêt du Swift comparé aux autres langages modernes qui existent déjà.
En gros, qu'es-ce qu'on fera de mieux en swift qu'en java, C++, Delphi, Go, JS ou autres ?
"Pour Moi l'avenir de l'informatique passe aussi par de nouveaux langages évolués et sans toutes les contraintes accumulés durant tant d'années"
Comme par exemple la compilation ? ;) ( python, js+nodejs, ruby )
@Lemmings :
/facepalm
Il y a réellement des gens qui codent en français ? Vous êtes fous, les gars !
Il faut vraiment être taré en effet...