11 prédictions pour l'avenir de la programmation

La seule chose qui vole plus vite que le temps est le progrès de la technologie. Une fois après le déjeuner, un ami concepteur de puces s'est rapidement excusé en expliquant habilement que la loi de Moore signifiait qu'il devait rendre son jeu de puces 0,67% plus rapide chaque semaine, même pendant ses vacances. S'il ne le faisait pas, les jetons ne doubleraient pas de vitesse tous les deux ans.

Maintenant que 2017 est là, il est temps de faire le point sur les changements technologiques à venir, ne serait-ce que pour vous aider à savoir où placer vos paris dans le renforcement des compétences en programmation pour l'avenir.

Du mal de tête de sécurité croissant de l'Internet des objets à l'apprentissage automatique partout, l'avenir de la programmation devient de plus en plus difficile à prévoir.

Le cloud vaincra la loi de Moore

Il y a des opposants qui prétendent que les sociétés de puces ont heurté un mur. Ils ne doublent plus la vitesse de la puce tous les deux ans comme ils le faisaient pendant les années 80 et 90. Peut-être - mais cela n'a plus d'importance car les frontières entre les puces sont moins définies que jamais.

Dans le passé, la vitesse du processeur dans la boîte sur votre bureau importait car, eh bien, vous ne pouviez aller aussi vite que le hamster en silicone à l'intérieur pouvait faire tourner sa roue. L'achat d'un hamster plus gros et plus rapide toutes les quelques années a également doublé votre productivité.

Mais maintenant, le processeur de votre bureau affiche à peine les informations à l'écran. La plupart du travail est effectué dans le cloud, où le nombre de hamsters qui travaillent sur votre travail n'est pas clair. Lorsque vous effectuez une recherche sur Google, leur énorme cloud pourrait consacrer 10, 20, voire 1000 hamsters à trouver la bonne réponse pour vous.

Le défi pour les programmeurs est de trouver des moyens intelligents de déployer élastiquement juste assez de puissance de calcul pour le problème de chaque utilisateur afin que la solution vienne assez rapidement et que l'utilisateur ne s'ennuie pas et ne s'égare pas sur le site d'un concurrent. Il y a beaucoup de puissance disponible. Les sociétés cloud vous permettront de gérer le béguin d'utilisateurs, mais vous devez trouver des algorithmes qui fonctionnent facilement en parallèle, puis faire en sorte que les serveurs fonctionnent de manière synchronisée.

La sécurité de l'IoT ne fera que devenir plus effrayante

Le botnet Mirai qui s'est déroulé à l'automne dernier a été un réveil pour les programmeurs qui créent la prochaine génération de l'Internet des objets. Ces petits appareils intelligents peuvent être infectés comme n'importe quel autre ordinateur, et ils peuvent utiliser leur connexion Internet pour faire des ravages et laisser échapper les chiens de guerre. Et comme tout le monde le sait, les chiens peuvent prétendre être n'importe qui sur Internet.

Le problème est que la chaîne d'approvisionnement actuelle des gadgets ne dispose d'aucun mécanisme pour réparer les logiciels. Le cycle de vie d'un gadget commence généralement par un long trajet d'une usine de fabrication à un entrepôt et enfin à l'utilisateur. Il n'est pas habituel de se dérouler jusqu'à 10 mois entre l'assemblage et la première utilisation. Les gadgets sont expédiés à l'autre bout du monde au cours de ces longs mois. Ils sont assis dans des boîtes en attente dans des conteneurs d'expédition. Ensuite, ils s'assoient sur des palettes dans les magasins à grande surface ou dans les entrepôts. Au moment où ils sont déballés, tout aurait pu leur arriver.

Le défi consiste à suivre tout cela. Il est déjà assez difficile de mettre à jour les piles des détecteurs de fumée à chaque fois que les horloges changent. Mais maintenant, nous devrons nous interroger sur notre four grille-pain, notre sèche-linge et à peu près tout dans la maison. Le logiciel est-il à jour? Tous les correctifs de sécurité ont-ils été appliqués? Le nombre d'appareils rend plus difficile toute action intelligente concernant la surveillance du réseau domestique. Il y a plus de 30 appareils avec des adresses IP connectés à mon routeur sans fil, et je ne connais l'identité que de 24 d'entre eux. Si je voulais maintenir un pare-feu intelligent, je deviendrais fou d'ouvrir les bons ports pour les bonnes choses intelligentes.

Donner à ces appareils la possibilité d'exécuter du code arbitraire est une bénédiction et une malédiction. Si les programmeurs veulent effectuer des tâches intelligentes et laisser aux utilisateurs une flexibilité maximale, les plates-formes doivent être ouvertes. C'est ainsi que s'épanouit la révolution maker et la créativité open source. Mais cela donne également aux auteurs de virus plus d'opportunités que jamais. Tout ce qu'ils ont à faire est de trouver une marque de widget qui n'a pas mis à jour un pilote particulier - voilà, ils ont trouvé des millions de widgets prêts à héberger des bots.

La vidéo dominera le Web de nouvelles manières

Lorsque le comité des normes HTML a commencé à intégrer des balises vidéo dans le HTML lui-même, il n'avait probablement pas de grands projets de refonte du divertissement. Ils voulaient probablement seulement résoudre les problèmes liés aux plugins. Mais les balises vidéo de base répondent aux commandes JavaScript, ce qui les rend essentiellement programmables.

C'est un grand changement. Dans le passé, la plupart des vidéos ont été consommées de manière très passive. Vous vous asseyez sur le canapé, appuyez sur le bouton de lecture et voyez ce que l'éditeur de la vidéo a décidé que vous devriez voir. Tout le monde qui regarde cette vidéo de chat voit les chats dans la même séquence décidée par le créateur de la vidéo de chat. Bien sûr, quelques vidéos en avance rapide mais les vidéos aboutissent à leur conclusion avec autant de régularité que les trains suisses.

Le contrôle de la vidéo par JavaScript est limité, mais les concepteurs Web les plus astucieux trouvent des moyens intelligents d'intégrer la vidéo au reste de la page Web dans une toile transparente. Cela ouvre la possibilité à l'utilisateur de contrôler la façon dont le récit se déroule et d'interagir avec la vidéo. Personne ne peut être sûr de ce que les écrivains, les artistes et les éditeurs imagineront, mais ils auront besoin de talent en programmation pour y arriver.

La plupart des sites Web les plus astucieux ont déjà des vidéos en cours d'exécution dans des endroits intelligents. Bientôt, ils voudront tous bouger. Il ne suffira pas de mettre une IMGbalise avec un fichier JPEG. Vous aurez besoin de saisir une vidéo et de résoudre les problèmes de normes qui ont fragmenté le monde des navigateurs.

Les consoles continueront de remplacer les PC

Il est difficile d'être en colère contre les consoles de jeux. Les jeux sont excellents et les graphismes sont incroyables. Ils ont construit de superbes cartes vidéo et des plates-formes logicielles relativement stables pour que nous puissions nous détendre dans le salon et rêver de tirer sur des méchants ou de lancer un ballon de football.

Les consoles de salon ne sont que le début. Les fabricants d'articles pour le reste de la maison suivent le même chemin. Ils auraient pu choisir un écosystème open source, mais les fabricants construisent leurs propres plates-formes fermées.

Cela fragmente le marché et rend plus difficile pour les programmeurs de tout garder en ordre. Ce qui fonctionne sur un interrupteur d'éclairage ne fonctionnera pas sur un autre. Le sèche-cheveux peut parler le même protocole que le grille-pain, mais ce ne sera probablement pas le cas. C'est plus de travail pour les programmeurs pour se mettre à niveau et moins d'occasions de réutiliser notre travail.

Les données resteront roi

Après l'élection présidentielle américaine de 2016, les experts en mots se sont moqués des experts en données, suggérant que toute leur analyse statistique était un exercice de sottise. Les prédictions étaient terriblement fausses et les gens du Big Data avaient l'air mauvais.

Comment sont-ils arrivés à cette conclusion? En comparant un ensemble de nombres (les prédictions) avec un autre ensemble de nombres (les résultats des élections). Ils avaient encore besoin des données.

Les données sont la façon dont nous voyons sur Internet. La lumière nous apporte des informations sur le monde réel, mais les chiffres nous renseignent sur tout ce qui est en ligne. Certaines personnes peuvent faire de mauvaises prédictions basées sur des nombres imparfaits, mais cela ne signifie pas que nous devrions arrêter de rassembler et d'interpréter les nombres.

La collecte, l'assemblage, la conservation et l'analyse des données continueront d'être l'une des tâches les plus importantes de l'entreprise. Les décideurs ont besoin des chiffres et les programmeurs continueront à être chargés de fournir des données d'une manière plus facile à comprendre. Cela ne veut pas dire que les réponses seront parfaites. Le contexte et l'intuition continueront à jouer un rôle, mais la nécessité de se débattre avec les données ne disparaîtra pas simplement parce que quelques personnes avaient prédit que Donald Trump ne serait pas élu. Cela signifie plus de travail pour les programmeurs, car il n'y a pas de fin en vue pour notre besoin de créer des logiciels plus gros, plus rapides et plus gourmands en données.

L'apprentissage automatique deviendra la nouvelle fonctionnalité standard

Lorsque les enfants à l'université suivent un cours intitulé «Structures de données», ils apprennent à quoi ressemblait la vie lorsque leurs grands-parents écrivaient du code et ne pouvaient pas dépendre de l'existence d'une couche appelée «la base de données». Les vrais programmeurs devaient stocker, trier et joindre des tables pleines de données, sans l'aide d'Oracle, MySQL ou MongoDB.

Les algorithmes d'apprentissage automatique sont à quelques années de ce saut. À l'heure actuelle, les programmeurs et les scientifiques des données doivent écrire une grande partie de leur propre code pour effectuer des analyses complexes. Bientôt, des langages comme R et certains des outils de business intelligence les plus intelligents cesseront d'être spéciaux et commenceront à être une fonctionnalité régulière dans la plupart des piles de logiciels. Ils passeront de quatre ou cinq diapositives spéciales dans le deck de vente PowerPoint à un petit rectangle dans le dessin d'architecture qui est pris pour acquis.

Cela ne se produira pas du jour au lendemain et on ne sait pas exactement quelle forme il prendra, mais il est clair que de plus en plus de plans commerciaux dépendent d'algorithmes d'apprentissage automatique pour trouver les meilleures solutions.

La conception de l'interface utilisateur deviendra plus compliquée à mesure que les PC continueront de s'estomper

Chaque jour, il semble que vous ayez une raison de moins d'utiliser un PC. Entre la montée en puissance des smartphones, des consoles de salon et de la tablette, les seules personnes qui semblent encore s'accrocher aux PC sont les employés de bureau et les étudiants qui doivent rendre une mission.

Cela peut être un défi pour les programmeurs. Auparavant, il était facile de supposer que les utilisateurs de logiciels ou de sites Web auraient un clavier et une souris. Maintenant, de nombreux utilisateurs n'en ont pas non plus. Les utilisateurs de smartphones écrasent leurs doigts dans un écran en verre qui a à peine de la place pour les 26 lettres. Les utilisateurs de la console appuient sur les touches fléchées d'une télécommande.

La conception de sites Web devient de plus en plus délicate car un événement tactile est légèrement différent d'un événement de clic. Les utilisateurs ont des niveaux de précision différents et les écrans varient considérablement en taille. Ce n'est pas facile de tout garder droit, et cela ne fera qu'empirer dans les années à venir.

La fin de l'ouverture

Le passage du PC n'est pas seulement la mort lente d'un facteur de forme particulier. C'est la mort d'un marché particulièrement ouvert et accueillant. La mort du PC sera une fermeture des possibilités.

Lors de la première expédition des PC, un programmeur pouvait compiler du code, le copier sur des disques, mettre ces disques dans des sacs ziplock, et le monde pourrait l'acheter. Il n'y avait pas d'intermédiaire, pas de gardien, pas de force centrale sévère nous demandant de dire: «Mère, puis-je?

Les consoles sont étroitement verrouillées. Personne n'entre sur ce marché sans un investissement en capital. Les app stores sont un peu plus ouverts, mais ce sont toujours des jardins clos qui limitent ce que nous pouvons faire. Bien sûr, ils sont toujours ouverts aux programmeurs qui sautent à travers les bons cerceaux, mais quiconque fait un faux mouvement peut être jeté. (D'une manière ou d'une autre, ils retardent toujours nos applications pendant que le logiciel malveillant passe. Allez comprendre.)

Cette distinction est importante pour l'open source. Il ne s'agit pas uniquement de vendre des disquettes dans des sacs. Nous perdons la capacité de partager du code parce que nous perdons la capacité de compiler et d'exécuter du code. La fin du PC est une grande partie de la fin de l'ouverture. Pour l'instant, la plupart des personnes qui lisent ceci ont probablement un bureau décent qui peut compiler et exécuter du code, mais cela change lentement.

Moins de personnes ont la possibilité d'écrire du code et de le partager. Pour tous les discours sur la nécessité d'enseigner la programmation à la prochaine génération, il y a moins de vecteurs pratiques pour le code ouvert à distribuer.

Le transport autonome est là pour rester

Ce ne sont pas seulement les voitures. Certains veulent fabriquer des avions autonomes qui ne sont pas encombrés par le besoin de routes. D'autres veulent créer des skateboards autonomes pour des voyages très légers. S'il bouge, un hacker rêve de lui dire où aller.

Les programmeurs ne contrôlent pas ce que les gens voient à l'écran. Ils contrôleront où les gens vont et comment ils interagissent avec le monde. Et les gens ne sont qu'une partie du jeu. Toutes nos affaires se déplaceront également de manière autonome.

Si vous voulez dîner d'un célèbre chef du centre-ville, une planche à roulettes autonome avec une chambre chauffée peut l'apporter chez vous. Si vous voulez que votre pelouse soit tondue, une tondeuse à gazon autonome remplacera l'enfant du quartier.

Et les programmeurs peuvent utiliser toutes les idées géniales qu'ils ont eues lors de la première révolution Internet. Si vous pensiez que les publicités pop-up étaient mauvaises sur Internet, attendez que les programmeurs soient payés pour détourner vos patins à roulettes autonomes devant l'évent de cuisine d'un nouveau restaurant. Vous avez encore faim?

La loi trouvera de nouvelles limites

L'encre était à peine sèche sur la Déclaration des droits lorsque les débats sur ce que signifie une recherche de nos journaux pour être raisonnable ont commencé. Aujourd'hui, plus de 200 ans plus tard, nous discutons encore des détails.

Les changements technologiques ouvrent de nouvelles voies au droit. Il y a quelques années, la Cour suprême a décidé que la technologie de suivi des véhicules nécessitait un mandat. Mais ce n'est que lorsque la police a mis le tracker dans la voiture. Personne ne sait vraiment quelles règles s'appliquent lorsque quelqu'un cite les données de suivi de Waze, de Google Maps ou de l'une des centaines d'autres applications qui mettent en cache nos emplacements.

Qu'en est-il d'influencer le fonctionnement des machines? C'est une chose de télécharger des données, mais il est aussi terriblement tentant de changer les données. Est-il juste que la police (ou des acteurs privés) falsifie des documents, des en-têtes ou des morceaux? Est-il important que les cibles soient de vrais terroristes ou simplement des personnes qui se sont stationnées trop longtemps dans une place sans parking sans alimenter le compteur?