Chris Lattner garde un pied dans le développement de Swift

Nicolas Furno |

Chris Lattner est celui qui a inventé Swift, le nouveau langage de développement d’Apple. En début d’année, il quittait l’entreprise de Cupertino pour aller travailler chez Tesla avant de démissionner à nouveau il y a une semaine. En attendant de savoir ce qui attend ce développeur brillant qui aime manifestement les défis, il était présent au début du mois de juin dans une table-ronde sur Swift en parallèle de la WWDC. À cette occasion, il s’est exprimé sur son départ d’Apple et sur le futur de son langage.

Chris Lattner, troisième en partant de la gauche. Cliquer pour agrandir

Le développeur Ole Begemann a transcrit les passages les plus intéressants de cette apparition en public. Puisqu’il s’agit d’une conférence dédiée aux développeurs, les propos sont très vite techniques et nous n’allons pas évoquer le point de vue de Chris Lattner sur les fonctions dynamiques ou la programmation concurrente. En revanche, point essentiel, il a donné son avis sur le débat entre tabulation et espace.

Le développeur est revenu sur son départ d’Apple, une décision qui a été très difficile à prendre, explique Chris Lattner. Tout en indiquant que c’était la bonne décision pour lui et qu’il n’était plus indispensable dans l’entreprise. Avant même son départ, il ne se chargeait plus vraiment du développement de Swift et son équipe tournait toute seule, et c’est toujours le cas aujourd'hui. Il félicite à nouveau Ted Kremenek qui lui a succédé chez Apple et qui l’avait fait bien avant son départ.

Néanmoins, il ne quitte pas totalement Swift, ce langage qu’il a créé et qu’il aime toujours, assure-t-il. Puisque c’est aussi un langage open-source et que son développement se poursuit en public, il garde un œil sur le projet et participe même quelques fois aux débats. Interrogé sur l’intérêt de la planification des fonctions en public, Chris Lattner reconnaît que ce n’est pas toujours une bonne idée, parce que les retours négatifs peuvent parfois frustrer les développeurs et bloquer les évolutions.

Cela étant, annoncer publiquement les évolutions est le meilleur compromis pour un langage de développement. Il y aura toujours des compromis à faire et il vaut mieux les expliquer en public, justifie Chris Lattner. On sait que le développeur était le principal moteur pour pousser Apple à ouvrir le langage, ce n’est donc pas vraiment une surprise. Au sujet des évolutions de Swift, il salue le changement d’objectif en cours de route pour la quatrième version, celle qui sera finalisée cette année.

Un tout petit bout de notre app iOS, entièrement codée en Swift. Cliquer pour agrandir

Apple voulait à l’origine stabiliser complètement le langage, mais l’entreprise s’est ensuite concentrée sur la stabilité du code source (pour des explications plus complètes, lire : La stabilité, principal enjeu de Swift 4). Un choix logique, face à la quantité de lignes de Swift qui sont écrites chaque jour, la priorité est d’éviter à tous ces développeurs le coût élevé d’une transition. Le passage de Swift 2 à Swift 3 en particulier a été très douloureux et cela devrait aller mieux pour Swift 4, même s’il y aura encore un petit peu de travail.

Chris Lattner a aussi évoqué les origines de Swift, rappelant que c’était un projet personnel, intégré à Apple assez tard et seulement après avoir essayé d’améliorer Objective-C. Dans un premier temps, le développeur cherchait surtout à se changer les idées après avoir écrit un compilateur pour C++ utilisé en interne. Inventer un tout nouveau langage en partant de zéro était une idée plus fun pour lui, et c’est ainsi que tout a commencé.

Les deux objectifs de Swift

Dès le départ, il avait deux ambitions pour Swift : être facile à apprendre, et devenir potentiellement un langage universel. Le premier point explique la création des Playgrounds, ces bacs-à-sable où l’on peut écrire quelques lignes de Swift et voir immédiatement le résultat. Pensée d’abord pour l’iPad, cette fonction a en fait vu le jour côté Mac, mais Swift Playgrounds a permis de concrétiser ce rêve.

Swift Playgrounds permet d’apprendre les bases de Swift sur un iPad, en jouant. Un outil pensé pour les enfants, mais qui peut servir à tout le monde. Cliquer pour agrandir

Lorsque Chris Lattner a commencé à réfléchir à la syntaxe utilisée par Swift, il a également cherché à simplifier au maximum le « Hello World! », ce bout de code qui est utilisé par tous les langages comme point de départ. En Swift, une seule ligne suffit à afficher un message, et elle est extrêmement simple :

print("Hello, world!")

Le deuxième objectif est l’ambition folle de Swift. Dès la présentation du langage, Apple a indiqué qu’il pouvait servir au développement d’apps, mais aussi à l’écriture du noyau d’un système d’exploitation jusqu’aux scripts bricolés par l’utilisateur final. On n’en est pas encore là, mais Chris Lattner maintient cette ambition, précisant que ce sera sûrement dans un futur lointain :

Mon ambition pour Swift a toujours été et est toujours une domination mondiale totale. C’est un objectif modeste. Mais on ne parle pas de Swift 5. C’est un objectif à 10, 15 ou 20 ans.

En attendant, Swift n’a plus besoin de faire ses preuves côté apps, des centaines de milliers de développeurs utilisent déjà le langage et les nouveaux-venus apprennent en général directement à travailler en Swift, sans passer par la case Objective-C. L’autre succès de Swift, c’est du côté des serveurs qu’il faut le chercher.

Apple a rapidement proposé une version compatible Linux de Swift et le succès est au rendez-vous, désormais soutenu par le constructeur. De multiples frameworks existent déjà pour permettre aux développeurs d’apps iOS et macOS de créer des modules nécessaires sur les serveurs en utilisant le même langage que pour leurs apps. Et au-delà de la simplicité, Chris Lattner rappelle que Swift a des arguments à faire valoir en soi, en particulier sa rapidité face à ses concurrents (lire : Sur le serveur, Swift est nettement plus rapide que Node.js).

Vapor, l’un des frameworks qui permettent d’écrire des apps en Swift sur le serveur. Cliquer pour agrandir

Le prochain défi que Chris Lattner aimerait pour Swift ? Remplacer C++, un langage plutôt bas niveau qui date des années 1980 et qui reste largement utilisé pour les fondations des systèmes d’exploitation. Là encore, Swift n’est pas prêt à assumer ce rôle, mais c’est l’un de ses objectifs et son concepteur espère qu’Apple essaiera de l’atteindre.

Il y a encore beaucoup d’informations dans cette transcription de l’intervention de Chris Lattner. Si le sujet vous intéresse, n’hésitez pas à la lire, voire à regarder la conférence en vidéo à cette adresse.

avatar stefhan | 

Toujours intéressant de découvrir l'envers du décor de l'avenir d'un nouveau langage de programmation, même en tant que néophyte. Une impression de vivre une petite révolution. Merci Nicolas pour les explications...

avatar C1rc3@0rc | 

@stefhan

Parler de revolution pour Swift est vraiment très exagéré.
- Le langage n'amene aucun nouveau concept ou paradigme
- il surfe sur la mode très commune de mélanger plusieurs paradigmes
- son integration des divers paradigmes est encore tres chaotique et moins elegante que d'autres langages
- ça ressemble plus a du bricolage pour l'instant qu'a un langage bien pensée et unifié des le depart
- son champs d'applications est aussi large que flou
- il n'a pas (encore) les moyens de ses ambitions.
- il a beaucoup de concurrents
- il reste un langage sequentiel alors que la multiprogrammation est LE besoin actuel
- son approche fonctionnelle est tres batarde et ne permet pas d'en avoir tous les avantages.
- il se pose en face d'Objective-C (existant quasi que sur OS d'Apple) et espere se poser ensuite en face du venerable C++ (bon courage) et de Java (bon courage)

Il faut savoir aussi que la majorité des langages sont opensources. Ceux qui ont le mieux reussi sont des creations d'universitaires soutenu par des institutions.

Le playgroud est interressant, mais ce n'est pas une nouveauté.
En terme educatif il reprend beaucoup de trucs de smalltalk sans en avoir les qualités et la coherence.

Bref, une revolution, non. Une innovation pour Apple, oui, le langage tend a se repandre hors Apple, ce qui va faire que le langage de developpement utilisé pour MacOS et iOS existera vraiment hors Apple.
Apres, Clascal (Object Pascal), Hypercard et Objective-C, voire DyLan etaient bien plus des revolutions que ne l'est Swift.

Sinon, pour apprendre Swift y a deux tres bons cours en plus de la doc d'Apple:
- https://www.mooc-list.com/course/programmation-ios-partie-i-edx
- https://www.udemy.com/ios-10-et-swift-3-le-cours-complet/

avatar malcolmZ07 | 

@C1rc3@0rc

Tu le fais exprès de commenter/répondre au premier commentaire pour être exposé ?

avatar C1rc3@0rc | 

Et que penses tu des commentaire que je fais en milieu ou fin de page, voire sur les pages 2, 3, ... ou carrément mon absence de commentaire dans la majorité des articles?

Essayes de démontrer que ce que j’écris n'a aucun lien avec ce que je commente...

Sinon, de ton coté tu as un avis et des arguments en rapport avec le contenu des commentaires ou même des articles?

avatar IceWizard | 

@malcolmZ07
"@C1rc3@0rc

Tu le fais exprès de commenter/répondre au premier commentaire pour être exposé ? »

Oui c’est une pratique courante chez lui. Le plus marrant c’est qu’il ne comprend même pas la moitié de ce qu’il écris. Comme d’habitude il submerge un topic de ses "avis éclairés » par vague successives, en éditant sans cesse et en améliorant son argumentaire, pour prouver son expertise. Il doit passer des heures sur des tas de forums à lire des infos sur le sujet du jour pour régurgiter ça ici. C’est pour ça qu’il lui arrive souvent d’employer des termes techniques à contre-sens.

Un jour je l’ai contredit au milieu d’un topic. Il a été tellement vexé qu’il s’est mis à répondre à chaque post depuis le début, en traitant du sujet dont j’avais parlé, de manière à montrer qu’il le connaissait parfaitement bien (style culture wikipédia). Toutes les heures je regardais le forum pour voir l’évolution de son délire verbale, sans y répondre. Les posts se modifiaient sans cesse, jusqu’à ce que ma remarque initiale soit noyée dans l’océan de son « expertise ». Il a bien dus passer 4 HEURES à trafiquer les posts. A ce stade c’est de la névrose ..

D'ailleurs je remarque que depuis la réponse de fte, l’orc a multiplié les réponses un peu partout dans le topic. Il y a comme un schéma récurrent ..

avatar C1rc3@0rc | 

@IceWizard

Ah, tu as un sentiment de percussion profond et generalisé, tu vois des shemas récurrents, des complots contre toi, des manipulations de la realité ?

Hormis ton discours conspirationniste et mégalomane, et contrairement a certains qui commentent sans lire les articles ni les commentaires qu'ils parasitent, lorsque je commente un article ou repond a un commentaire, je prend la peine de lire les reponses et continuer ce qui est un debat, tu sais un echange de point de vue argumentés. En relisant ce que j'ai ecrit je peux voir des fautes, que je corrige. C'est 99% de ce qui me fait editer une reponse. Le 1% restant c'est lorsque un intervenant, lors d'une reponse constructive me fait remarquer une erreur ou que je me rend compte qu'une formulation n'est pas claire.

Mais bon, tu es un etre magnifique et persecuté, cela meme et surtout par ceux qui ignorent tout de toi, a part les fadaises que tu peux ecrire assis sur tes dogmes, et tu ne tolères nulle contradiction. Tu parles de nevroses, mais je suis par certain que ça en soit chez toi.

avatar IceWizard | 

@LeTroll
T’as déjà oublié ce moment d’anthologie ? C’est triste de perdre la mémoire. Rappelons un peu le contexte, c’est pour ton bien.. Dans un de tes grands délires tu nous a sortis au milieu d’un topic que le terme « ordinateur individuel » avait été inventé lors de la sortie du Mac et de l’Atari ST. Quand je t’ai fait remarquer que ce terme étais plus ancien, t’as pété les plombs.

Et hop .. les premiers posts du topic ont vus fleurir des pseudos-réponses de ta part, dérivant sur l’histoire de l’informatique et démontrant que jamais l’Apple II n’avait été qualifié d’ordinateur individuel, que non non, le TRS 80 n’avait jamais été appelé ordinateur individuel, que non non le premier PC n’étais pas un Personnel Computer. Le clou du spectacle c’est quand j’ai posté à propos des ordinateurs de poche programmable en Basic (Sharp PC 1500 et Pc 1211) et que tu a expliqué que ce n’étais pas des ordinateurs, et que de toutes manière les profs, les étudiants et les vendeurs les appelaient « machines de turing ». Tous les lecteurs de ce forum ayant possédés l’une de ces machines ont dus bien rigoler en lisant tes délires.

C’est quand même fort de vouloir re-écrire l’histoire de l’informatique, alors que n’importe qui peut vérifier en 1 mn sur internet l’origine d’un terme aussi commun que « ordinateur individuel ».

En fait le véritable clou du spectacle c’est quand tu as été incapable d’expliquer pourquoi la première revue informatique française, s’appelait l’Ordinateur Individuel prés de 10 ans avant l’apparition de ce terme selon toi.. Joli déni ..

Quand a tes éditions de posts, le plus rigolo c’est quand tu as parlé du philosophe Edgar Morin pour justifier tes divagations sur la terminologie informatique. Très très fort.. Tu as eu raison de l’effacer à toute vitesse ! Manifestement ces ouvrages sur la complexité des interactions dans la nature, la biologie et les processus d’informations te passent largement au dessus de la tête.

avatar C1rc3@0rc | 

Ah oui, donc en fait tu as vraiment un probleme de confusion entre la realité et de que tu imagines.

Donc il n'est pas étonnant que tu t'agaces de mes propos ou de tous ceux qui sont un peu argumentés et te contredisent.

Donc arrete de lire ce que j'ecris, je t'assure que je n'ai aucun interet pour toi, j'ignore totalement qui tu es et que tu ne presentes pas le moindre interet pour moi.

avatar IceWizard | 

Quelques lignes pour comprendre l’orc, son fonctionnement, ses délires, sa mythomanie, ses illusions de grandeur :

https://fr.wikipedia.org/wiki/Trouble_de_la_personnalité_narcissique

Quelques passages :

"Le trouble de la personnalité narcissique est un trouble de la personnalité1 dans lequel un individu se manifeste par le besoin excessif d'être admiré, et par un manque d'empathie. Cette condition affecte 1 % de la population2.

Les symptômes apparaissent au début de l'âge adulte. Le sujet narcissique recherche une gratification en lui-même, et s'attache peu au jugement des autres, est très focalisé sur ses problèmes d'adéquation personnelle, de puissance et de prestige2. Le trouble de la personnalité narcissique est étroitement lié à l'égocentrisme.
« 

" Le trouble de la personnalité narcissique est relégué dans une catégorie intitulée « Autres troubles de la personnalité spécifiques », qui inclut également les troubles excentrique, « haltlose », immature, passif-agressif, et psychoneurotique. »

"Le patient présente au moins cinq des symptômes suivants :

le sujet a un sens grandiose de sa propre importance (par exemple, surestime ses réalisations et ses capacités, s'attend à être reconnu comme supérieur sans avoir accompli quelque chose en rapport) ;
est absorbé par des fantasmes de succès illimité, de pouvoir, de splendeur, de beauté, de perfection, ou d'amour idéal ;
pense être « spécial » et unique et ne pouvoir être admis ou compris que par des institutions ou des gens spéciaux et de haut niveau ;
montre un besoin excessif d'être admiré ;
pense que tout lui est dû : s'attend sans raison à bénéficier d'un traitement particulièrement favorable et à ce que ses désirs soient automatiquement satisfaits ;
exploite l'autre dans les relations interpersonnelles : utilise autrui pour parvenir à ses propres fins (mensonges, chantages, violence verbale, etc.) ;
manque d'empathie : n'est pas disposé à reconnaître ou à partager les sentiments et les besoins d'autrui ;
envie souvent les autres, ou croit que les autres l'envient ;
fait preuve d'attitudes et de comportements arrogants et hautains. »

avatar fte | 

@C1rc3@0rc

- Parler de revolution pour Swift est vraiment très exagéré.

Parler de révolution est très exagéré pour n’importe quel langage vieux de moins de 20 ans.

- Le langage n'amene aucun nouveau concept ou paradigme

Ce n’était pas l’objectif.
Maiiiis, programmation orientée protocoles, la mise en avant est assez originale. Pas nécessairement pertinente, mais originale.

- il surfe sur la mode très commune de mélanger plusieurs paradigmes

Ce n’est pas une mode. Ou alors une mode vieille d’un demi-siècle. Au moins.

- son integration des divers paradigmes est encore tres chaotique et moins elegante que d'autres langages

Et moins chaotique et plus élégante que d’autres autres langages.

- ça ressemble plus a du bricolage pour l'instant qu'a un langage bien pensée et unifié des le depart

Les langages “unifiés” dira-t-on se comptent sur les doigts d’une main, peut-être deux, et ils ne le restent que s’ils ne quittent pas le domaine académique. Les ingénieurs ont de vrais problèmes à résoudre.

- son champs d'applications est aussi large que flou

C’est une qualité indispensable aux objectifs de ce langage.

- il n'a pas (encore) les moyens de ses ambitions.

Hum. Discutable. Je dirais qu’il a les moyens mais pas la maturité.

- il a beaucoup de concurrents

C’est le cas de tous les langages.

- il reste un langage sequentiel alors que la multiprogrammation est LE besoin actuel

La programmation concurrente ne se résoud pas par le langage à moins de décider d’un modèle unique, donc inapproprié dans la majorité des cas sauf les cas gérés idéalement par ce modèle. La solution est dans les (au pluriel) librairies.

- son approche fonctionnelle est tres batarde et ne permet pas d'en avoir tous les avantages.

Defini « tous » les avantages.

D’ailleurs, ce n’est pas un langage fonctionnel, et il ne prétend pas l’être. Nulle définition de Monad dans la librairie standard, pour commencer.

- il se pose en face d'Objective-C (existant quasi que sur OS d'Apple) et espere se poser ensuite en face du venerable C++ (bon courage) et de Java (bon courage)

Oui pour le premier, les deux autres sortent de tes phantasmes uniquement.

- Il faut savoir aussi que la majorité des langages sont opensources. Ceux qui ont le mieux reussi sont des creations d'universitaires soutenu par des institutions.

Faux. La majorité des langages sont des DSL closed source.

Les langages académiques ont eu du succès en tant que source d’inspiration, mais la majorité des langages industriels ne sont pas issus de l’académie.

- Le playgroud est interressant, mais ce n'est pas une nouveauté.

Et alors ? Ce n’est bien que si c’est nouveau ? Mal barré en développement, la plupart des concepts ont au moins 50 ans.

- En terme educatif il reprend beaucoup de trucs de smalltalk sans en avoir les qualités et la coherence.

Smalltalk est l’exemple typique de langage mythique qui n’a jamais réussi à percer.

- Bref, une revolution, non. Une innovation pour Apple, oui, le langage tend a se repandre hors Apple, ce qui va faire que le langage de developpement utilisé pour MacOS et iOS existera vraiment hors Apple.

Peut-être. Ou pas. C’est sans grand intérêt de toute manière.

- Apres, Clascal (Object Pascal), Hypercard et Objective-C, voire DyLan etaient bien plus des revolutions que ne l'est Swift.

HyperCard était révolutionnaire je suppose. Il n’a pas survécu aux outrages du temps.

Le reste, pas du tout. Objective-C est la seule réussite industrielle pratique de Smalltalk, mais il n’est(ait) certes pas révolutionnaire. Merci de laisser VisualAge où il est.

avatar C1rc3@0rc | 

@fte

«Parler de révolution est très exagéré pour n’importe quel langage vieux de moins de 20 ans.»

Je ne comprends pas le sens de cette phrase.
Tu essayes de dire qu'il faut attendre 20 ans pour déterminer si un langage apporte un ou plusieurs éléments novateurs?

«Les langages “unifiés” dira-t-on se comptent sur les doigts d’une main, peut-être deux, et ils ne le restent que s’ils ne quittent pas le domaine académique. Les ingénieurs ont de vrais problèmes à résoudre.»

Ah pour toi ADA est un langage academique que n'utilisent pas les ingenieurs?

«- il se pose en face d'Objective-C (existant quasi que sur OS d'Apple) et espere se poser ensuite en face du venerable C++ (bon courage) et de Java (bon courage)

Oui pour le premier, les deux autres sortent de tes phantasmes uniquement.»

Ben en terme de fantasmes commences donc par lire l'article et les artiles liés. Swift, langage universel permettant de faire de l'applicatif, du script, du serveur et de la programmation systeme, c'est pas moi qui l'invente, hein.
Java c'est le principal langage serveur et C++ le principal langage systeme. Conclusion?

«La programmation concurrente ne se résoud pas par le langage à moins de décider d’un modèle unique, donc inapproprié dans la majorité des cas sauf les cas gérés idéalement par ce modèle. La solution est dans les (au pluriel) librairies.»

Ben non, une librairie est d'abord limitée a un systeme et a un modele specifique. Ça n'a rien d'universel et c'est souvent proprietaire. Prends l'exemple de la domination de CUDA.

un langage est une abstraction qui est operante quelque soit le systeme.
Ensuite, parlons des coroutines, de la programmation vectorielle, des agents, des objets asynchrones, des callback (qu'on bricole a partir de sous ensemble fonctionnel minimaliste dans les langages sequentiels avec tout ce que ça implique comme erreurs)...
Sais tu qu'il y a un autre langage qui se nomme Swift aussi et qui lui est parallele?
Pourquoi la concurrence est un des fondements de ADA?
Pourquoi les langages de simulations d'evenements sont paralleles?
Pourquoi il y a moins d'erreurs a additionner des matrices natives qu'a passer par des librairies specifiques pour declarer des types en utilisant souvent un preprocesseur?
Pourquoi la plupart des langages en HPC sont paralleles?

«Smalltalk est l’exemple typique de langage mythique qui n’a jamais réussi à percer.»
Ah oui quand meme...
Et tu vas certainement dire la meme chose de Simula, Lisp, Object Pascal, Prolog, ADA...?

«HyperCard était révolutionnaire je suppose. Il n’a pas survécu aux outrages du temps.»
Il a ete mis a mort par Apple, parce que!
Le temps n'y est pour rien, le fait qu'il soit proprietaire par contre a signe sa mort.

«Les langages académiques ont eu du succès en tant que source d’inspiration, mais la majorité des langages industriels ne sont pas issus de l’académie.»
Ah bon?
[John McCarthy, Niklaus Wirth, Alain Colmerauer, Gérard Huet, Guy Cousineau,...] etait un ingenieur bossant dans une boite privée?

Apres, oui, FORTRAN, ADA, Eiffel, et C sont des langages d'ingenieurs produit dans un cadre non academique (encore que FORTRAN tres intriqué au monde academique ). Quant a C++ bien qu'il ait ete developpé au Bell Labs, Stroustrup a suivi un process universitaire typique et une standarisation tres tot. D'ailleurs il a commencé le developpement lors de sa these de doctorat.

«Objective-C est la seule réussite industrielle pratique de Smalltalk»
Heuuuu la, Objective-C integre des modeles de smalltalk mais il n'est pas smalltalk. Smalltalk c'est un paradigme, un langage et un environnement (objets, fenetre, bureau,agents...)
On peut dire que Java, Ruby heritent autant qu'Objective-C de Smalltalk, de meme que MacOS...

«
- Le playgroud est interressant, mais ce n'est pas une nouveauté.

Et alors ? Ce n’est bien que si c’est nouveau ? Mal barré en développement, la plupart des concepts ont au moins 50 ans.»

Mon propos est de dire que Swift n'est pas revolutionnaire.
Apple fait un gros marketing sur Swift, c'est entendu.
Mais Swift ne va pas s'imposer parce qu'il est novateur, amene une unification de modeles, facilite l'apprentissage, etc.
Swift est un langage qui est dans l'air du temps, se base sur la mode actuel de beaucoup d'autres candidats tout en etant moins abouti, moins unifié, moins cohérent.
Il n'a rien de révolutionnaire, c'est mon propos.

avatar fte | 

@C1rc3@0rc

- Il n'a rien de révolutionnaire, c'est mon propos.

Alors, si c’est ton propos, pourquoi l’enrobes-tu d’autant de banalités et de mots compliqués utilisés incorrectement ? Il suffit de trois phrases pour le dire et l’expliquer.

Ce que je ne comprends pas, c’est pourquoi tu le dis, et avec tant de mots. Il n’est pas révolutionnaire. Certes. Et alors ? Il n’y en a pas tous les jours des révolutions dans mon métier. Déjà s’il y en avait toutes les décennies je serais content, mais même pas.

avatar C1rc3@0rc | 

@fte

Tu considères mon argumentaire comme empli de mots compliqués? Lesquels:
- paradigme
- concept
- langage séquentiel
- multiprogrammation
- approche fonctionnelle

En quoi ces mots sont ils employés incorrectement?

«Ce que je ne comprends pas, c’est pourquoi tu le dis, et avec tant de mots. Il n’est pas révolutionnaire. Certes. Et alors ?»

Je répondais, de manière argumentée, au commentaire de @stefhan, qui, il le dit, pour un neophyte donne le sentiment de vivre une révolution... alors qu'il ne s'agit que d'une construction purement marketing.
Et sur ce point nous sommes d'accord, tu en conviens, l'impression révolutionnaire que donne Swift est tout a fait fausse et artificielle.

Mon argumentaire tente de simplement démonter les éléments du plan marketing qui donne cette impression de "révolution".

Pourquoi voudrais tu que je réponde de manière laconique et qui serait alors probablement péremptoire et n'aurait donc aucun interet.
Je n'impose pas un point de vue, un jugement arbitraire ou une certitude, je donne a @stefhan un argumentaire et des informations qui lui offre un eclairage autre que la propagande marketing afin qu'il se fasse une opinion. Il peut ne pas etre d'accord avec ce que j'ecris, il peut commenter, questionner, enrichir le debat,... l'important c'est qu'il y ait debat.
Toi meme, tu exposes tes points de vue dans la reponse que tu fais a mon commentaire (fait a @stefhan). Je ne suis pas d'accord avec plusieurs de tes affirmations, mais c'est ta contribution au debat, ça donne a ceux qui nous lisent des informations et cela contribu a permettre de developper une opinion qui n'est plus une programmation du marketing, mais une vraie opinion.

En quoi cela te gene?
Tu preferes les interventions des trolls et fanatiques qui ne lisent ni l'article ni les commentaires et qui viennent juste la pour exprimer leur ego, leur humeur, leur agressivité, leur besoin d'en découdre, voire leur délire ?

avatar fte | 

@C1rc3@0rc

"En quoi cela te gene?"

C’est anti-pédagogique, pour commencer. Tu parles de tout et de n’importe quoi et l’argument que ce n’est pas un langage révolutionnaire est perdu, noyé dans un charabia décousu.

C’est constellé d’imprécisions voire d’erreurs, ensuite. Ça contribue encore plus à noyer l’argument, qui était déjà très imbibé.

J’ai tendance à lire jusqu’au bout, d’une part parce que c’est dans ma nature et d’autre part parce que je lis vite. Mais j’ai vraiment l’impression d’être baladé d’un sujet à un autre et que l’auteur n’en a rien à cirer du temps de ses lecteurs.

Voilà ce qui me dérange.

avatar C1rc3@0rc | 

@fte

Anti-pedagogique?
Mais je me prends pas pour un pédagogue ni un redresseur de tort ou tout autre forme d'enseignant ici. Je donne pas de cours, ni de leçon, je deroule un argumentaire en reponse a certains points dans un article ou face a un commentaire.

«Tu parles de tout et de n’importe quoi et l’argument que ce n’est pas un langage révolutionnaire est perdu, noyé dans un charabia décousu.»

La premiere phrase de ma reponse au commentaire de stefhan c'est
Parler de revolution pour Swift est vraiment très exagéré.

Il me semble que le sujet est posé de maniere on ne peut plus explicite.
Vient ensuite un argumentaire point a point qui reprend les principaux sujets qui pourraient faire qu'un langage sorte du lot avant meme d'etre revolutionnaire, et que Swift ne realise pas ou les points mis en avant par le marketing et qui ne tiennent pas (argument d'ailleurs que tu ne contestes pas sur le fond).

«Mais j’ai vraiment l’impression d’être baladé d’un sujet à un autre et que l’auteur n’en a rien à cirer du temps de ses lecteurs.»

Ben deja ma reponse initiale ne s'adressait pas a toi. Ensuite, tu prends point a point mes arguments, ce a quoi je réponds également point a point. Donc soit tu sautes sur un train en marche, soit tu donnes la direction, je vois pas ou je te ballade?

avatar fte | 

@C1rc3@0rc

"Ah pour toi ADA est un langage academique que n'utilisent pas les ingenieurs? "

Je ne suis pas certain de comprendre cette question. Je vais y répondre sur la base de ce que je comprends.

Tu sembles donc prétendre, suite à mon commentaire sur les langages académiques, qu’Ada est un langage académique. Premier point, c’est Ada, d’après Ada Lovelace, et non ADA. Deuxième point, Ada est un langage développé par des ingénieurs d’Honeywell pour l’armée américaine. On est très loin d’un langage académique. Troisième point, Ada a traversé plusieurs révisions majeures ayant transformé radicalement le langage, encore par des équipes d’ingénieurs et non d’académiciens.

Tu sembles porter ce langage haut dans ton coeur, mais tu sembles aussi en savoir très peu sur son histoire.

Enfin bref. Je ne vais pas passer mes vacances à analyser chacun de tes commentaires et jouer au correcteur.

avatar C1rc3@0rc | 

@FTE

tu as un probleme avec le contexte, même quand ton intervention est dans ce contexte. Pour comprendre ce que tu cites, il faudrait que tu relises ce que tu as écrit:

«
@fte:
«Les langages “unifiés” dira-t-on se comptent sur les doigts d’une main, peut-être deux, et ils ne le restent que s’ils ne quittent pas le domaine académique. Les ingénieurs ont de vrais problèmes à résoudre.»

C1rc3@0rc:«Ah pour toi ADA est un langage academique que n'utilisent pas les ingenieurs? »

Pourquoi ai-je pris Ada comme contre-argument a ton affirmation (seuls les langages academiques sont unifiés et les rares qui le sont restent unifiés s'ils ne servent qu'a des chercheurs n'ayant pas de vrais problemes a resoudre).

Parce que Ada un langage unifié avant meme sa conception puisqu'il est issu d'un appel d'offre de l'armée US qu'a remporté l'equipe de Jean Ichbia de Bull. Ce langage totalement unifié et formalisé a, malgré cette unification et definition, precedant sa realisation, toujours ete employé pour "resoudre des vrais problemes d'ingenieurs". C'est toujours un des principaux langage utilisé dans l'industrie.

Et cette unification persiste a travers les evolutions du langage jusqu'a sa plus recente, le processus de certification etant obligatoire. De plus les evolutions se sont faites sans remettre en question les fonctionnalités precedantes ni faire doublons ni alterer la coherence.

L'existence meme d'Ada met donc a terre completement ton affirmation.

Je te laisse decouvrir le reste de l'histoire sur Wikipedia, mais voila tout de meme un extrait de cet article qui illustre bien le fond de mon propos sur Swift et la problematique de la programmation avec la plethore de langages inutile et contre productif:

«In the 1970s, the US Department of Defense (DoD) was concerned by the number of different programming languages being used for its embedded computer system projects, many of which were obsolete or hardware-dependent, and none of which supported safe modular programming. In 1975, a working group, the High Order Language Working Group (HOLWG), was formed with the intent to reduce this number by finding or creating a programming language generally suitable for the department's and the UK Ministry of Defence requirements. After many iterations beginning with an original Straw man proposal the eventual programming language was named Ada. The total number of high-level programming languages in use for such projects fell from over 450 in 1983 to 37 by 1996.»<\i>

avatar fte | 

@C1rc3@0rc

"tu as un probleme"

Il ne t’es pas venu à l’esprit que lorsque le message est mal compris, c’est peut-être pas parce que le récipiendaire a un problème, mais parce que le message ou l’émetteur a un problème ?

Je parlais d’anti-pédagogie, à quoi tu répondais ne pas chercher à être pédagogue ou enseignant, esquivant adroitement la critique que je faisais.

Je ne suis pas critique pour le plaisir de l’être. Ça ne m’amuse pas tant que ça. Je me dis juste que peut-être tu pourrais entendre ce que je dis et rendre tes contributions plus digestes. Je comprends bien certains de tes arguments, je le disais il y a quelques semaines d’ailleurs et je me suis fait tomber dessus par certains réguliers d’ici en conséquence (épisode amusant). Mais la forme, et parfois le fond, irrite.

La pédagogie ne se limite pas aux enseignants. Elle est utile dès lors qu’un émetteur souhaite transmettre une information, sous une forme ou une autre, à un ou plusieurs destinataires. Il est nécessaire de travailler avec un langage commun aux deux parties, qu’il soit de mots ou de forme ou conventions, pour que le message soit porteur de l’information désirée et non interprété complètement de travers.

Je me trompe peut-être, et si c’est le cas soit c’est peine perdue, soit j’ai échoué assez ironiquement à communiquer mon message, mais je pense que tu as compris ma critique et choisi de l’esquiver volontairement. Peut-être parce que tu t’en fiches, que tu n’as aucune intention de changer ta manière, peut-être parce que tu te demandes pour qui je me prends (je me le demande moi-même de temps en temps), parce que c’est un jeu que tu aimes jouer ici, peut-être parce que tu détestes et n’acceptes pas la critique, je n’en sais rien et ça m’est égal.

Je suppose que ceci clos ce sujet.

avatar jeanCloud | 

du coup quand si on me dit que je programme comme un pied je dois prendre cela comme un compliment !? ?

avatar Nico S | 

"L’autre succès de Swift, c’est du côté des serveurs qu’il faut le chercher."

Oui... ben, ça fait un bout de temps que je le cherche et à part des petits blogs ou des todo apps sorties de tutoriels, je n'ai jamais rien vu de conséquent en Swift.

Java/C#/PHP/Ruby... etc ont encore de beaux jours devant eux. Vu qu'il parle de domination mondiale, si je devais prendre les paris, je mettrais mes jetons sur C# : plus moderne, un tooling bien plus mature et une pénétration gigantesque du marché.

avatar Nicolas Furno | 

@Nico S

La plupart des exemples ne seront pas publics. Ce sont des modules conçus pour accompagner une app iOS, par exemple pour intégrer une base de données.

Neanmoins, c’est vrai qu’il n’y a pas encore vraiment de gros projets en Swift sur le serveur. À mon avis, la stabilisation du code source va énormément aider de ce côté.

avatar Nico S | 

@nicolasf

Oui, pour des services REST pour une app iOS mais on reste dans l'écosystème Apple en quelque sorte. Mais même là, je n'ai pas connaissance d'app conséquente utilisant Vapor ou Kitura comme backend.

La stabilisation de l'ABI permettra probablement qu'il y ait plus de librairies pour Swift sur le serveur mais pour le moment, on est très, très loin derrière Java ou C#.

avatar RedMak | 

@Nico S

Oui t’a raison sur le court terme, moi je parierais sur java :)
Mais le fait que Apple pousse Swift en se sens est une « petite » garantie que ca peut le faire.
Imagine qu’Apple n’ete pas derrière Swift, il aura peut etre un succès mais pas autant qu’il a maintenant c’est sure.

Moi j’ai commencé à developper en C++(QT + Ogre 3D) j’adore ce langage, puis j’ai commencé objC (5 ans maintenant), après vient swift (j’ai commencé avec la v2) que j’aime aussi mais pas autant que objC :)

avatar C1rc3@0rc | 

@RedMak

Je pense pas, IBM est quand meme bien engagé sur Swift.
La question est de savoir sur serveur si Swift va faire petard mouillé comme NodeJS, ou va se developper a moyen terme.

Pour l'instant il y a 2 outils majeurs sur serveur:
- Java
- les framework (Python, Ruby, PHP)

Java fait tout (applications metiers et infrastructures) et les framework sont plus sur de l'application de commerce.

Le probleme c'est que y a une demande d'avoir un langage unique pour programmer le serveur et le client. C'est pas forcement une bonne idee mais c'est une demande importante.

Avec NodeJS il y a une tentative de tout programmer en Javascript. Le choix de ce langage est tres discutable au niveau client et au niveau serveur ses manquements en terme de securité sont criants. Apres entre Javascript et PHP on est dans le pire de toute façon.

Je doute que Java revienne du coté client mais je doute aussi de son remplacement cote serveur vu la masse de gros systemes qui tournent avec.
Swift va plutot se positionner sur l'applicatif en face de PHP, NodeJS et les framework.

Bon apres, il y en a qui developpent sur serveur en Lisp.

avatar pat3 | 

@C1rc3@0rc

"Apres entre Javascript et PHP on est dans le pire de toute façon."

Tu veux dire par là que les développeurs Web ne sont pas des développeurs ? Que Facebook et WordPress, et les CMS en général, c'est de la merde en termes de développement ?

avatar ovea | 

@pat3

Évidemment que php c'est de la merde.
Autant que le C

JavaScript c'est différent et Python est aussi peut fonctionnel comme language que je sais pas quoi …

Ceci étant clairement dit, il y a des passages obligés dans certains domaines avec des languages de merde et c'est comme ça.

avatar C1rc3@0rc | 

«Évidemment que php c'est de la merde.
Autant que le C»

Heu non, PHP est vraiment pire.
Le C est utilisable comme "assembleur portable", on peut l'utiliser comme langage intermediaire et le compilateur permet alors de produire un executable tres optimisé. On peut aussi utiliser C de maniere diaboliquement efficace sur les petits programmes ou on doit optimiser la gestion memoire et la vitesse: C permet des choses qui offrent un controle total sur l'otpimisation. Donc ça un tres bon langage dans ces cas la et si le programmeur maitrise a la fois C et le materiel.
Pour faire de l'applicatif a un niveau d'abstraction normal, c'est une catastrophe.

Mais faut bien voir que C est un des principaux langages de construction d'Unix... Faut imaginer la catastrophe avec un truc aussi abject et bricolé que PHP

PHP n'a rien comme avantage, si ce n'est d'etre repandu et d'etre installé par defaut sur la majorité des serveurs. Sinon oui, c'est immonde, a peu pres similaire au Basic.

avatar harisson | 

@pat3

Chacun défend sa chapelle ;) Après, pour du web côté client, il n'y a pas beaucoup de choix pour le scripting (avoir du Lua pur ou Python aurait été plus sympa pour ma part)...

avatar C1rc3@0rc | 

Il y a une difference a defendre sa chapelle en disant X est meilleur que Y et enumerer les concepts et principes qui font qu'un langage est pertinent.

Je te citerai Jonh Backus:
«Programming languages appear to be in trouble. Each successive language incorporates, with a little cleaning up, all the features of its predecessors plus a few more. [...] Each new language claims new and fashionable features... but the plain fact is that few languages make programming sufficiently cheaper or more reliable to justify the cost of producing and learning to use them.»

C'etait en 1977 lors de son discours a la remise de son prix Turing award (ACM), l'equivalent du nobel.

avatar C1rc3@0rc | 

@pat3
«Tu veux dire par là que les développeurs Web ne sont pas des développeurs»

Non.
Utiliser un mauvais outil n'implique pas qu'on soit incompétent ou mauvais.

Par contre se former avec un mauvais outil, et pire, en adopter les travers parce qu'on a que ça comme référence ça a des conséquences.

Un bon langage repose sur une syntaxe, une grammaire et un modele qui contraint naturellement a produire un programme logique, sans discontinuité, coherent et qui rend terriblement compliqué des erreurs de base.
Javascript et PHP sont a l'exact opposés de ces qualités.

Je dirai aussi qu'en terme de programmation serveur, la logique voudrait que le langage intègre nativement la gestion du parallélisme et de la concurrence en plus de celle de la synchronicité (justement pour tout ce qui est asynchrone).

Facebook est de la merde, oui, mais son langage de programmation n'est qu'une cause mineure dans ce cas.
Wordpress, c'est pas extraordinaire en terme d’ingénierie logicielle, mais y a pire. Faut dire qu'apres des années d’expérimentations et de bidouillages y a des gens compétents qui ont relevé le niveau.
Un très mauvais framework c'est Drupal: quand on voit ce qu'il fait subir au serveur, c'est immonde.

avatar françois bayrou | 

"au niveau serveur ses manquements en terme de securité sont criants"

Tu peux développer stp ?

avatar ovea | 

@Nico S

Miser sur C# est absurde, tant il est lié au dev Microsoft. De plus sans F#, C# est figé dans une approche où les évolutions liées au bibliothèques indispensables rendent la réécriture de l'ensemble, comme l'a toujours fait Microsoft. Mais C# peut rester indispensable dans des secteurs trop pieds et poings liées.

avatar Nico S | 

@ovea

C# se déploie sur Linux sans soucis et se développe aussi bien sur Mac avec Visual Studio for Mac.

avatar C1rc3@0rc | 

@ovea

C# a ete developpé pour ne pas devoir utiliser Java.

avatar blopi4 | 

C'est fini ça, depuis plus d'un an.
Microsoft a libéré .net en open source.
Tu peux desormais faire de l'asp sur toutes les plateformes, sans IIS etc.
Tu deploies tout à base de Docker, etc.
Microsoft est à des années lumière d'Oracle sur sa relation avec l'open source et sa communauté de développeur !

avatar marc_os | 

Merci pour cet article qui résume très bien la situation et comporte moult liens pour qui veut approfondir le sujet. Et cerise sur le gâteau, bravo pour le style parfaitement compréhensible par tous je pense, sans le travers des jargons techniques et anglicismes inutiles. ;-)

avatar Nicolas Furno | 

@marc_os

avatar buzzromain | 

Vous pensez qu'il est plus intéressant d'apprendre directement le Swift ou le C/Objective-C ?

avatar zarghol | 

@buzzromain

Directement le Swift : c'est plus simple à apprendre et à avoir de bonne bases. :)

avatar IceWizard | 

@zarghol
Je corrige ton commentaire

Directement le Swift : c'est plus BEAUCOUP simple à apprendre et à avoir de bonne bases. :)

avatar C1rc3@0rc | 

@buzzromain

Tout depend de ton objectif en fait et d'ou tu debutes:
- total debutant, aucune connaissance en programmation : Python puis Swift
- quelques connaissances dans un bon langage de formation (Python, Ruby, Java, Lisp) => Swift
- t'as deja fait du developpement d'interfaces graphiques => Swift
- tu connais C++ ou Ada, tu veux faire des gros softs (l'interface graphique c'est moins de 10% du temps de production ?) => Objective-C

Swift est relativement abordable pour les bases mais melange beaucoup de concepts et est encore tres fouillis. Si on a de bonnes bases d'algorithmiques, qu'on sait ce qu'on cherche, alors Swift offre plusieurs approches interressantes. Sinon on est tres vite perdu et on fait utilise toujours la meme chose, inadaptée ( le complexe du gars formé au basic...)
Swift n'est pas encore assez stable (euphemisme) pour faire autre chose que du développement ponctuel a court terme et a petite echelle.

Si c'est pour faire des "app" simples, jetables, faites de 90% d'interface graphique, Swift fera l'affaire.

Si tu penses a un projet qui mettra des mois a etre produit, qui devra etre maintenu dans le temps, il n'y a que Objective-C qui repond au besoin (stabilité, outils, optimisation) et pour un bon moment.

Si tu veux développer des logiciels qui "pilotent" du materiel, faut pas passer par du C.

Si tu penses travailler en equipe, sur des projets moyens a gros, faut connaitre C++, C#, Ada...

Si tu dois travailler en sciences il te faut connaître Python, R, Java, C++ et tres probablement CUDA.

Si tu veux faire du dev sur Raspberry Pi, Arduino => Python et C++

Pour la programmation serveur => Java.

Swift a beaucoup de potentiel, mais pour le futur. Il est soutenu par IBM, commence a rentrer sur Linux, mais faudra attendre la version 5 au moins pour qu'il soit stable et que les outils de programmations soient disponibles.

avatar ovea | 

@buzzromain

Pour ce qui est d'apprendre C/C++ ou Swift, le mieux est d'apprendre les deux pour se faire sa propre petite idée de ce qu'est un métalangage, au moins à partir de ce couple de langue … mais c'est bien trop restrictif !

avatar fte | 

@buzzromain

Swift. La question ne se pose même pas. Ce n’est pas pour les raisons données par mes estimés collègues par contre, mais bien parce que Apple mise sur Swift pour le futur de ses plateformes. Qu’il soit plus simple ou non, plus rapide ou non, plus joli ou non, n’a aucune importance. C’est le langage des plateformes Apple.

J’ajoute que je ne pense pas qu’il soit plus simple au premier abord qu’Objective-C. Différent, oui, plus simple, non.

De toute manière le langage est sans importance. Les méthodes le sont.

avatar C1rc3@0rc | 

@fte

«De toute manière le langage est sans importance. Les méthodes le sont.»

La methodologie et la formation sont plus importantes que le langage, je suis d'accord, mais disposer d'un "bon" langage pour se former, c'est important, ça permet de gagner du temps et d’acquérir plus facilement les bons réflexe et d’intégrer la méthodologie.

Un "bon" langage permet aussi de gagner du temps dans la modélisation et l’écriture, tout en permettant d'eviter les erreurs inattention et autres sources de bugs de base. Avoir un langage aussi facile a relire qu'a ecrire est fondementale a mon sens, c'est la base d'un développement durable et continu.

Donc le choix du langage est important.

Apres, tu as un argument effectivement solide en disant qu'Apple veut imposer Swift et qu'apprendre un langage imposé peut sembler raisonnable.
Tu rappelles ainsi qu'un langage est fait avant tout pour programmer une machine.

Mais quel est le poids d'Apple?
Microsoft a la meme approche avec C# sur Windows: 90% des PC
Oracle y va aussi avec Java, ciblé multiplateformes mais qui dans les faits s'impose dans le serveur et l'education.
Le reste du monde industriel informatique et commercial ne jure que par C++
Et l'univers des ingénieurs des secteurs militaire, civil, aéronautique, temps reel, embarqué... marche massivement avec ADA.
Et pour les scientifiques qui travaillent avec des big data, on ne jure que par R et Python.
Et pour les chercheurs en IA, Lisp est incontournable.

Et Google a pondu Go, un langage bourrée de qualité dont celle du parallélisme mais qui comme beaucoup s'inspire fortement de ADA sans en atteindre la polyvalence et la puissance.
Paradoxalement d'ailleurs Google est le principal promoteur de Java, d'Oracle, hors du serveur (Android se programme en Java)ce qui fait qu'un programmeur qui veut faire a la fois du serveur et du client avec le meme langage doit se focaliser sur Android: il peut programmer le serveur et le smartphone en Java!
...

Apple a des reves de grandeurs, ok, iOS donne des arguments pour Apple, Ok. Mais Microsoft a bien essayé d'imposer son interpretation de Javascript et echoué a imposer le Basic. Pourtant a l'epoque MS etait en position monopolistique sur les PC et les navigateurs WEB...

Reste donc a savoir a quel domaine on appartient et quel langage on doit alors apprendre.

avatar fte | 

@C1rc3@0rc

"mais disposer d'un "bon" langage pour se former, c'est important"

Etape 1, éléments de techniques numériques : maths techniques élémentaires, arithmétique, algèbre de Boole, bases, encodages des nombres... Pas besoin de langage.

Etape 2, éléments de programmation séquentielle : variables, valeurs (combien) et types de base (quoi), mutabilité et places (où), mémoire, base de données, service web..., durée de vie (quand) et ownership (qui), statements, instructions élémentaires... BASIC suffit. Ou C. Ou de l’assembleur même.

Des programmeurs expérimentés ayant de sérieuses lacunes sur les places et la mutabilité, ou l’ownership, j’en ai croisé plein.

Etape 3, éléments de programmation impérative structurée : conditions, itérations variées, structures de contrôle, procédures... C suffit. Largement.

Des diplômants mal à l’aise avec des appels multiples à une procédure, j’en ai croisé plusieurs cette année. Stupéfiant, mais réel.

Java, C#, Swift, peuvent convenir. Mais ils ne seront certainement pas une aide pour apprendre les bases élémentaires. Ils peuvent même occulter des éléments nécessaires à apprendre, et être des obstacles.

Un « bon » language pour se former n’est pas bon parce qu’il est bon industriellement. Les qualités recherchées sont différentes...

avatar C1rc3@0rc | 

@fte
point 1,2,3: The Art of Computer Programming de Knuth, Algorithms + Data Structures = Programs de Wirth, Operating Systems: Design and Implementation de Tanenbaum ! C'est bien tu reprends les classiques de l’algorithmique. Donc il n'est pas question de se former a programmer mais d'acquerir les connaissances theoriques indispensables que doit connaitre toutes personnes voulant devenir informaticiens. Tu oublis d'evoquer d'ailleurs les methodologies d'analyse et de conception qui sont aussi essentielles.

Il n'y a pas besoin d'avoir de langage, ni meme de machine dans cette phase. Par contre pour apprendre a programmer, phase suivante (ou qui peut se faire en meme temps) il est necessaire d'ecrire et executer des programmes. Si ça peut etre fait avec n'importe quel langage qui colle a peu pres avec le pseudo code, avoir un langage adapté et obligeant aux bonnes pratiques est necessaire.

«éléments de programmation séquentielle»
Il y a pas que la programmation sequentielle.
Ce que tu en decris d'ailleurs se restreint a la programmation impérative et beaucoup d'algorithmes sont naturels en programmation fonctionnelle, alors que la curryfication et la décurryfication sont deja des éléments compliqués a appréhender.
Et puis il y a la programmation parallèle, sans laquelle il est difficile voire impossible d'aborder des classes entieres de problemes mathematiques. Sans meme parler du fonctionnement des ordinateurs actuels et de leurs OS (ils sont quasi tous multitaches)

«Des diplômants mal à l’aise avec des appels multiples à une procédure»
Je ne comprends pas cette phrase, pourrais tu donner des exemples?

«Des programmeurs expérimentés ayant de sérieuses lacunes sur les places et la mutabilité, ou l’ownership, j’en ai croisé plein.»

Expérimentés ne veut pas dire bien formés...

«Un « bon » language pour se former n’est pas bon parce qu’il est bon industriellement.»

Ce que j'ecris c'est qu'il faut un bon langage pour se former, nullement qu'il est obligatoirement bon industriellement, et je n'affirme pas l'inverse non plus.
Un bon langage pour se former, je le repete c'est un langage qui t'oblige a adopter de bonnes pratiques de programmation, a reflechir avant de coder, a choisir les structures de donnees adaptées, a eviter les erreurs d'ecritures,... et a ecrire un programme, qu'il soit court ou immense, qui pourra etre relu et compris!

Pascal, Scratch, Scheme et Logo sont des exemples de langages adaptés a l'education.
C++ est adapté a l'industrie.
Ada, Eiffel, Haskell, Python, voire Java sont a la fois adaptés aux 2 univers.
Javascript, PHP et Basic sont inadaptés a tout.

Tous ces points ne sont pas contradictoires avec le developpement industriel. Le seul element qu'on peut poser c'est que certains langages conçus pour pour l'apprentissage posent des contraintes nécessaires pour les étudiants qui sont des lourdeurs pour l'efficacité de l’exécution en phase industrielle.

«Java, C#, Swift, peuvent convenir. Mais ils ne seront certainement pas une aide pour apprendre les bases élémentaires. Ils peuvent même occulter des éléments nécessaires à apprendre, et être des obstacles.»
Tu es donc d'accord avec mon propos sur le fond. Apple declare que Swift est un langage adpaté pour produire du script, de l'applicatif, du serveur,... donc de la production commerciale, industrielle,... mais affirme aussi que c'est un langage fait pour l'education (Cook insiste sur le jeune age pour apprendre a programmer!)
Je ne vois aucun ensemble de qualités requises pour declarer que Swift serait adapté a tout cela, ni meme a un domaine en particulier.

avatar Malum | 

Il faut rappeler la tonalité de l'article et des commentaires quand Latner avait quitté Apple :
Apple incapable de garder les bons éléments
Catastrophe pour Swift
Tesla, en voilà une entreprise qui sait attirer les talents
Résultats des courses on a la confirmation de ce que certains d'entre nous pensaient et supposaient : Swift entait en vitesse de croisière et n'avait plus besoin de Latner (ce qu'il confirme en disant que depuis un certain temps déjà il n'était plus du tout indispensable et sans doute s'ennuyait-il) et enfin que sa décision avait été difficile. En réalité il était arrivé au bout de ce qu'il pouvait faire. Au passage il faut ajouter qu'Apple, l'affreuse Apple, lui a permis de réaliser son rêve et a permis l'existence de ce langage qui chaque jour devient plus incontournable.

avatar reborn | 

@Malum

Mais où sont donc les pleureuses ??

avatar IceWizard | 

C’est marrant la pub associée à ce sujet. Un immense rectangle gris avec le texte « WinDev 22 génère du Java ».

avatar oomu | 

print("Hello, world!")

moui..

c'est moins simple que

print "Hello, World!"

ou même

echo "Hello, World!"

mais bon passons, l'image est jolie.

Pages

CONNEXION UTILISATEUR