votre avatar

sr17

est avec nous depuis le 26 décembre 2005 ❤️

4322 commentaires

Le 09/08/2016 à 19h 17







Takoon a écrit :



En effet, le ST était supérieur sur de nombreux points. <img data-src=" />







Surtout l’imagination débordante de ses Fanboys <img data-src=" />



L’Amiga détruisait le ST sur la plupart des plans.


Le 08/08/2016 à 21h 26







Patch a écrit :



Il n’y a aucun pb. Pour faire des vraies sauvegardes, il me manque juste un NAS (j’ai déjà les disques durs). Si tu me le payes, je pourrai les faire correctement <img data-src=" />







On trouve de vieux PC qui peuvent faire de bon NAS dans toutes les bonnes poubelles <img data-src=" />



La poubelle est le meilleur fournisseur du bon geek <img data-src=" />


Le 08/08/2016 à 21h 00







Sans intérêt a écrit :



À en croire sa page d’accueil, Bitfinex se présente comme une bourse. Il serait intéressant de connaître la législation associée. Si je comprends bien, la maison-mère de Bitfinex, iFinex, est une entreprise basée à Hong Kong. Pour l’anecdote, l’adresse du siège social est “Bank of America Tower”. Compte tenu des sommes dérobées, et donc déposées, on peut se demander s’il ne s’agit pas d’une banque, avec la législation qui va avec.



Point intéressant, dans un billet de blog, Bitfinex assure qu’aucun dividende ne sera payé aux actionnaires tant que les clients ne seront pas intégralement remboursés. Je m’étonne que l’entreprise communique sous cette forme : n’est-ce pas l’entreprise qui a perdu 30 % des dépôts des clients, et donc n’est pas en situation de distribuer le moindre dividende ?



Compte tenu du montant du vol, le capital de l’entreprise est probablement négatif. Les clients-créanciers ont peut-être intérêt à se regrouper, voire d’exiger la liquidation de la société. Difficile, en effet, d’imaginer que l’entreprise pourra subsister en l’état. Cela, bien entendu, dans le cadre des lois locales (dont, évidemment, j’ignore tout).



Vue la fréquence des vols dans le domaine des monnaies virtuelles, et de l’inexpérience des entreprises de ce secteur en matière de sécurité (en comparaison des banques classiques à l’histoire parfois plusieurs fois centenaire), il est étonnant que ces jeunes pousses de la finance ne soient pas assurées contre les risques liées à leurs opérations.



Une affaire qu’il sera intéressant de suivre, notamment sous l’angle des suites judiciaires.







Le problème, c’est qu’entre les législations locales, le système judiciaire de certains pays et le fait que les clients sont éparpillés dans le monde entier, intenter une action n’est vraiment pas simple.



Ensuite, le fait est que les bitcoins ont déjà disparu : la liquidation n’apportera probablement rien de mieux.



La réalité, c’est qu’il faut avoir ces problèmes en tête AVANT de confier son argent à des plateformes en ligne.


Le 08/08/2016 à 20h 06







Patch a écrit :



Le problème étant que quand on garde son porte-feuille sur son ordi, il vaut mieux avoir des sauvegardes. Sinon, suffit de perdre les données pour perdre en même temps tous ses btc…







Avant d’utiliser un ordinateur, il faut apprendre un minimum l’informatique. Sinon, c’est une simple question de temps avant d’avoir un gros problème.



On devrait dire aux gens, si vous ne voulez pas faire l’effort de vous former, ne touchez pas aux ordinateurs, vous vous mettriez en danger…



Les sauvegardes, ça fait justement partie de la base des chose qu’il faut apprendre impérativement avant de vouloir travailler avec un ordinateur.



De la même façon, avant de mettre de l’argent dans des bitcoins, il faut également apprendre un minimum comment ça fonctionne et quelles sont les bonnes pratiques, les erreurs à éviter.



Ce que les gens ne comprennent pas, c’est que le bitcoin est un système décentralisé. Il n’y a pas d’organisme étatique ou bancaire qui va être la derrière eux pour récupérer et assurer les conneries issues de leur propre bêtise. En même temps, il faut savoir ce que l’on veut.


Le 08/08/2016 à 19h 06

Il serait bon d’expliquer qu’avec le système des cryptomonaies qui est décentralisé, rien n’oblige les possesseurs de bitcoins à les laisser sur une plateforme en ligne.



A part ceux qui spéculent en permanence, ceux qui laissent leurs actifs sur des plateformes sont des imprudents.



Pourtant, ce n’est pas la première fois que ce genre de problème survient.

Le 08/08/2016 à 21h 26







shadowfox a écrit :



Perso j’aimerais surtout qu’ils délaissent le fast ethernet pour passer au gigabit enfin comme sur le Banana Pi.







Un port gigabit, des port sata pour faire un serveur de fichier ? Ce que vous demandez ne correspond pas au PI, mais à d’autres types de produit qui existent déjà…







Koubiacz a écrit :



Effectivement j’avais tenté le coup avec un raspberry pi B+ pour faire un disque dur réseau (en recyclant un disque de 1to usb 2) chez mes parents (petite utilisation), le Rpi était bien trop lent en vitesse de transfert 8Mo/s voir moins. Du coup j’ai racheté un BananaPi 1 pour faire ce rôle, les transferts tournent aux alentours de 35Mo/s.



Ceci dit, on peut trouver des applications pour lequel le gigabit n’est pas nécessaire (serveur DNS/DHCP dans mon cas)







Pour ma part, je déconseille fortement ce genre de bricolage pour les raisons suivantes :





  • Les alimentations fournies avec les disque disque durs usb sont rarement de qualité et donc pas recommandées pour faire du H24 ou de l’usage sans surveillance.

  • Entre les multiples alim, les câbles USB, bonjour la salade de cables. Pas top pour la sécurité.

  • La liaison USB 2 n’est de toute manière pas très rapide.

  • C’est le genre de bazar qui cours le risque que quelqu’un d’ignorant ou distrait pose un truc dessus.



    Mon conseil :



    Une carte mère mini ITX avec un processeur de base, c’est à peine plus cher qu’un PI.

    Une alimentation PC de qualité fournira une bien meilleure sécurité.

    Un vieux boitier PC permettra un montage bien plus sûr et pratique qu’un “bazar” de fils volants.


Le 07/08/2016 à 17h 58







jeje07bis a écrit :



Désolé pour ma question de gros noob, mais ça sert à quoi concrètement ce bash Linux ???

A faire tourner Linux directement dans Windows sans passer par la virtualisation ??







C’est pour tous les masochistes qui veulent vraiment s’emmerder avec un noyau propriétaire <img data-src=" />







Le 07/08/2016 à 15h 31







sans sucre a écrit :



ouais je confirme car je trouve le flat design d’un ridicule mais vu comment vont les chose ca ne risque pas de se tarir d’ausi tot







C’est clair. IMHO c’est moche et passéiste…



Après, certains diront qu’en matière de look, c’est subjectif et dépendant de la sensibilité des personnes.



Mais justement, ce qu’on peut remettre en cause, c’est le fait qu’une interface puisse changer de look et imposer un nouveau thème qu’on aime moins. L’utilisateur doit t’il être l’esclave des humeurs saisonnières des graphistes ? Qui décide ? A quand un thème mortuaire tout noir “parce que rené l’aura décidé” ?



Bien sûr, certains diront qu’une bonne partie des interfaces de bureau sous Linux sont personnalisables. Mais ce n’est pas toujours aussi simple qu’on le souhaiterait : on peine parfois à retrouver d’ancien thèmes.



Bref, je pense qu’il faut revoir l’esprit dans lequel le design est proposé. Par exemple, ne pas proposer un thème, mais des thèmes que l’on peut choisir à l’installation. Et les thèmes devraient toujours être suivis dans le temps.



Certains diront que c’est un détail. Mais je pense qu’il est important de comprendre que c’est un détail qui change tout. L’utilisateur n’a pas à s’adapter à vos gouts à vous ni à changer ses habitudes parce que le concepteur du haut de son regard infantilisant décidera qu’il doit en être ainsi pour la prochaine saison.



L’utilisateur doit pouvoir choisir facilement ce qui lui plait et surtout garder ce qui lui plait dans le temps de manière aisée. C’est un détail primordial qui doit guider l’esprit dans lequel sont conçu les logiciels.


Le 06/08/2016 à 18h 06







Rozgann a écrit :



Pour le débat AMD / Nvidia, il y a eu pas mal d’évolution ces derniers temps. Avant, Nvidia avait un clair avantage, maintenant c’est beaucoup plus nuancé.



AMD a un nouveau pilote unifié pour les dernières générations de carte: AMDGPU. Le pilote est en deux parties: une partie noyau, libre, et une partie en espace utilisateur, propriétaire, pour laquelle il existe aussi une alternative libre.



Et les perfs sont loin d’être dégueulasses comparés à Windows 10, sur les jeux où les portages ont pas été réalisés avec les pieds évidemment (voir ici).



De l’autre côté, Nvidia a pas changé de stratégie, ils ont toujours leur pilote proprio dont une grande partie du code est partagé avec Windows. Mais ils font pas les choses comme les autres donc tu peux pas utiliser Wayland avec un pilote Nvidia. Pour l’instant c’est pas encore hyper important, mais ça risque d’être problématique d’ici quelques mois.



Donc Nvidia avait l’avantage mais se repose sur ses lauriers

AMD a fait des efforts pour moderniser son code et ça porte ses fruits à l’avenir. En tout cas AMD n’est plus à déconseiller aujourd’hui. Il faut regarder ses besoins et quelle est la carte la plus adaptée qui est la moins chère pour ces besoins.







Tout à fait.



Cela dit, je pense que beaucoup d’utilisateurs ne sont pas contents parce qu’AMDGPU n’a pas assuré d’emblée le support de l’ensemble des GPU de l’architecture GCN.



Parce qu’on trouve encore du GCN 1 dans le commerce.


Le 05/08/2016 à 21h 29







Trollalalala a écrit :



Moi je trouve pas… J’ai une radeon r9 390x et elle n’est pas supportée par les pilotes libres, ca freeze direct avec le bureau gnome sans les pilotes proprios (apparemment peut-être une solution en rajoutant une commande dans le grub j’ai pas eu le courage de recommencer mon install du 16), donc pour moi je rétropédale a la 14.04 et dans 2 ans ca sera debian si ils n’ont toujours rien fait, a moins que je passe chez Nvidia d’ici la…. En tout cas très fâché à cause de ça alors que sur la 15.10 pas de souci (mais plus de support depuis quelques jours).







La situation est un peu singulière sur la 16.04 à cause du remplacement des pilotes Catalysts par les nouveaux drivers AMDGPU.



Donc moi aussi, je suis obligé d’attendre qu’AMD veuille bien supporter ma 280x parce que je ne souhaite pas encore la remplacer.



Tout ce qu’on peut espérer c’est que ce changement soit bon pour le futur.


Le 05/08/2016 à 18h 33

Moi ce que je retiens





Bylon a écrit :



Il n’y a pas vraiment de problème de pilote graphique… si tu sais que tu vas utiliser la machine sur Linux c’est simple :



- pas de besoin de GPU puissant (usage bureautique, visionnage de films,...) : le GPU intel intégré au processeur est suffisant.  Le pilote lire fabriqué par Intel lui-même est très bien.     

- besoin de GPU puissant (usage jeux vidéo) : prendre du nVidia. Les pilotes proprio nVidia sont à niveau à une semaine près avec ceux d'un OS privatif commun.






Les "problèmes" viennent des gens qui ont un GPU AMD. Le pilote proprio est pas top (comme sur l'autre OS), et le pilote libre est loin d'avoir toutes les fonctionnalités pour l'usage "jeux vidéos".      





Donc c’est simple : tu définis tes besoins, tu achètes en conséquence = pas de problème !



Et d’ailleurs c’est un sain conseil à appliquer à tout le reste du matériel aussi… et quel que soit l’OS. ;-)







Je ne peux que plussoyer. L’achat d’une machine, ça ne s’improvise pas. C’est encore plus vrai quand on veut l’utiliser sous Linux.



Pour compléter, je dirais que pour AMD, il y a du pour et du contre.



Le contre :



Leurs pilotes Linux sont en retrait question performances.



Le pour :



Le jour ou la carte arrive à la fin du support du pilote propriétaire, les drivers libres sont pour l’instant bien meilleurs que ceux qui existent pour Nvidia.


Le 06/08/2016 à 18h 40







Mithrill a écrit :



La France a peut-être du retard, mais au moins nous partons moins dans l’inconnue en sachant ce dont capables les autres véhicules expérimentés… cela devrait nous servir en espérant les rattraper ! Le gros avantage en France c’est que c’est un pays ou les routes sont plus imprévisibles qu’aux USA ou tout est assez carré… du coup question optimisations on peux tirer de cette particularité une force ! <img data-src=" />







Il faut arrêter de rêver, vu le niveau de la compétition, un retard ne se rattrape jamais. La course est déjà perdue.



Parce que les concurrents ne vont pas s’arrêter pour nous attendre et que le capitalisme est un système ou ceux qui grandissent les premiers gagnent presque inéluctablement…



Avoir du retard, cela signifie que nos petites startup seront encore en pleine R&D quand les américains vont commencer à inonder massivement le marché, à verrouiller les canaux de distribution et amasser les brevets bloquants.

Par ailleurs, leurs systèmes seront déjà validés avec des milliards de km à leur actif quand les notres seront encore à l’état de prototype.



On se plaint que les startup françaises peinent à trouver des capitaux, mais quel investisseur sain d’esprit irait perdre son argent dans des affaires qui vont partir d’emblée avec des handicaps rédhibitoires ?



La France à voulu rentrer dans le grand marché mondial alors même que nos élus n’ont visiblement pas la moindre idée de ce que le mot “capitalisme” signifie.


Le 05/08/2016 à 21h 57







blamort a écrit :



J’y ait pensé aussi, via un système de code-barre/qr code et un intérieur robotisé avec des espaces de rangement bien définis comme dans certaines pharmacies.

  

Par contre, il ne faudrait pas que la taille des colis soit trop disparatre, sinon il risque d’y avoir beaucoup de places perdues dans le camion, contrairement à une livraison actuelle où les colis sont empilés sans trop de perte d’espace. 

C’est ce qui me fait un peu douter de la viabilité de la solution.







Ces problèmes ne sont pas d’une complexité qui les rendrait insolubles.



D’une part, on peut standardiser la taille des colis.



D’autre part, des logiciels peuvent être créés pour gérer l’empilement des colis et leur tri en fonction de l’ordre de livraison.



Une chose est certaine, dans le futur la technologie va créer beaucoup de chômage. Et les politiques traînent les pieds pour mettre en place de vraies solutions.



Le 04/08/2016 à 15h 47

Pourquoi ces législations arrivent t’elles avec des mois de retard sur les américains ?



Nos élus ne comprennent même pas qu’en matière d’innovation, le temps c’est un facteur clé.



Attentisme = Mort.

Le 04/08/2016 à 17h 09







Zratul a écrit :



+1000



Depuis le début de ma carrière de dev, j’ai toujours été un touche à tout. Il y a des concessions à faire (on perd tous les postes où faut vraiment être un crack capable de justifier pas mal d’expérience) mais qu’est ce que c’est agréable d’être polyvalent. Quand j’ai été CTO pendant 3 ans ça m a tellement servi.



J’ai touché à du dev desktop, de l’IA, du dev mobile, faire des API. A chaque fois mes langages sont différents.



Aujourd’hui je continue de tourner avec plusieurs langages : Java pour le dev Android, Python pour l’IA et le scripting, Ruby pour mes sites web/API perso, C#/.NET au boulot et le Javascript pour tout ce qui est SPA.



Quand dans ma boîte on utilisait majoritairement PHP, mes devs juniors avaient souvent fait que du PHP, je les ai encouragé à tester d’autres choses sur des side projects/prototypes.

Tester des langages et des frameworks élargit considérablement notre vision et le recul même sur nos langages favoris.



Ca fait un peu bizarre de dire ça mais personnellement je n’ai jamais pu apprécier PHP en tant que langage alors que c’était ce qu’on utilisait (pour des raisons majoritairement de pool de devs) mais il fait le taff, on a construit des jolies choses. Mais ça m’a permis de réaliser à quel point Python ou Ruby sont tellement plus élégants.

A contrario, mes devs qui adoraient le PHP, un d’entre eux a découvert le Python et même si il se sent toujours plus à l’aise en PHP et qu’il aime tous les bons frameworks qui ont été dev avec, il a pris conscience qu’en tant que langage PHP avait des tas de trucs mal foutus qu’il considérait jusque lors comme “normal”.

Et quand PHP évolue et qu’il voit des nouveautés qui justement existaient en Python, il a nettement plus conscience des apports.







Pour ma part, je respecte les avis différents, mais j’ai du mal à comprendre l’intérêt de perdre son temps avec 512 langages médiocres et lents, avec 256 syntaxes différentes. C’est un retour vers le passé…



Paradoxalement, l’une des raisons qui aboutit à cette multiplication nuisible de langages médiocres tient au manque de liberté de choix qu’on a laissé s’installer dans certains contextes. Par exemple, Javascript n’aurait jamais eu le moindre succès s’il n’avait pas été imposé à des millions de programmeurs comme unique langage dans les navigateurs.



L’autre raison qui a conduit à généraliser des langages aussi médiocres que PHP tient au manque de regard critique des programmeurs sur leur outil. Ce fameux relativisme “Faut respecter tous les langages et ne jamais rien critiquer” qui conduit à ne jamais éliminer ce qui est médiocre au point que cela finit par prendre le pas sur ce qui est bon. A force de prendre le premier truc qu’on leur tends, les programmeurs récoltent la merde qu’ils ont laissé fleurir.



D’autres langages tels que python s’imposent parce qu’ils plaisent aux profs qui ont la flemme d’expliquer le placement des “;” dans une syntaxe “type c”. Mais ce qui plait aux profs n’est pas ce qui convient à de vrais programmeurs professionnels qui écrivent de vrais logiciels. Bref, encore une perte de temps pour de mauvaises raisons.


Le 02/08/2016 à 21h 35







saladiste a écrit :



Rien ne t’oblige à faire du Swift 3. <img data-src=" />

Encore mieux, tu peux maintenir une branche expérimentale en Swift 3 pendant que tu fais l’essentiel de ton développement avec la version 2.



Il est incroyable que les entreprises françaises n’intègrent toujours pas la formation continue.

Trop occupés à parler de compétitivité. <img data-src=" />







Pour la simple raison que ça serait beaucoup moins rentable.



Pourquoi dépenseraient t’ils de l’argent quand il suffit de débarquer un gars dépassé pour en prendre un nouveau fraîchement formé ?



Et tant que les jeunes informaticiens seront aussi naïfs et accommodants, pourquoi veux tu que ça change ?


Le 02/08/2016 à 21h 11







KP2 a écrit :



Mec, sors de ta SSII… tu m’as foutu le bourdon pour la journée avec ton commentaire…







Un spécialiste en management vous dira que le réalisme accroît les chances de réussite. <img data-src=" />



Nous sommes dans un monde ou les cyniques réussissent tandis que les rêveurs béats sont le profil type de l’exploité/consommable/jetable.





Y’a pas que les grosses SSII qui emploient en France. Pour avoir travaillé essentiellement chez des clients finaux, les mecs en postes sont justement des seniors. Et ca se passe très bien pour eux.

Y’en a beaucoup aussi qui deviennent freelances et qui peuvent justement appuyer sur cette experience pour se vendre (c’est mon cas). Et ça se passe très bien aussi pour peu qu’on essaye pas de se vendre au rabais en essayant de concurrencer les SSII justement…





Malheureusement, comme l’expliquent les syndicats, la vraie réalité est bien différente.



https://munci.org/Seniors-dans-l-informatique-les-premiers-discrimines-sur-le-ma…



Il est normal que votre vision soit biaisée par le fait que dans votre travail vous ne rencontrez logiquement pas ceux qui sont au chômage ou qui ont changé de métier.



Quand aux indépendants, c’est plutôt un marché de foire d’empoigne avec une “uberisation” galopante et la concurrence de plus en plus sévère des pays à bas coûts. Il suffit de quelques clics pour trouver de l’offshore…





Je crois qu’en fait, t’as rien compris à ce que je raconte depuis le début ou tu fais semblant de pas comprendre pour nous balancer ton pseudo réalisme de mec aigri par son boulot qu’il n’aime plus…





Si je n’aimais pas mon boulot, je ne ferais pas partie de la minorité d’informaticiens qui ont choisi de rester codeur.



Ce que j’aime moins en revanche, c’est la progression de cette espèce de mentalité d’esclave résigné partout dans le métier.



De fait, les informaticiens acceptent sans broncher des conditions(mobilité, détachement) qu’on ne voit pas dans d’autres métiers et des conditions de salaires qui ne sont pas en rapport avec le niveau d’expertise et les efforts constants de formation continue que l’exercice de ce métier demande.



Non seulement ce métier demande des études, mais également une remise à niveau constante, bien souvent sur le temps libre des personnes. Et comme le souligne le Munci, c’est l’une des profession les plus mal payée à études égales.



Alors oui, tout ces jeunes rêveurs passionnés à la mentalité d’exploités qui acceptent de faire n’importe quoi a n’importe quelles conditions sont en train de tuer ce qui fut un beau métier.





Je dis pas qu’il faut connaitre et maitriser 20 (et pas 50) langages en même temps. Je dis que tout au long d’une carriere (soit une 40 aine d’années), il me parait normal pour un dev d’avoir travaillé et maitrisé successivement une 20aine de langages au moins. Pour peu qu’il se tienne un peu à la page (sans pour autant sauter sur la moindre nouveauté à la con qui sort sur github).





20 langages sur 40 ans, ça ferait 2 ans par langage. Ca fait quand même beaucoup pour espérer atteindre la moindre maitrise…



Après, ça dépends de ce qu’on appelle maîtriser un langage et de quel langage.



En tant qu’informaticien, on peut être amené à toucher à beaucoup de choses de manière ponctuelle. Mais ce n’est pas cela maîtriser.





Et tu vas obliger Apple à supporter des langages de dev dont il ne veut pas ? Ca n’a aucun sens.





Un fabricant d’os n’a pas à décider ce que les gens font avec. C’est quand même dommage de devoir expliquer cette évidence.



Même s’il peut recommander un langage, un fabricant d’Os doit absolument favoriser et supporter le développement d’autres langages tiers.





Si tu veux pas coder pour Apple avec les langages qu’il te propose, le fait pas. Et voilà.





Il faut réfléchir un peu aux implications…



Aujourd’hui, des fabricants vendent des millions de terminaux au grand public.



Les programmeurs sont bien obligés de produire des logiciels pour les plateformes que les gens possèdent.



De fait, ils se voient imposer des langages de programmation par ceux qui produisent des machines.





Tu te la joues “je suis un vieux de la vieille” mais t’as visiblement pas connu l’époque IBM… Ni même l’époque de la micro informatique qui a suivi avec l’essor de Commodore, Atari, Sinclair, Oric, etc qui avaient chacun leur propre architecture CPU, leur propre langage (et un seul) et leur propre environnement de développement (et un seul).





C’est juste du grand n’importe quoi. Renseignez vous un peu avant de dire des sottises.



Au contraire, sur les 8 bits de l’époque, on trouvait une pléthore de langages de programmation. Depuis le Basic qui était souvent fourni en standard, le logo, le forth, le pascal, le C, le Lisp, l’assembleur et bien d’autres que j’ai oublié.



Et je ne parle pas seulement de langages fournis par des éditeurs tiers, certains fabricants d’ordinateur que tu as cité distribuaient bel et bien plusieurs langages de programmation sous leur propre marque <img data-src=" />





Même sous Windows, pour faire certains types de développements, tu es obligé de passer par les libs MS voire par les langages MS. Alors ou est la liberté en vrai ?





Désolé, mais sous Windows, on peut quand même écrire des applications dans presque tous les langages existants.



Cela dit, pour moi, ce sont les Os libres qui offrent le plus de liberté et de souplesse pour utiliser ce qu’on veut.





Comme je le disais, les enfants et la famille, ce ne sont que des délais, pas des blocages. Et le nombre d’informaticiens s’accroissant, le nombre de mecs avec des enfants va nécessairement augmenter fortement et les même les SSII sont obligées de faire avec et changer leur manière de voir les choses. L’industrie “vieillit” naturellement…





Sauf que le marché ne fonctionne pas comme cela.



Les SS2I se foutent royalement du nombre de vieux sur le marché tant qu’il y aura tous les ans des wagons de jeunes naïfs qui arrivent sur le marché de l’emploi et qui couvrent très bien leurs besoins. Le lobbying intensif des syndicats patronaux a fait ce qu’il fallait pour convaincre les pouvoirs publics qu’il fallait intensifier la formation, ce n’est pas un hasard.



Tout ce qui découlera du fait d’avoir plus de vieux codeurs sur le marché, c’est de boucher encore plus leur avenir en accentuant la pression sur les salaires et en diminuant encore les chances individuelles sur les maigres débouchés.



Dit autrement, ça sera encore pire demain. Hélas…





Quand à la “perte de passion, diminution de la capacité d’apprentissage, diminution de la motivation”, j’ai envie de dire que c’est ton problème personnel. C’est pas lié à l’âge… Franchement, change de boulot, tu dois être déprimant, pas étonnant que tu te sentes en danger.





Sincèrement, la vous manquez vraiment de réalisme.



La diminution des capacités d’apprentissage avec l’age, c’est scientifiquement démontré.



La lassitude qui découle d’années de travail, tous les vieux travailleurs vous le confirmeront.



Personne n’y échappe même si certains pensent naïvement le pouvoir.



Et quand bien même vous auriez trouvé une baguette magique et une fontaine de jouvence que vous ne pourrez rien contre les critères des recruteurs…





Ben, y’en a 1 ou 2 dans ce cas ici visiblement… mais y’a d’autres voies possibles…





Oui, les voies de sortie existent pour les seniors. Le problème, c’est juste que les places sont très limitées et qu’il n’y en aura pas pour tout le monde. Tout le monde ne pourra pas devenir “le chef”.



C’est bien de vous rassurer en voyant les quelques codeurs qui sont montés, mais c’est encore mieux de calculer froidement vos chances d’arriver à leur place demain <img data-src=" />


Le 01/08/2016 à 23h 31







KP2 a écrit :



Hum… j’ai pas dit qu’il fallait tout savoir sur tout mais se mettre à jour régulièrement (genre tous les 2 ou 3 ans), c’est le lot de tous les gens qui ont un métier un temps soit peu technique et qualifié…



20 ou meme 30 langages maitrisés sur une carrière, c’est pas grand chose…



C’est quoi ce discours de vieux con moisi ?

Sérieusement, même si on apprend moins vite (et pas à cause du cerveau, probablement plutot à cause de la lassitude), l’expérience compense largement. Comme disait un autre, on a pas besoin de tout découvrir à chaque nouveau langage puisqu’on maitrise les concepts et l’algo. Et on sait bien mieux chercher les infos manquantes…



Je crois que tu t’es planté de metier si tu bosses dans l’informatique. C’est pas nouveau et ce n’est pas prêt de s’arreter…

Non, c’est faux.

Déjà, il n’y a aucune raison de tout apprendre. Même un jeune aujourd’hui ne maitrise pas à la fois le C++, des langages web (php, js, css, etc) un langage pour une plateforme mobile, un langage pour les developpements pro (.net, java). Un jeune connait 2 ou 3 langages qu’il a vu a l’ecole et apprend le(s) langage(s) qui ser(ven)t au type de developpement qu’il doit effectuer lors de ses 1eres missions. Ensuite, il apprend ce qu’il lui servira en fonction de ses gouts au fur et a mesure.

Y’a aucune raison qu’un dev en fin de carriere fonctionne differemment… Le seul problème est que les devs en fin de carriere, y’en a pas des masses aujourd’hui donc le recul sur le sujet est faible.



Vive l’optimisme…

C’est sur qu’aujourd’hui, il ne fait pas très bon d’etre un “vieux” dev au bord de la retraite. Mais pour en avoir vu qq’uns, c’est en partie parce qu’ils ont été mal formés durant leur carriere voire pas formés du tout. Pas facile d’evoluer correctement dans ces conditions surtout quand on est une sorte d’ovni dans une boite…



Par contre, les generations suivantes sont bien mieux formées, plus “passionnées”, mieux utilisées surtout. De toute façon, il sera inévitable que dans les 20 ou 30 années qui viennent, le nombre de “vieux” devs va augmenter en fleche. Aussi vite que le nombre de devs sur le marché a augmenté ses 20 dernieres années.



Celle de se confire et s’enterrer dans une vieille techno que plus personne ne veut n’est pas la bonne, c’est certain.

Y’a qu’a voir le sort des flasheurs aujourd’hui. Y’en a encore qui n’ont pas fait le saut du HTML5 ou des langages natifs mobiles et les mecs ont une carriere en train de pourrir alors qu’ils n’ont même pas encore 40 ans…



Le problème est que tu as une vision de l’évolution complètement linéaire et formatée par les SSII française ou la seule issue possible pour un bon technicien est de devenir un (mauvais) manager…

Cette vision a toujours été idiote à mon avis. Et même les SSII sont en train de changer cela.

Les américains voient les choses différemment avec 2 “lignes” d’évolution de carrière parallèles : l’expertise et le management. Ainsi un bon tech peut continuer a faire du bon boulot en devenant de plus en plus expert. Et un manager de monter dans la hierarchie.

Les ponts de l’un a l’autre existent evidemment mais on est pas obligé de quitter la technique pour evoluer correctement et c’est une bonne chose.



OK donc si je resume ton point de vue : il faut pas trop en apprendre et l’avenir est bouché pour un dev.

Donc a 35 ans, faut se trouver un autre métier ? Ben ouais mais si on aime pas apprendre de nouvelles choses, on va faire comment pour se reconvertir ?



Tu résous ce paradoxe comment ?







C’est beau de rêver. Mais les réalités du monde informatique sont la.



Tu parle de passion, mais pour l’industrie, un codeur, c’est juste un consommable comme un autre.



C’est précisément parce que les jeune se croient toujours plus malin que leurs ainés qu’ils finissent exactement comme eux pour les mêmes raisons.



Tant qu’un jeune informaticien est assez passionné pour se former sur son temps libre, tout va bien.



Quand il voudra avoir une vie de famille, qu’il aura du mal à se former et qu’il codera moins vite… c’est une simple question de temps avant qu’on le pousse doucement mais sûrement vers la sortie pour le remplacer par un “jeune passionné”.



L’expérience ? Il ne faut pas rêver, au dela de l’expérience de base, ce que veut le gros du marché c’est du codeur “à pas cher”. L’erreur courante pour un codeur, c’est de se croire indispensable.



Sinon, dans les domaines ou l’on recherche l’expérience et les codeurs top niveau, le problème, c’est justement qu’on ne veut pas des gars qui codent moyennement dans 50 langages “à la mode”, mais plutôt des gars qui savent coder au top dans un seul.





Mouarf ! Et la liberté d’entreprendre ?





Coder dans le langage de son choix, ça fait aussi partie de cette liberté.



Libre entreprise ne signifie pas pour autant absence de toute régulation.



Sinon ta voiture roulerait avec de l’essence de la marque du constructeur depuis belle lurette.





Enfin bref, tu me fais plus l’effet d’un mec qui n’est pas très heureux dans son boulot (voire même dans son métier) et qui est très pessimiste. Tu vois beaucoup de choses en noir et tu as l’air de te sentir dépassé ou de ne pas tarder à l’être…





Pourtant, c’est grâce à ce réalisme (que tu appelle du pessimisme) que j’ai eu la chance de comprendre assez jeune comment durer.



Et quand on connait les vrais réalités du marché et la terrifiante naïveté des jeunes qui sont en face prêts à se faire bouffer, c’est difficile de ne pas être cynique.





Franchement, il faut se faire confiance et changer de job (voire de métier) si ça va pas. L’excuse des enfants ou du prêt de la maison n’est pas un empêchement, ce sont juste des contraintes de temps à prendre en compte dans le projet. Crois-moi, je sais de quoi je parle…





Le problème, c’est que tu ne vois pas les choses comme le ferait un employeur professionnel.



Plus tu avancera en age, plus tu cumulera les inconvénients de manière inéluctable : Enfants, famille, perte de passion, diminution de la capacité d’apprentissage, diminution de la motivation.



Tout cela te rendra moins compétitif, moins rentable quoi que tu fasses.



Pour l’industrie, le codeur, c’est un consommable comme un autre.



Aucune raison de le conserver quand il est usé.


Le 01/08/2016 à 21h 20







manu0086 a écrit :



Ah mais je ne regrette absolument pas Obj-C, il m’a rebuté au développement iOS de longues années ^^ Swift m’y a converti.  

Des cassures, il y en a à chaque nouvelle version majeure de Swift, et elles sont mêmes déjà programmées pour Swift 4 par rapport au 3 qui n’est pas encore sorti… lol.

Mais merde, au lieu de sortir des versions à l’emporte pièce tous les ans, ils ne peuvent pas attendre pour sortir telle ou telle fonctionnalité complète au lieu de fonctions de transitions? 

Ce n’est ni sérieux, ni professionnel comme démarche, de nombreux développeurs pro obj-c restent encore sur obj-c à cause de cela. Les swifteurs essuient les plâtres.







Moi ce qui m’intrigue, c’est que des programmeurs puissent trouver normal de se voir restreindre le choix du langage.


Le 01/08/2016 à 20h 15







Uther a écrit :





+1.

 Le C++ c’est bien mais le vouloir le même langage partout, c’est renoncer a s’adapter. Si vos programmeurs sont incapables d’apprendre a utiliser un langage qui répond mieux a vos besoins, c’est probablement qu’il ne valent pas grand chose.







Moi je pense que des développeurs qui passent leur temps à changer de langage et d’environnement seront toujours médiocres dans tout.



Bien sûr, des langages différents existent pour répondre à des besoins différents.



Mais la multiplication des langages redondants auquel on assiste aujourd’hui me parait plutôt découler de stratégies de marché. Et ce n’est pas bon pour les informaticiens.



Si les développeurs étaient intelligents, ils iraient voir des politiques et demanderaient l’interdiction de vente de tout OS qui pousse vers l’utilisation d’un unique langage.


Le 01/08/2016 à 19h 50







Z-os a écrit :



<img data-src=" /> Ou tout simplement marre de le faire. J’en suis là, à part faire du vb/vba pour mes petites recherches mathématiques et faire des trucs simples en cobol/jcl au boulot (de toutes façons on ne fait plus rien de ‘complexe’ avec, les gens ne connaissent plus et faut négocier voire parfois démontrer aux gars de la prod que cela marche <img data-src=" />) Ou alors c’est uniquement pendant les heures de travail pour créer des scripts pour automatiser certaines tâches.







Tout à fait. Et ce que les jeunes développeurs ignorent, c’est qu’avec le temps, le cerveau n’apprends plus aussi facilement.



Cette multiplication des langages et des plateformes est une vraie catastrophe pour la profession. Mais les jeunes s’en rendront compte plus tard, quand ils devront se recycler et qu’il faudra apprendre toujours et encore de nouvelles choses inutiles “à la mode”.







KP2 a écrit :



Avec une telle stratégie, il faut sérieusement bien choisir les qq langages en question pour pas finir à 40 ans dans un stage de reconversion de pôle emploi…







Clairement. Mais c’est inévitable.



De toute façon, un développeur vieillissant ne peut pas se contenter de suivre la mode. S’il cherche à continuer d’apprendre tout ce qui sors comme un jeune, il ne sera pas performant. Et les entreprises le savent.



S’il y a un métier qui est une belle arnaque sur le long terme, c’est bien celui de développeur.





Devenir expert sur un langage donné, il faut combien de temps ? 3 ans de pratique quotidienne environ ?

Et comme n’importe quel bon dev ou presque touche 2 ou 3 langages en parallèle, En 40 ans de carrière, ça laisse le temps d’en voir un paquet…





Sauf que ça n’est pas réaliste de faire ça pendant 40 ans. Du moins pas dans les conditions de marché d’aujourd’hui. De nos jours, la condition pour durer, c’est d’être performant.





Devenir expert sur qq technos spécifiques est une manière d’envisager les choses mais il faut pas se gourer car plus on avance et plus c’est dur de changer. A la rigueur, si on veut se focaliser sur qq chose, il vaut largement mieux viser un domaine fonctionnel et laisser tomber la technique à terme, c’est plus sûr.





Il y a de multiples stratégies pour gérer une fin de carrière pour un programmeur.



Mais il ne faut pas se leurrer, plus haut dans la hiérarchie, il y a moins de place qu’en bas.



Et sortir de la technique signifie aussi être en compétition avec d’autres cursus.



Avec toutes les écoles qui pondent du diplomés a la chaîne en ce moment dans tous les domaines, la compétition pour les postes de management promet d’être féroce. Pas sûr que ce soit un choix réaliste dans le futur…









Le 01/08/2016 à 16h 55







KP2 a écrit :



Pourquoi ? les programmeurs ne seraient-ils pas capables d’évoluer ?







Parce qu’un bon programmeur sait différencier l’évolution technologique et les stratégies de marché…





Personnellement, je pense qu’il n’y a que les mauvais développeurs qui pleurnichent pour ça, les autres savent bien que l’informatique n’arrete pas d’évoluer et les langages avec elle.





Connait tu la vraie définition d’un mauvais développeur ?



Le jour ou tu aura des enfants, que tu ne pourra plus passer tes week ends à te former sur ton temps libre gratuitement, les employeurs te considéreront comme un mauvais développeur.





Un dév aura facilement à apprendre 15 ou 20 langages différents pendant sa carrière, il vaut mieux s’y habituer dès le début et se focaliser sur l’algo et les concepts plutôt que sur la syntaxe





Je prédit que tu aura changé de métier bien avant.



Déjà, rare sont les développeurs qui durent dans le temps.



Ceux qui survivent à long terme, c’est justement ceux qui évitent de se disperser dans l’apprentissage de dizaines de langages et d’environnements.


Le 01/08/2016 à 15h 05

C’est un avis personnel, mais je trouve que chaque constructeur qui veut faire son propre langage associé à son os, c’est une très mauvaise chose pour les programmeurs.

Le 01/08/2016 à 15h 45







Linksys WAG54G a écrit :



A terme, il sera possible de l’installer sur de vieux téléphone, comme on le ferait pour un Linux sur un vieil ordinateur ? J’ai un Motorola Defy+ qui se prêterait bien à l’expérience. :)







Contrairement aux PC, les smartphones n’ont pas de Bios.



Cette limitation fait qu’il ne sera jamais possible de proposer comme sur PC un seul support d’installation pour toutes les machines.



Pour cette raison, je pense qu’ils font une erreur d’essayer de supporter tout ces smartphones “propriétaires”. C’est une tache titanesque dont ils ne verront jamais le bout.



Et surtout, comme le montrent les commentaires, ça ne fonctionnera jamais très bien. C’est donc une perte de temps.



Le monde du logiciel libre devrait faire fabriquer ses propres appareils. C’est la seule voie techniquement réaliste.



C’est une tâche qui semble malheureusement trop grosse pour un seul acteur, fut t’il aussi important qu’Ubuntu. Pour y arriver, il faudra réussir à créer une coalition d’acteurs du libre.



Le 28/07/2016 à 21h 43







jeje07bis a écrit :



tu parlais de devenir autonome en informatique.

ce qui est gentiment utopiste pour le plus grand nombre.







Franchement qu’en savez vous ?



Moi j’ai connu un temps ou l’on formait des utilisateurs bien plus autonomes qu’aujourd’hui.



Et j’ai aussi formé des personnes à l’informatique.



C’est pour cela que je peux comparer.





en fait malgré tes compétences multiples, tu es comme tout le monde : dans certains domaines tu es complètement largué et tu dois faire appelles à des spécialistes…..





Cela va de soi. Personne ne peut prétendre tout maîtriser.



Mais en même temps, il faut savoir que plus on acquiert des connaissances diversifiées, plus on éprouve de facilité à maîtriser de nouveaux domaines.



La raison est d’ailleurs assez simple : la plupart des domaines de compétence de l’homme ont à la base un nombre limité de connaissances “racines”.



Et même quand on confie un travail à un pro, le fait d’avoir des notions, ça aide.


Le 28/07/2016 à 21h 14







Konrad a écrit :



« Pourquoi apprendrait-on à lire ou à écrire ? Pourquoi passe-t-on le permis pour conduire une automobile ? » <img data-src=" />



Tu vois, tu démontres toi-même qu’on peut se servir d’un forum en ignorant certaines règles élémentaires de grammaire. <img data-src=" />



Pourquoi passe-t-on le permis de conduire ? C’est simple : parce qu’en voiture on risque sa propre vie et celle des autres. Si tu fais une faute de grammaire sur un forum tu ne risques de tuer personne. Si Mme Michu fait n’importe quoi avec son ordinateur et chope un virus, elle ne risque de tuer personne. Comparer les risques de l’utilisation d’un ordinateur par un novice, avec les risques encourus par quelqu’un qui conduit sans rien avoir appris, c’est ridicule. Encore une comparaison bagnolesque qui tombe à l’eau, comme c’est souvent le cas.







Dans les entreprises, on compte énormément de sinistres informatiques aux conséquences catastrophiques qui sont causées par l’incompétence en informatique.



Tout cela sans compter la perte de PIB qui découle d’un usage totalement inefficace de l’outil.



Comme je l’ai dit plus haut, ce n’est pas un hasard si tous les pays du monde sont en train de revenir à un meilleur enseignement de l’informatique.





Je suis d’accord pour que les enfants (et les Mme Michu) apprennent les bases de l’informatique : arborescence fichiers/dossiers, qu’est-ce qu’un programme, etc.



Mais dire que tout le monde devrait connaître la ligne de commandes parce que c’est plus efficace et qu’on contrôle mieux ce qu’on fait, je trouve que c’est une idée absurde.





La ligne de commande permet d’automatiser les opérations, pas la GUI.



Au sujet de former tout le monde, ce que vous ne comprenez pas, c’est qu’on ne peut pas savoir à l’avance qui montera une entreprise et va se retrouver DE FAIT à bricoler avec ce qu’il sait en informatique.



La vision de l’informatique avec d’un côté les utilisateurs noobs et de l’autre côté les pro “qui s’occupent de tout”, c’est une vision d’élite qui pense que l’économie ne serait constituée que de multinationales.



Le 28/07/2016 à 20h 21







jeje07bis a écrit :



c’est mignon de dire : 



“vous comprendrez que dans la vie, tout s’apprends. Comme je l’ai mentionné plus haut, la méthode est la même pour tout.“ 



 faut juste avoir le temps quoi…. quand tu travailles 40 heures par semaine, que tu as une vie de famille, des enfants, des loisirs, tu n’as pas le temps d’apprendre la mécanique, ni l’informatique, ni la maçonnerie, ni la couture, ni la broderie, ni la cuisine, etc etc…. A un moment donné, y a des choix à faire….

Je pense que tu es capable de le comprendre….



Tes journées durent 72 heures?

ton discours moralisateur est gentiment utopiste, presque mignon.







Tu serais surpris de voir ce qu’on peut obtenir dans le temps en consacrant seulement un peu de temps chaque semaine à diversifier ses compétences.



D’autant qu’apprendre est loin d’être rébarbatif, c’est plutôt un loisir passionnant. C’est encore mieux quand on apprends dans des clubs ou associations.



Et c’est un investissement qui produit un retour : On peut gagner du temps, de l’argent, de la sérénité.



Mais aussi et surtout, on peut gagner à long terme une certaine polyvalence.



Avez vous seulement réfléchi à ce que vous deviendrez dans quelques décennies, le jour ou vieillissant, les entreprises ne voudront plus de vous ?



Après, chacun fait ce qu’il veut de sa vie.



Mais la discussion dérive, je rappelle que mon propos, c’était simplement de dire que comme dans tout domaine, l’informatique nécessite d’apprendre pour être utilisée correctement.


Le 28/07/2016 à 19h 29







33A20158-2813-4F0D-9D4A-FD05E2C42E48 a écrit :



Cette complexité, on pourrait la faire disparaître si on le voulait vraiment. La complexité de la conduite automobile a bien été escamotée. Mais pour cela il a fallu faire des compromis. Toutes les voitures ont les pédales au même endroit, un volant qui fait le même nombre de tours, etc…







Ce n’est pas comparable.



L’automobile est un objet complexe, mais sa fonctionnalité est finalement très simple : avancer, freiner, tourner. Il n’est pas difficile de simplifier une fonctionnalité…qui est déjà simple.



Rien à voir avec l’ordinateur est un objet très complexe qui permet de réaliser des tâches très complexes.



Même s’il est vrai qu’on peut parfois simplifier certaines choses, le fait de croire qu’on pourrait rendre simple tout ce qui est complexe, c’est une utopie, une arnaque. Et ça n’existe que dans l’imaginaire du marketing.





Au lieu de cela, chaque vendeur informatique veut se démarquer de la concurrence et propose des interfaces utilisateur différentes et totalement anarchiques. Si tous les sites web interagissaient avec l’utilisateur de la même façon, si tous les drivers imprimante rapportaient le même problème de la même façon, une grande partie de la complexité disparaîtrait.





Je suis totalement d’accord que ça serait un énorme progrès.





Encore une fois, non. C’est un éternel débutant car chaque fois qu’il a appris à faire quelque chose (p. ex. prendre les photos de sa carte SD et la mettre dans l’application web/cloud/whatever) le vendeur choisit de complètement changer l’interface pour soi-disant “améliorer l’expérience utilisateur”.





C’est vrai que c’est assez pénible.



En même temps, tu remarquera qu’il y a des gens qui retrouvent toujours comment faire (nous) quand d’autres (eux) sont perdus.



Ce n’est pas un hasard. Cela tiens justement au fait que ceux qui ne comprennent pas le fonctionnement des appareils apprennent des procédures toutes faites. Et au moindre changement, ils sont perdus.



Au contraire, celui qui comprends le fonctionnement retrouvera intuitivement son chemin.





Imagine que chaque matin le bouton d’allumage des phares de ta voiture change de place avec la commande des essuie-glace en fonction des prévisions météo.





Il suffit de posséder des voitures d’origine différentes. Par exemple, une voiture française et une allemande.



Mais bon, je suis d’accord avec toi sur le principe.





Une GUI n’empêche pas l’automatisation si elle est bien faite. Notamment, comme l’a indiqué la personne à l’origine de ce débat, un système qui te permet de choisir des paramètres de manière GUI puis te montre la commande shell correspondante.



Exemple : un service (ou deamon, peu importe) doit être redémarré mais je n’en connais pas le nom exact (exemple : OracleServiceORCL dont le nom dépend du nom de l’instance). Il est infiniment plus simple d’avoir un popup qui me montre la liste de tous les services qui tournent, puis me permet de raire Clic Droit -&gt; Redémarrer plutôt  que de taper une commande qui liste les services et une autre commande pour le redémarrer, en jonglant avec des cut-n-paste pour ne pas se planter dans le nom du service.



Et si tu veux faire de l’automatisation, l’interface que je viens de te donner pourrait très bien avoir une option “montre moi la ligne de commande correspondante au lieu de l’exécuter tout de suite”, ce qui me permettrait de la copier-coller dans un script. Encore une fois, tout ceci ne dépend que de la bonne volonté des développeurs GUI.



Ca a l’avantage que je n’ai pas à mémoriser des commandes compliquées dont je n’ai pas l’utilité, et j’ai toujours un moyen simple de la générer si nécessaire.





La dessus, je suis entièrement d’accord.



Hélas, c’est un principe que personne n’applique actuellement (il existe quelques rares exemples).



La mode actuelle, c’est de “simplifier” les logiciels. Comme on le voit sur les smartphones et tablettes, cela aboutit en pratique à retirer toutes les commandes puissantes pour faire des logiciels limités qui “suffisent” soit disant au plus grand nombre.















Le 28/07/2016 à 18h 52







jeje07bis a écrit :



….

t’as pas inventé la poudre la!



Tu vis sur quelle planète exactement???



t’es complètement à l’ouest.







Une discussion, c’est beaucoup mieux quand on respecte son interlocuteur.



IMHO vous avez beaucoup d’idées reçues.





et toute la question à laquelle tu es incapable de répondre depuis le début.





Encore une fois, relisez mes posts.



J’aurais pu développer, mais la discussion n’étant pas constructive, je sais que je perdrais mon temps.







jeje07bis a écrit :



parce que quand tu passes le permis, on t’apprend à conduire, pas à faire la vidange….  tu vois la différence?







Sauf que c’est exactement pareil.



On ne vous apprends pas à faire une vidange ni a comprendre la mécanique.



Et après, les gens sont bien dans la merde, ils raquent un maximum. Même pas besoin d’avoir une panne…



D’ailleurs, il suffit de comparer le budget auto d’un “noob” et d’une personne qui s’y connait un peu en mécanique : ça n’a rien à voir.







jeje07bis a écrit :



Devenir autonome en informatique, c’est comme devenir autonome en mécanique voiture…. Bonne chance.

t’es complètement à l’ouest.







Ah bon ?



Et bien pour ma part, je maîtrise relativement bien la mécanique auto.



Allez donc vous inscrire dans un club de mécanique auto, vous comprendrez que dans la vie, tout s’apprends.



Comme je l’ai mentionné plus haut, la méthode est la même pour tout.



Vous devez d’abord identifier les bases à apprendre, ensuite faire l’effort d’apprendre… et enfin progresser avec le temps et la pratique.



Le 27/07/2016 à 15h 43







EricB a écrit :



on peut aussi partir du principe inverse que c est à l outil de se plier à l utilisateur et non l utilisateur de se plier à l outil.

L outil informatique devrait être plus intuitif. Et c’est sur cette vague qu’Apple a fait son succès, et plus récemment les appareils tactiles tels les tablettes. Je connais pas gd chose à OS X/iOS, mais il  semblerait que pour qcq qui n a jamais toucher à un ordi ou tablette, il s’y débrouille mieux que sous Windows. Android peut etre entre les 2?







Il faut réaliser que ce discours a été en grande partie inventé par des commerciaux.



La complexité, on ne sait pas la faire disparaître. On ne fait que la cacher derrière de belles interfaces.



Sauf qu’elle est toujours la, derrière, prête à resurgir.



La vraie réalité, c’est qu’en informatique si vous n’avez pas un minimum de compétences, ce n’est qu’une question de temps avant de vous retrouver dans la merde.





Mais je suis d accord: c’est bon tant qu on se contente des limites des GUI. Apres, c est potentiellement bcp plus compliqué, et il faut comprendre certains concepts pour vraiment se servir de l outil.

  

[quote]Je vois cela avec mon père: on a acheté en commun le 1er ordi en 1994. Il a donc vécu toutes les versions de WIndows (3.1-&gt;95-&gt;98-&gt;XP-&gt;7-&gt;10).. Mais il ne comprends toujours pas certains concepts de base. Sans doute par ce qu il ne veut pas se fatiguer à apprendre et qu il sait que le fiston revient tous les 6 mois pour “réparer” l outil, ce qui me gave bien d ailleurs. J avais beau tenter de mette tous sous Linux, le PC était alors bcp plus réactif, mais il n a pas trop été convaincu par OpenOffice pour remplacer sa feuille Excel.

Depuis 1 an, il a une tablette Android Samsung 10”. Je lui ai mis Word & Excel dessus. Et bien il délaisse de + en + ses vieux ordis et trouve la tablette bcp plus simple et intuitive. 

Dans ce sens, je trouve que Windows n a jamais été un gd succès pour “l’expérience utilisateur”.

Pour la majorité des utilisateurs “lambda”, Windows est d abord une contrainte et une prise de tête.

Et maintenant, on a Microsoft qui veux aussi pousser à la simplicité et nous supprime plein de fonctionnalité. Ainsi, sous Win10, on doit jongler entre les nouveaux paramètres bordéliques et limités et l ancien “panneau de contrôle” beaucoup plus puissant. Encore un autre argument pour rester sous Windows 7 d ailleurs!





Faute d’avoir les connaissances de base, il est devenu un “éternel débutant”. Tous les informaticiens connaissent cela avec les sollicitations de leurs proches.



On peut se sentir flatté que les gens aient besoin de nous. Mais il faut appeler un chat un chat, malgré des années d’usage, ils ne sont jamais devenu autonomes. C’est un échec flagrant…





Prise de tête pour moi aussi, depuis “professionnel en informatique”. En ce moment, je doit faire une installation à distance des imprimantes réseaux sur notre domaine, via WMI dans un service Azure appelé par une page SharePoint. Je pensais au début que cela serait torcher en qques heures. Cela fait des jours, voire des semaines que j y suis à cause d une documentation trop mauvaise: c’est la galère de trouver des info pertinentes et actuelles: la doc MS est envahie de vieux VBScript, ce que je ne veux pas.  En powershell, c est  a plutôt simple et court, mais pour le déploiement, un module en C# est souhaité. Je trouve certes certains trucs, mais que c est pénible et poussif. Et puis à la fin, mon code me donne une belle erreur “paramètre invalide”: ce ne serait pourtant pas si compliqué de me dire lequel!

 

Dans un autre registre, l aide sous WIndows 10 est vraiment pauvre: tu fais un F1 n importe où, tu atterri sur une page générique sur le site de Microsoft.

Dans les versions précédentes, on avait au moins une aide locale et contextuelle, certes pas géniale, mais mieux que le “démerde toi” actuel!





La GUI apporte de multiples problèmes. D’une part elle cache le fonctionnement de ce qui se passe derrière, d’autre part, elle éloigne de l’automatisation.


Le 27/07/2016 à 15h 10







Konrad a écrit :



Si, ton discours est élitiste.







Non, il n’est pas élitiste de dire qu’il faut être formé pour se servir correctement d’un objet aussi complexe qu’un ordinateur. C’est juste du bon sens.



Pourquoi apprendrait t’on à lire ou à écrire ? Pourquoi passe t’on le permis pour conduire une automobile ?





Tu dis que s’il s’agissait d’une autre science tout le monde serait d’accord avec ton discours. Ben désolé mais non. Si on parle de mathématiques : la plupart des gens sont capables de faire leurs comptes, de rendre la monnaie, sans connaître le calcul matriciel ni les espaces à 24 dimensions. Si on parle de chimie : la plupart des gens savent faire réagir des composés pour cuisiner ou pour fabriquer de l’alcool, sans pour autant connaître toutes les réactions chimiques à l’œuvre.



L’informatique c’est pareil. La plupart des gens en ont une utilisation basique. Dire que tout le monde devrait apprendre dans le détail le fonctionnement d’un OS et la programmation, c’est élitiste.





Même ceux qui sont sorti très tôt du cursus scolaire ont subi des années de cours de math obligatoire. Et cela, pas pour faire du calcul matriciel, simplement pour juste savoir compter.



En informatique, je ne préconise pas de faire de madame michu un ingénieur mais de lui donner comme pour les autres savoirs les bases nécessaires pour ne pas être complètement handicapé et pour pouvoir évoluer.


Le 26/07/2016 à 23h 35







jeje07bis a écrit :



superbe réponse digne d’un homme politique!

tu réponds sans répondre!  chapeau…!



et donc c’est quoi les racines en info? parce que c’est terriblement vague comme notion….







Relisez mes posts précédents, je pense que je suis assez clair.



Comme on dit, comprends qui veut comprendre. <img data-src=" />





et tu appliques ce raisonnement pour tout? Donc j’imagine que tu as suffisamment de “racines” pour te démerder en mécanique, en bricolage, en cuisine, en élevage de grenouille, etc etc?



je sens qu’on va tourner en rond….





Le raisonnement est évidement valable pour tout.



C’est d’ailleurs ce que font toutes les écoles dans tous les domaines et depuis la nuit des temps.



Et ce n’est pas un hasard si l’enseignement de l’informatique à l’école est en train de revenir vers les fondamentaux. Et cela dans la plupart des pays du monde.


Le 26/07/2016 à 18h 47







jeje07bis a écrit :



tu l’apprends???



jusqu’à quel niveau alors? (bon courage pour cette question)







C’est une question pertinente.



Mais pour avoir connu un temps ou les utilisateurs étaient formés autrement, la réponse n’est pas aussi complexe qu’on pourrait le penser.



En informatique, comme dans toute autre matière, les notions sont liées les unes aux autres pour former un arbre cohérent. Il y a des racines, un tronc, des branches et des feuilles.



Notre cerveau est doté d’immenses facultés d’extrapolation. C’est cette faculté qui permet d’appréhender des situations très variées.



Mais son fonctionnement dépends de l’apprentissage des connaissances “racines”. C’est ce qui doit être impérativement enseigné.



Pour l’informatique, on sait ce que sont les connaissances racines.



Une fois les connaissances racines apprises, la personne peut progresser d’elle même avec le temps. Dans le cas contraire, elle n’aura jamais les clé pour progresser, elle restera un éternel débutant.



Ce qui est amusant, c’est que si l’on parlait de mathématiques, de langues ou de science, la plupart des gens trouveraient ce discours parfaitement logique. Pendant des années, nous apprenons à compter, à lire, à écrire. Ce n’est pas pour rien.



Mais bizarrement, quand on parle d’informatique, la théorie de la science infuse ne semble choquer personne.


Le 26/07/2016 à 17h 14







Konrad a écrit :



Je suis entièrement d’accord.



C’est pour cela que j’ai du mal à comprendre les gens qui soutiennent mordicus que pour remplir un formulaire ou écrire une lettre, faire une recherche sur internet, il faut absolument utiliser Windows, et que tout le reste n’est pas adapté, ou « pas pour les Michu ». C’est entièrement faux.



Certains « Power Users » ont des besoins spécifiques, ils utilisent des logiciels spécifiques qui n’existent que sous Windows. Dans ce cas il n’y a qu’une seule solution : qu’ils utilisent Windows. Ce n’est pas la peine de débattre, le reste ne peut pas répondre à leurs usages de toute façon.



En revanche, qu’ils n’essayent pas de nous faire croire qu’une Mme Michu qui fait juste de la bureautique basique, est absolument obligée de rester sous Windows elle aussi. J’ai passé des Michu sous Linux, ils s’en sortent bien mieux que sous Windows et ils ont moins de problèmes. Autres usages, autres solutions possibles.







Et bien moi je ne suis pas du tout d’accord.



Je pense que l’informatique, tu l’apprends ou tu t’en passes….



Ce n’est pas de l’élitisme, simplement du réalisme découlant d’une longue expérience.



Les “michu qui remplissent des formulaires”, ça finit inéluctablement par travailler un jour dans une entreprise à utiliser l’informatique bien au delà de leurs compétences.



Et quand il n’y a pas d’informaticien, comme dans la plupart des PME, ça finit bien souvent par des catastrophes : les sinistres informatique sont la cause de beaucoup de faillites d’entreprise.



Il fut une époque ou il n’y avait absolument personne pour penser que “monsieur tout le monde” pourrait utiliser l’informatique sans formation.



Pourquoi cette idée a t’elle changée ? Je vous engage à étudier l’histoire de l’informatique.



Pour résumer, c’est le fruit d’années de marketing et de communication de grandes entreprises qui avaient des choses à nous vendre. <img data-src=" />



C’est l’exemple même d’une idée reçue qui existe pour de très mauvaises raisons.


Le 26/07/2016 à 16h 46







after_burner a écrit :



Il y a différent niveau d’utilisation de l’informatique.



Pour remplir un formulaire ou écrire une lettre, faire une recherche sur internet, il n’y a pas besoin d’apprendre la ligne de commande.







Oui, c’est ce qu’on pourrait croire au premier abord.



Mais la pratique dément complètement cette vision utopique : Dans le vraie réalité, la plupart des gens finissent inéluctablement par se retrouver dans des situations bloquantes, voir catastrophiques.



Parce que oui, tu commence par “juste” taper ton courrier. Et au fur et à mesure tu finit rapidement par confier à ton ordinateur des données importantes, voire vitales.



Le problème, c’est que sans un minimum de maîtrise, le sinistre informatique n’est qu’une question de temps.



L’erreur c’est de faire croire qu’on peut utiliser un ordinateur en dilettante alors qu’en pratique, beaucoup de gens seront de fait amenés à l’utiliser comme un outil de travail.


Le 25/07/2016 à 21h 23







saladiste a écrit :



C’est un exemple totalement ridicule car l’informatique est un outil d’automatisation.



Plus ton automatisation est perfectionnée et performante, plus tu auras le temps de faire trempette. <img data-src=" />







Excellent exemple…



C’est bien ça le but d’un véritable apprentissage de l’informatique : Apprendre la notion d’automatisation.



Parce qu’il y a celui qui se CROIT performant parce qu’il bosse 60 heures par semaine avec des méthodes dépassées.



Et il y a celui qui l’est vraiment en regardant bosser ses robots les doigts de pied en éventail…


Le 25/07/2016 à 21h 09







after_burner a écrit :



Et donc? C’est comme si tu reprochais aux personnes qui vont à la plage de ne faire que trempette et de ne pas s’investir en faisant de la plongée ou de la nage sur plusieurs centaines de mètres pour améliorer leur performance.



Je sais pas, j’essaie de trouver un exemple pour expliquer qu’il n’y a aucune obligation à se perfectionner dans un domaine donné.







Ce n’est pas un question d’obligation, mais d’intérêt.



Se former un minimum a pour but de s’éviter les multiples galères dans lesquels tous les débutants tombent inéluctablement.



D’une manière générale, j’ai pu remarquer que ceux qui n’acquièrent pas un minimum de connaissances en informatique au départ se galèrent ensuite toute leur vie.



Ils traînent leur manque de connaissances au quotidien comme un boulet. C’est comme une nouvelle forme d’analphabétisme.



Tu compares l’informatique à une activité de plage, sauf que l’informatique n’est pas juste un loisir.



Parce qu’il faut réaliser que l’obligation d’utiliser l’informatique est déjà devenu une réalité de fait pour beaucoup de nos concitoyens.


Le 25/07/2016 à 16h 20







AmaCha a écrit :



Ça me rappel une discussion entre “programmateur” (joke inside) :




  • Tu développes en quoi toi ? - En JavaScript, CSS, HTML et XML - Ah ouai mais non, le vrai développement c’est en Assembleur









    Le vrai développement, c’est d’utiliser le bon langage pour le bon usage.



    Ce qui n’empêche pas que certains langages soient meilleurs que d’autres.



    Quand à l’assembleur, même si ce langage ne concerne par lui même que des usages de niche, son apprentissage est essentiel pour la bonne compréhension du reste.





    Rien n’empêche un développeur assembleur d’utiliser une GUI.

    Je suis bien conscient qu’une GUI limite les choix. Mais c’est parfois une très bonne chose d’avoir 10 choix qui correspondent à 95% de nos utilisations et pour le reste utiliser la ligne de commande. Plutôt que de taper des lignes de commandes à rallonge systématiquement.



    M’enfin pour pousser l’aberration plus loin, la ligne de commande aussi c’est limité, autant directement écrire en binaire sur le disque et la mémoire,  les registres processeurs, la carte graphique, … c’est du même acabit. <img data-src=" />





    Tout à fait.



    Sauf que le constat que la GUI est limitée n’implique pas forcément que l’idéal serait l’extrême inverse.



    L’idéal, c’est toujours une affaire de bons compromis.


Le 25/07/2016 à 16h 07







AmonituX a écrit :



Yep totalement d’accord d’ailleurs en tant que CAD je ne travail qu’en ligne de commande sur un terminal  a l’aveugle forcement plus simple et rapide <img data-src=" />







Justement, en matière de CAD, la programmation permet d’aller bien plus loin que le travail visuel. <img data-src=" />



Il faut savoir utiliser la bonne logique en fonction du problème.





Les intégriste merci de mettre en rapport que l’informatique est un terme très général qui ne correspond pas forcement a votre usage spécifique.





Pas d’accord.



En informatique, il y a une voie qui mène à l’amélioration continue, une autre qui n’aboutit qu’à devenir un éternel débutant.



Le 25/07/2016 à 15h 30







AmaCha a écrit :



Oui, je connais très bien sed/awk/cut/egrep/perl, ça existe aussi sous Windows tu sais <img data-src=" />  <img data-src=" /> (via UnxUtils ou CygWin).

Et non, une GUI à la base, ce n’est pas que pour “faire joli”, c’est aussi pour gagner du temps et éviter de se rappeler tous les commutateurs des centaines d’outils utilisés chaque jour. Perso si je peux éviter de mémoriser certains trucs que j’utilise ponctuellement mais régulièrement par le biais d’une GUI bien foutue, je le fais. Je parlais bien de mes usages là (= vaste plaisanterie <img data-src=" />).

Et avec ReNamer, on va bien plus loin que de la regexp, on peut injecter du code directement et éventuellement générer un exécutable.



Taper des lignes de commandes ne me pose pas de problème, j’en tape depuis MS-DOS 3 et j’en ai tapé sur les premières Slackware <img data-src=" /> … Mais uniquement quand ça prends moins de temps qu’avec une GUI.



Pour le “jamais vu”, ça tombe bien, personne non plus n’a vu ça nulle par sur les différents forums que j’ai parcouru pendant des jours … du coup une GUI qui fait ça et bien c’est tout de même bien pratique <img data-src=" />







Une GUI, c’est très pratique pour faire des choses simples.



Dès qu’on veut faire des choses complexes, c’est limité.



Tu peux avoir l’impression qu’on peut faire des choses complexes avec une GUI, mais ce que tu ne réalise pas, c’est que ce sont juste des schémas prédéterminés.



Et ces schémas prédéterminés finissent par limiter ton usage de l’informatique.



Cela fabrique des utilisateurs improductif en les éloignant de la logique d’automatisation.



La programmation est la seule façon d’obtenir la pleine puissance de l’informatique.


Le 25/07/2016 à 14h 36







fz49000 a écrit :



… ben si tout au contraire, l’intérêt de ne pas installer ce mouchard de W10, générateur de pub ciblée (je n’utilise ni Google, ni Chrome) qui se permet d’installer les futures MàJ sans aucun contrôle de notre part …



Certains se plaignent déjà qu’une MàJ leur a remis les paramètres de confidentialité par défaut, c’est à dire ceux qui caftent bien toute notre activité à Crosoft …



Ceux qui sont passés à W10 et qui sont soucieux de la confidentialité de leurs données vont-il devoir passer une bonne partie de leur temps à vérifier si les modifs qu’ils ont faites pour rendre W10 beaucoup moins intrusif (semblerait même que des processus Cortana soient actifs même quand celui ci a été désactivé …) n’ont pas été remis par défaut à l’insu de leur plein gré (comme dirait Richard Virenque) …?



Pour rappel, nos données confidentielles ainsi pompées par Crosoft sont stockées … aux USA, si vous voyez ce que je veux dire …



http://www.euractiv.fr/section/societe-de-l-information/news/ue-et-etats-unis-pe…







Le problème, c’est que de rester sous Windows 8.1 n’est pas du tout une solution.



Comme vous le savez tous, il arrive toujours un moment ou l’on ne peut plus garder un Os trop ancien.



Donc en restant sous Windows 8.1 vous ne faites que retarder l’inéluctable sans réellement trouver de solution. Et vous finirez par migrer par la force des choses.



Une vraie solution, c’est par exemple de passer à Linux et aux logiciels libres.



Pour ma part, j’ai gardé Windows 10 en dual boot pour les jeux et tout ce qui ne tourne pas encore sous Linux.



Toute activité impliquant des données personnelles ou professionnelles sont sous Linux.



Windows peut espionner tout ce qu’il veut, ils n’obtiendront que des données sans véritable importance.


Le 25/07/2016 à 16h 44







criters a écrit :



La France bafoue au moins 13 des droits de l’homme par la normale alors l’appeler le pays des droits de l’homme c’est assez drôle <img data-src=" />



C’est comme parler de la plus belle avenue du monde ^^ c’est surement pas les champs Elysée







On est obligé de le crier haut et fort pour la simple raison qu’actuellement personne ne pourrait le deviner…


Le 25/07/2016 à 15h 06







carbier a écrit :



Je n’ai même pas voté pour lui, pourquoi veux-tu que je lui écrive un poëme ? <img data-src=" />

Par contre il y a un gouvernement en place qui tente de faire ce qu’il peut avec la merde actuelle… alors certes tout n’est pas parfait mais ce qu’il fait n’est rien en comparaison des demandes d’une quasi majorité de la population… parcequ’actuellement, les parangons de la démocratie qui écrivent sur NXi semblent vivre dans leur monde: si on demandait vraiment l’avis au peuple maintenant, je ne suis pas sur que cela plairait à ceux qui croient qu’on vit dans une dictature…







Non



Comme les autres gouvernements de droite et de gauche qui l’ont précédé, le gouvernement actuel ne fait quasiment rien, ne change presque rien.



Ce que tu appelle “la merde actuelle” n’est pas le fruit du hasard, c’est juste le résultat de cette inaction des politiques depuis 30 ans. Et cela quel que soit leur tendance politique.



Pour résumer la situation, nous avons atteint un chômage record et en augmentation constante et les inégalités sociales explosent. C’est la source indirecte de la plupart des problèmes de société de notre époque.



Et les causes sont beaucoup plus simples qu’on pourrait l’imaginer : nous appliquons des théories de gouvernance économique complètement dépassées.



Nos politiques appliquent des règles économiques qui datent de l’ère pré industrielle et sont incompatibles avec une économie fortement mécanisée et robotisée.



Les politiques actuelles font encore partie des “utopistes de la mondialistion heureuse” qui pensent qu’il “suffit” d’être compétitif pour atteindre le nirvana.



Pour ceux qui y croient encore demandez vous s’il existe seulement un seul pays au monde, même parmi les soit disant gagnants dont la population est heureuse.



La réalité, c’est que ce système ne tends que vers le bonheur d’une minorité toujours plus réduite avec une majorité toujours plus réduite à l’esclavage.



Et nous pouvons constater tous les jours que c’est bien ce qui est en train de s’accomplir.



Pour perdurer, ce système pervers vends du rêve : travaillez dur et vous deviendrez riche.



Sauf qu’il n’y a pas besoin d’être extra lucide pour constater que ceux qui travaillent le plus dur sont ceux qui sont les plus pauvres… et qui le resteront.


Le 25/07/2016 à 14h 21







otto a écrit :



La tolérance c’est très beau, malheureusement il suffit qu’un seul ne joue pas le jeux et tout tombe par terre. Vas faire un tour dans à la cité des 4000 à la Courneuve histoire de tester…







Et alors ?



Si nous cédons à l’intolérance, tout ce que nous gagnerons, c’est d’aboutir à une escalade qui peut mener à la guerre civile.



Et c’est exactement ce que les islamistes veulent obtenir. C’est d’ailleurs le seul moyen qu’ils ont.



Le plus amusant dans l’histoire, c’est que les islamistes ont besoin des extrémistes du camp d’en face pour créer cette escalade.



Sans le savoir, l’extrême droite sers les plans de daech…



Le 19/07/2016 à 21h 39







Uther a écrit :



En fait c’est aussi le cas en Rust, la plupart des mécanismes sont implémentés sous forme d’éléments de la  bibliothèque standard, mais il peuvent reposer sur les concepts de ownership et des lifetimes, qui leur permettent d’avoir des garanties sur l’utilisabilité ou non de certaines variables.







La question a propos de ces mécanismes, c’est de cerner a l’usage tout ce qu’ils impliquent dans un sens comme dans l’autre. Je pense qu’il faudra du temps.





C’est justement l’intérêt du Rust, il essaye d’apporter plus de sécurité tout en restant proche dans l’esprit du C++.





Tout à fait. Mais la question qu’il faut se poser est une pure problématique de marché : Ceux qui ont des vraies préoccupations en matière de sécurité sont t’ils encore très nombreux à programmer en C/C++ ?





Théoriquement le Rust ayant plus de certitudes sur la durée de vie des variables, il pourrait se permettre certaines optimisations que le C++ ne peut faire. Mais pour le moment ce n’est pas vraiment le cas.





C’est tout à fait véridique.



Plus un compilateur peut restreindre le champ des possibilités, plus il peut optimiser. C’est la raison pour laquelle des langages comme Javascript sont une véritable catastrophe. Ce que les jeunes programmeurs ne veulent pas comprendre.



Mais l’esprit de C/C++ c’est aussi d’éviter de tomber dans l’excès de rigorisme qui apporte inéluctablement des soucis majeurs, particulièrement quand on travaille à bas niveau. Ce juste milieu est aussi l’une des raisons majeures pour laquelle ce langage est apprécié.



Mais le C/C++ est un peu un langage à géométrie variable. Si l’on veut pousser l’optimisation, on peut utiliser des des mots clés et des “PRAGMA” pour affiner le comportement du compilateur par rapport à ses réglages par défaut, voir utiliser certaines spécificités du processeur. Le programmeur est laissé libre de les utiliser ou non. Exemple, pour optimiser le comportement du compilateur vis à vis du “pointer aliasing”, il y a un mot clé qui permet de l’informer qu’il n’y a pas de risque d’accès à la même case mémoire par un autre pointeur et que le compilateur peut différer les écritures si l’optimisation l’exige.





Rust s’appuyant sur LLVM,  les performances d’un code Rust ou C++ optimisé avec le même sérieux sont généralement équivalentes (à plus ou moins quelques pour-cents près dans un sens ou dans l’autre). L’exception étant le SIMD qui n’est pour le moment que partiellement géré par Rust.





Tout à fait. La prise en charge du SIMD arrivera certainement un jour. Ce n’est pas une limitation du langage.





L’impact du bound checking est, encore une fois, négligeable la plupart du temps.





Sur ce problème, mon opinion est qu’il ne faut pas raisonner par la généralité. Certains cas de figure ne présentent effectivement pas une différence perceptible. Dans d’autres, le surcoût peut représenter un facteur important.





Et facile a désactiver localement au points particuliers où il pourrait poser problème.





Certes.



Mais dans certains types de logiciels orientés performance, on pourrait perdre un temps certain à rechercher tout ces points. Sans compter de devoir se poser des questions pour tous les cas intermédiaires. C’est pourquoi dans certains domaines il est logique de préférer l’absence de bound checking par défaut.



Sans compter d’autres soucis, par exemple un bound checking sur l’ensemble du programme aboutit à un code plus volumineux (ça demande des instructions assembleur supplémentaires). Et les petits micro contrôleurs n’ont parfois que quelques milliers d’octets de mémoire. Déjà qu’en C j’ai connu des cas on ça passait vraiment tout juste…

 



Avec Go, le problème est assez différent : c’est surtout qu’il a été présenté comme un langage système et donc un concurrent de Rust qui a été présenté en même temps, parce qu’il compile en binaire en AOT .

 

Mais Go n’en est clairement pas n’en est pas un langage système, du moins pas dans le sens d’un langage avec lequel on peut programmer des briques élémentaires d’un système ( Kernel, Drivers, Barebone …). Les programme Go ont un runtime imposant qui gère notamment un ramasse-miette. Cela le rend inadapté à la programmation système car son comportement bas niveau difficilement prévisible et donc son intégration avec d’autres systèmes problématique.





Je suis totalement d’accord.



Mais Rust plaira t’il aux programmeurs système quand on sait que beaucoup ont déjà du mal avec C++ au motif qu’ils n’ont pas un contrôle aussi poussé qu’en C…





Rust a d’abord été fait pour les besoin de Mozilla, qui sont certes particuliers, mais pas marginaux non plus. Leur but n’est pas de signer l’arrêt de mort du C++ mais de fournir une alternative viable. Il y a plein de langages qui vivent très bien sans avoir les part de marché de Java ou de C.





Tout à fait.



Comme pour tout produit, l’enjeu est de toucher le public susceptible de manifester un intérêt. Et je pense qu’il n’est pas du tout certain que cela soit du côté des programmeurs C/C++ qu’il y ait le meilleur potentiel.



C’est d’autant plus vrai que la communauté C/C++ c’est un milieu extrêmement conservateur…





Bien que le langage soit prévu pour être utilisable sur les architecture modeste, il ne s’agit pas d’une priorité pour le moment peur i686, x86_64, ARMv7, ARMv8 et MIPS sont supportés.





C’est déjà pas mal pour le moment.



Le problème n’est pas tellement les architectures modestes, mais plutôt l’embarqué sur des petits microcontrôleurs. Les processeurs n’étant pas superscalaires, le bound check n’est pas à l’aise.

  



J’ai bien l’impression que tu as la chance de travailler dans un entreprise très sérieuse, avec une équipe parfaitement gérée et composée de développeurs quasi infaillibles. Mais, vraiment, la majorité des développeurs ne sont pas dans ce cas, et de mon expérience, faire du C++, ne rend pas systématiquement les gens plus intelligents.





Le domaine du logiciel est fait de secteurs d’activité très différents qui ont des problématiques complètement différentes en terme de qualité, rapidité de développement, sécurité.



La majorité des programmeurs en terme de nombre, c’est la SS2I qui produit des logiciels personnalisés courants. Cela fait bien longtemps qu’ils ont abandonné le C/C++ pour des raisons compréhensible. Dans cette activité, les performances ne sont pas une priorité. Ce qui compte, c’est surtout la rapidité de développement.



A l’opposé se trouve une des programmeurs qui font des logiciels à très haute performance. Ils sont moins nombreux mais leurs logiciels peuvent être utilisés par un très grand nombre de personnes. L’enjeu sur un noyau de qualité n’est pas le temps passé mais la qualité du résultat.



Entre les deux, on trouve les éditeurs de progiciels. Les priorités varient en fonction du secteur. Un jeu vidéo est plus orienté performances. Un logiciel de comptabilité doit faire preuve de stabilité. C’est un monde de besoins spécifiques. Mozilla est un bon exemple : Le navigateur a des besoins de sécurité très importants. Et ils doivent suivre des normes qui évoluent souvent.





de mon expérience, faire du C++, ne rend pas systématiquement les gens plus intelligents





Effectivement.



Les programmeurs qui se souviennent de l’époque ou C/C++ était utilisé à tort et à travers confirmeront.



C’est un langage qui peut faire des merveilles dans des mains expérimentées.



Mais entre les mains d’un stagiaire, c’est une arme nucléaire. <img data-src=" />





Donc je pense que Rust a tout a fait ça place dans les entreprise qui sont intéressées par des performances bas niveau mais ne sont pas capable de recruter 100% d’experts confirmés en C++





Le bas niveau demande forcément un excellent niveau d’expertise pour de nombreuses raisons. Mon opinion est que le bound checking ne suffit pas à changer cela…

 



Bien évidement que le bound checking ne fait pas tout. Il n’empêche que se débarrasser avec un surcoût généralement négligeable de toute une catégorie de bug très pernicieuse et dangereuse, c’est quand même un atout non négligeable.





C’est indéniablement un atout dans certains cas. Mais le bound checking n’a pas non plus que des avantages.



Dans un programme ou la performance prime mais qui a peu d’implications en terme de sécurité, l’absence de bound checking est un bon choix.



Avec la puissance des utilitaires modernes, je trouve qu’il est plus aisé d’atteindre un bon niveau de stabilité malgré l’absence de bound checking que de débusquer tous les points ou le bound checking ferait perdre en performances.





D’autant plus que si la sécurité mémoire et un argument intéressant de Rust, il propose bien plus que cela avec certaine capacités issues de langages fonctionnels.





On observe aussi ce mouvement dans les évolutions de C++.





Le problème c’est que ces technologies ne sont que de la mitigation de risque. Elles  visent à limiter les risques en cas de mauvaise utilisation, mais certainement pas a dédouaner le développeur du bound checking. Bien qu’ils utilisent ça, la plupart des navigateurs modernes sont encore victimes d’exploit mémoire.

 Alors si les développeurs se mettent a penser que ça peut remplacer le bound checking comme tu le suggères, je crains le pire …





Le bound checking est une solution connue et utilisée depuis très longtemps. Bien avant Java, C# ou Rust, il y avait le langage Pascal.



Comme dans beaucoup de cas de figure, la cohabitation de visions différentes traduit simplement le fait qu’il n’existe aucune solution miracle “panacée” qui apporterait uniquement des avantages sans aucun inconvénient et qui soit valable dans tous les cas de figure.



La bonne solution est toujours celle dont le rapport avantages/inconvénients est le meilleur en fonction de l’application souhaitée.



Autant on peut comprendre qu’on veuille utiliser du bound checking dans un navigateur web, autant un jeu vidéo solo n’a pas de raisons de l’utiliser car il ne pose pas spécialement de problème de sécurité.



Entre les deux, il y a quantité de cas. Par exemple, une base de données à haute performance n’a pas de raison de ralentir ses mécanismes internes avec du bound checking. Dans tous les cas, les requêtes qui lui sont adressées doivent être correctement filtrées. Avant l’exploit mémoire, c’est bien l’injection SQL qui est le risque principal. Et dans les services qui comptent des millions de serveurs, 5% de performances en moins peut représenter un surcout qui se chiffre en millions.



Bref, les problématiques de sécurité sont loin d’être l’unique préoccupation des programmeurs.





Attention, je ne dis pas que ces technologies sont mauvaises, bien au contraire. Mais il ne faut les voir que comme ce qu’elles sont, une réduction du risque d’exploitation, pas une solution au problème.

D’ailleurs Rust peut les utiliser pour l’imiter les risques liés aux blocs “unsafe”, ou à du code externe en C.





Mais paradoxalement, c’est vrai aussi pour le bound checking.



Car le bound checking ne supprime pas pour autant toute forme d’erreur mémoire. Par exemple, un bug sur le calcul d’un d’index peut aboutir à renvoyer les informations personnelles d’une autre personne sans pour autant être détectée par le bound checking. Elle ne peut être détectée qu’en cas de dépassement des bornes du tableau.



Ensuite, cette mesure ne s’attaque qu’aux failles provenant d’erreurs mémoires. Mais il y existe bien d’autres types de failles.



Bref, ce n’est pas parce qu’on utilisera du bound checking qu’on obtiendra pour autant des programmes sans failles.





Je ne parlais que du C qui, s’il a certes un peu évolué, a au fond assez peu changé. C’est vrai que le contrôle des types des paramètres de fonction ont apportés beaucoup, mais sans changer vraiment le langage.





Je suis d’accord. Mais au fond, l’évolution du C s’est fait par la création d’autres langages, dont le C++.

 



Le C++ par contre a en effet énormément évolué. Même un peu trop au point au l’empilement de nouveauté qui veulent changer la façon même d’aborder le langage, mais ne peuvent pas vraiment totalement renier les anciennes façon de faire, fait que le langage est inutilement complexe.





Le C/C++ ne sera certainement pas le langage de bas niveau ultime.



Cependant, malgré le fait que les langages qui ont fait mieux sur beaucoup de point sont légion, je trouve qu’aucun n’a réussi à conserver son équilibre extraordinaire entre rigueur, souplesse, performance et possibilités.

 



Un des avantages de Rust et de ne pas encore trop souffrir de son historique. Mais il est vrai que cet argument ne sera certainement plus valable s’il arrive a atteindre l’age du C++.





En même temps c’est aussi ce qui a fait de C/C++ un langage bien “poli par le temps”.



L’évolution s’est faite progressivement avec la volonté d’apporter des choses au programmeur tout en évitant d’apporter des inconvénients ou de réduire la souplesse.


Le 17/07/2016 à 17h 09







Uther a écrit :



Entierement d’accord! En bas niveau il est important de pouvoir gerer la memoire comme on le souhaite et c’est justement, ce qui fait un des interet de Rust par rapport aux langages managés. On est libre de gerer la mémoire comme on le souhaite.

Et on peut tout a fait avoir plusieurs allocateur de memoire differents.







Et bien c’est justement pour cela que je pense que Rust a une belle carte à jouer par rapport aux langages managés.



Il en a le principal avantage sans en avoir les inconvénients.





Bref tu viens de citer tous les avantages de Rust qui au lieu de rajouter plus ou moins bien ces concept par dessus le langage, les integre dans le langage en garantissant par defaut leur bon usage.





Paradoxalement, le fait que dans C/C++ beaucoup de choses soient implémentées “par dessus le langage” plutôt qu’“intégrées” c’est justement ce qui plait aux programmeurs et donne beaucoup de souplesse à ce langage.



Le fait de vouloir garantir le bon usage n’a jamais été une priorité en C/C++. L’esprit de ce langage, c’est justement “tu est compétent, tu est sensé savoir ce que tu fais”. Et certains programmeurs aiment cela.



On peut remarquer que la plupart des langages qui ont évolué à partir de C/C++ ont voulu proposer, soit des choses mieux intégrées, soit un meilleur encadrement pour éviter les bêtises. Ces langages ont trouvé leur marché, mais ils se sont éloignés de l’esprit de C/C++.





Si tu regardes le detail tu veras que Rust fait aussi bien voire mieux que C++ dans la plupart des tests. ceux dans lesquel il est derière, c’est lie au SIMD qui n’est pas encore bien supporté par Rust, mais il travaillent dessus.

Rien a voir avec les Bound Chech.





La question qu’on pourrait se poser, c’est pour quelle raison un langage comme Rust serait plus rapide que C/C++. Et cela d’autant que Rust utilise une partie de la chaine de compilation de LLVM. Ce n’est pas en ajoutant du Bound Checking (donc en ajoutant des instructions à exécuter) que l’on améliorer la vitesse d’un langage.



Effectivement, en regardant un peu le code, on s’aperçoit que ces benchmarks s’éloignent trop d’un test pur du langage donc reviennent à tester des fonctionnalités annexes (comme OpenMP).



Le problème, c’est qu’il n’y a pas énormément de tests de Rust. Et d’une manière generale, comparer les performances de deux langages demande d’y passer beaucoup de temps.



Par exemple, le C/C++ n’est pas qu’un langage orienté vers les performances. Parmi les dizaines d’options de compilation, certaines fonctionnalités de haut niveau ont un impact sur les performances. Il faut également bien savoir utiliser le langage lui même et le rôle de certains mots clés.





Pourtant ce n’est clairement pas le but de Rust de concurrencer Java et C#. C’est plutôt le domaire du Langage Go.





Que la communauté suggère des orientations plus pertinentes que le but que s’étaient fixé les créateurs, c’est une chose relativement courante.





Rust vise clairement les programmeurs qui veulent controler le bas niveau.





J’ai le sentiment que les créateurs de Rust n’ont pas vraiment mené de véritable étude de marché pour comprendre les domaines d’applications de C/C++.



Par exemple, dans l’embarqué avec des petits microcontrôleurs qui ne sont pas superscalaires, l’overhead du “bound checking” est bien plus élevé que sur des gros CPU.



Avec des architectures parfois bizarres, la souplesse d’adaptation du C est une grande force.





En C++ aussi, il faut verifier qu’on ne fait pas de depassement si on ne veut pas creer de bug. La seule difference c’est qu’il faut l’inserer manuelement, la ou en Rust il faut l’enlever s’il s’avere qu’il est inutile.

Bref la difference, c’est que si le programmeur fait mal son boulot en Rust on a un risque de perte de performance, alors qu’en C++, on a un risque de bug, voire de faille de securité.





C’est tout à fait cela.



Mais il existe des problématiques ou les performances sont primordiales et d’autres sur lesquels c’est la sécurité qui doit primer.



Et le bound checking systématique n’est pas pour autant impossible en C++. Rien n’empêche de créer une hierarchie d’objets qui dépendra d’une classe d’accès unique. On peut centraliser le bound checking de l’ensemble de l’application sur une seule ligne de code.



Une technique qui est souvent utilisée en C/C++ par les bons programmeurs, c’est d’utiliser la compilation conditionnelle pour truffer son code de vérifications de cohérence. Cela dépasse d’ailleurs le simple bound checking puisque l’on peut vérifier la cohérence des données et bien d’autres choses.



Une fois vérifié que le code tourne sans bug, on peut désactiver ces tests en basculant une simple option et rendre ainsi son programme plus performant.





Bref tout comme en Rust sauf que tout cela est bien integré au langage pour que leur utilidation soit la façon de faire par defaut et pas mis par dessus avec le risque d’oublier ou de mal les utiliser.





La voie de C/C++, c’est justement qu’on aime avoir une séparation entre le langage et les concepts. En fait, dans ce langage, il n’y a pas grand chose qui soit complètement intégré. Et c’est ce qui fait sa force.



Le risque d’oublier ou de mal utiliser ? Dans une grande équipe avec un turn over de fou, c’est possible.



Mais je n’ai jamais vu ce genre de souci avec une équipe de développement sérieuse et stable.





De plus, toi qui semble temps aimer les performance tu dois bien savoir qu’un smart pointer, n’est pas gratuit non plus : il a un coup en cycle. Le systeme de detection des lifetimes de Rust permet de garantir la securité sans surcout dans pas mal de cas sans utiliser de smart pointer.





Pas forcément. Ca dépends comment tu les implémentes.



Par exemple rien ne t’empêche de séparer la gestion de la durée de vie d’un objet de son pointeur d’usage.





En effet, mais pas que. Même les bons programmeurs ne sont pas infaillibles. Mozilla ne sont pas des debutants dans le domaine de la securite, pourtant ils ont senti le besoin de developper Rust.





Un navigateur Web est par nature une application extrêmement sensible en matière de sécurité. Les préoccupations de Mozilla sont donc assez compréhensibles.



Il faut comprendre que des programmeurs travaillant dans des domaines différents peuvent avoir des préoccupations complètement opposées.



Des avis opposés ne signifient pas forcément que quelqu’un a tort.





C’est difficilement comparable, on ne met pas les memes moyens de contole dans les deux cas. Si on elevait la securité web a PHP, je pense que ca serait encore pire.





Tout à fait.



Ce qui démontre que la sécurité apporté par le bound checking n’est qu’un élément parmi bien d’autres.





Et puis le PHP comme le C dans le domaine du bas niveau est lui aussi un langage pas pensé du tout a la base pour la securite web auquel on rajoute des framework par dessus pour essayer de limiter les risque





Ce que je voulais démontrer, c’est que le bound checking ne fait pas tout. On peut avoir des failles de sécurité énorme malgré l’usage d’un langage “memory safe”. Le fait de porter attention à la qualité du code apporte bien plus de sécurité que tout autre considérations.



Bien sûr, un logiciel critique en matière de sécurité peut vouloir mettre toutes les chances de son côté et combiner toutes les logiques possible pour y arriver. Mais il faut garder à l’esprit que toute spécialisation extrême se paye toujours d’une façon ou d’une autre par des inconvénients. On comprends aisément qu’une bonne Formule 1 ne pourra jamais être en même temps un bon véhicule de transport des marchandise.





Ils sont plus exposes certes mais ont aussi plus de moyens dedies.

La securite memoire ce n’est pas juste des risques de failles mais aussi des bugs pas evident a detecter. Bref c’est aussi potentielement du temps de dev gagne, ce qui peux interesser plus que les gens interessés par la securite





Il fut une époque lointaine ou les pointeurs fou étaient la bête noir de tout programmeur en C…



Mais aujourd’hui, il existe de très bons utilitaires qui permettent de détecter très facilement ces problèmes.





C’est toujours bon a prendre, maos ces solutions ne font que limiter le risque d’exploitation du bug mais ne les empechent pas.





Si on a des failles théoriques mais qu’au fond il est difficile d’en tirer quelque chose en pratique, ou est le problème ?





Le C est au contraire le modele du langage qui a très peu evolué, au vu de son grand age.





Pour avoir programmé en C il y a plusieurs décennies, le C/C++ moderne n’a plus grand chose à voir. A l’époque des compilateurs ne vérifiaient même pas les arguments d’un appel de fonction. Tu te trompait, ça plantait, voir pire.



Mais évidement, l’esprit du langage, lui n’a jamais changé…





Il a surtout reussi car il n’a pas trop eu de concurence en langages de bas niveau, ce qui lui a permi de devenir la reference.





C’est vrai. Et d’ailleurs on ne peut que regretter ce manque de concurrence.



Mais cela s’explique par le fait que si les nouveaux langages prétendant améliorer C n’ont pas manqué, ils n’ont jamais su conserver ce qui faisait l’esprit de C. Du coup, ce langage a toujours conservé son intérêt.



Rust semble s’en éloigner un peu moins que Java ou C#, mais il s’en éloigne quand même.



Je pense que le langage qui pourra prétendre à remplacer C/C++ n’est pas encore né.





Consulte les bulletins de securité des grands logiciels, tu veras que les failles liées a la memoire sont légion et se ne sont certainement pas des debutants.





Parce que la vérité, c’est que le fait de trouver de temps à autre un bug liée à la mémoire n’empêche personne de dormir.



Tous les logiciels n’ont pas non plus des implications fortes en terme de sécurité.


Le 15/07/2016 à 11h 46







cheme_ a écrit :



Je me suis mis sérieusement à rust depuis un peu plus d’une année, et le positionnement pris par rust est bien la niche C/C++, je dirais que rust se positionne plus au niveau du C (le modèle est déliberement simple pour permettre d’être à un niveau de perf le plus bas possible et n’avoir que des abstractions coût 0  et un minimum de surprises (un modèle objet n’est pas franchement envisagé)). Il suffit de jeter un coût d’œil aux api pour s’en persouader.

 

La transition vers rust est bien plus aisée pour des personnes venant du C ou ayant eu à faire à des problématiques bas niveau, la conception (et des limitations associés) du language pouvant paraitre assez obscure sinon.



Utiliser rust dans des cas d’utilisation similaire à java/c# serait une abération, autant faire du Go…







Point de vue intéressant et surtout défendu avec de bons arguments.



Reste que IMHO il y a quand même des différences philosophiques importantes entre les deux langages. Mais après tout, c’est aussi cette différence qui fait l’intérêt d’avoir des langages différents.



Si je le compare à Java ou C#, c’est parce que comme eux, Rust a fait le choix de sécuriser les accès mémoire. Mais il est clair que Rust adopte une partie de la philosophie du C/C++ et que c’est un gros avantage par rapport à Java et C#.



Maintenant, la question qu’il faut se poser, c’est pourquoi un programmeur voudrait utiliser C/C++ aujourd’hui. La réponse est bien souvent parce qu’on veut le maximum de performances.



Rust est peut être aujourd’hui le meilleur compromis entre les performances de C/C++ et la sécurité de C#. Je trouve cela indéniablement intéressant.



Mais la question qu’on peut se poser, c’est de savoir s’il vaut mieux le présenter comme un langage plus sécurisé que C/C++ ou comme un langage plus rapide que C#. Pour ma part, je préfère la deuxième solution.



Je précise que c’est un point de vue qui ne se base pas sur la technique, mais sur ce que j’estime être la meilleure stratégie de com.



Je pense que c’est une erreur de présenter la communication par rapport à C++. Parce qu’en procédant ainsi, le risque est de se confronter frontalement à cette partie de la communauté C/C++ qui est (1) obsédée par les performances, (2) extrêmement conservatrice, (3) très influente.


Le 15/07/2016 à 04h 50







Uther a écrit :



Au risque de me répéter. Non, non et re non. Tu réduis le problème de la sécurité mémoire au contrôle de dépassement, c’est bien plus que cela.

Le dépassement de tampon n’est qu’un des problèmes de sécurité mémoires. D’autre problèmes comme la double libération ou l’utilisation après libération sont au moins aussi importants.



L’élément de la sécurité mémoire qui pose le plus de problème au utilisateurs de C/C++, ce n’est absolument pas les contrôles de dépassement, mais les mécanismes de gestion de la mémoire imposés.  Leur principal problème avec les langages managés, c’est qu’ils imposent généralement des systèmes qui échappent à leur contrôle comme un GC traçant, ce qui a de gros impacts sur les performances et la consommation des ressources.



    Le gros avantage de Rust par rapport aux autres langages memory safe, c’est qu’il n’est pas “managé”. La gestion de la mémoire est totalement libre, il impose juste des règles vérifiées au moment de la compilation (que là encore on peu ignorer via bloc unsafe) pour garantir qu’on n’utilise jamais de la mémoire non encore allouée ou libérée.







La vérité, c’est qu’il n’existe pas de manière parfaitement idéale et unique de gérer la mémoire. Il existe différentes méthodes qui ont toutes leurs avantages et des inconvénients. Et donc qui conviennent plus ou moins bien suivant le contexte.



La encore, la philosophie de C/C++ n’est pas de vouloir proposer la meilleure méthode, mais de permettre la plus grande souplesse d’implémentation du gestionnaire mémoire de son choix.



En C/C++ il n’est pas rare qu’un programme optimisé embarque plusieurs gestionnaires mémoires différents en fonction de la stratégie la meilleure pour différents types d’objets.





Le dépassement de tampon n’est qu’un des problèmes de sécurité mémoires. D’autre problèmes comme la double libération ou l’utilisation après libération sont au moins aussi importants.





Ce ne sont pas des problèmes pour de vrais programmeurs C/C++ compétents.



D’abord, il y a d’excellents outils pour tracer facilement les problèmes d’allocations.



Mais surtout, il y a des stratégies de programmation qui permettent de les éviter d’emblée.



Exemple parmi d’autres :http://loic-joly.developpez.com/tutoriels/cpp/smart-pointers/



Mais aussi :fr.wikipedia.org WikipediaLe bound checking n’est certainement pas aussi coûteux que ça a mois que

tu fasses des calculs particuliers, dans ce cas il est facile de les

éviter localement sur les points chaud. L’expérience prouve que la la différence de vitesse entre du C++ bien écrit et

du Rust bien écrit est globalement négligeable, ce qui n’est pas le cas avec

les langages managés.





https://benchmarksgame.alioth.debian.org/u64q/rust.html





Si tu rajoutes le contrôle de dépassement au C tu obtiens le Checked C. qui est loin d’être aussi sûr que le Rust et qui n’offre aucune fonctionnalité de plus haut niveau.

Le Java ou le C# c’est bien plus que ça. Ils ajoutent énormément de fonctionnalités au prix d’une perte du contrôle de gestion mémoire.





Rust à peut être une belle carte à jouer face à Java ou C#.



En revanche, face à C/C++ je n’y crois pas. Trop de monde derrière le standard. Le langage évolue constamment. Il y a déjà eu de multiples tentatives…





On est d’accord que safe vs unsafe par défaut, c’est une philosophie différente, mais elle n’a que peut d’impact sur les performance finales.





Aller rencontrer des programmeurs C/C++ qui font du soft à haute performance. Vous comprendrez pourquoi vous ne leur vendrez jamais ce discours. Pour résumer rapidement, les cycles d’accès mémoire ne sont pas gratuit et il y a des cas de figure ou ça compte.



Sinon, c’est un très mauvais argument pour vendre Rust. Ca fait des années qu’il est utilisé par les fans de C# et même de Java. Personne ne l’écoutera.





La plupart des gens qui veulent du contrôle choisissent C++ non pas par choix mais par absence d’alternative.

Il faut voir que des langages qui offrent le contrôle complet du bas niveau mais qui

sont sûrs par défaut, ça court pas les rues. A la limite le Ada s’en

rapproche.





Ada n’a pas eu tellement de succès. Il a justement été victime du succès de C/C++…





Voila : le C++ est un langage parfaitement sur si on utilise des gens qui ne font pas d’erreur. Sauf que malheureusement ces gens la n’existent pas. Même les meilleurs programmeurs font des erreur de mémoire pour la bonne et simple raison que c’est facile d’en faire dans ce langage si on relâche son attention.





C’est une idée reçue.



En utilisant des classes validées pour la manipulation de la mémoire, la faute d’inattention provoquant une erreur de mémoire devient quasiment impossible, même en étant bourré.



Par ce moyen, il est possible d’écrire des milliers de lignes de code sans risquer le moindre problème.



Le problème de C/C++ n’est pas tellement le langage, mais le fait que beaucoup de jeunes programmeurs n’ont pas réellement appris comment l’utiliser correctement.



L’autre problème, c’est qu’il faut du temps pour se constituer une bibliothèque de qualité, mais c’est aussi une des raisons pour laquelle ses utilisateurs ne lâcheront pas facilement ce langage pour un autre.





Il faut comparer ce qui est comparable.Forcément, qu’on ne va pas avoir d’attaque par dépassement de tampon sur un site web vu que 99% des langages utilisés pour ça sont protégés contre ça.

 Je serais curieux de connaître les chiffres si ça n’était pas le cas.





Nous avons déjà la réponse…



Un serveur moyen, c’est des millions de lignes de code en C pour quelques milliers de lignes de PHP.



Comme par hasard, les attaques sont plutôt du coté de la minorité de code en PHP…





Par contre, au niveau des attaques sur les applications, l’erreur mémoire est toujours une valeur sure et elle est partie pour le rester un moment encore. On en trouve des dizaines par an sur tous les navigateurs et c’est pas comme si on découvraient le problème.



C’est beau de rêver. Tant qu’on introduira du nouveau code, on introduira de nouveaux bugs, d’autant plus si on a pas d’aide à les prévenir.





Les navigateurs sont un cas particulier. D’abord, ils sont par essence extrêmement exposés. Ensuite, le fait que leur code doit évoluer en permanence pour suivre l’évolution rapide des standard n’aide pas du tout à le stabiliser.



Le fait d’utiliser un langage sécurisé est un choix qui peut se tenir.



Mais une autre option est d’utiliser un style de programmation adapté.



Les deux solutions ont leurs avantages et inconvénients.





Justement Rust est issu d’un de ces effort de R&D fait par Mozilla pour apporter de la sécurité au code natif.

Contrairement à ce que tu crois Rust est bien un langage natif, performant qui permet de contrôler ce qui se passe à bas niveau et absolument pas managé comme comme le sont Java, C# ou même Go.





La solution du bound checking est plutôt une recette ancienne.



La R&D dont je parlait vise justement à améliorer la sécurité du code sans recourir au bound checking.



Ainsi, ces dernières années, on a vu des solutions comme le DEP ou ASLR, les protections de pile.



L’un des nouveaux axe vers lequel tends le développement, c’est d’isoler des portions de code grâce au matériel.





Les programmeurs ont principalement utilisés le C car parmi les langages qui offre un très bon contrôle de bas niveau (pointeurs, allocation mémoire manuelle, …), c’est le plus reconnu. Le C avec bound check n’existe justement pas, ce n’est pas pour rien si Microsoft est en train de le créer(Checked C)

 

La plupart des langages qui contrôlent les dépassement ne sont pas des langages de bas niveau.





Est ce réellement une bonne idée de multiplier les langages alors que ces fonctionnalités sont déjà possible en C++ compte tenue de l’énorme souplesse de ce langage ?





Le C avec bound check n’existe justement pas, ce n’est pas pour rien si Microsoft est en train de le créer





Si d’aventure cela avait le moindre succès, cela sera vraisemblablement repris dans l’évolution du standard C++.



Le C a survécu a travers les ages grâce à sa capacité d’évolution.





Tu pose ça en dilemme cornélien que le but de Rust est justement de ne pas tomber dans cette approche.

 L’intérêt de Rust est justement que pour atteindre la sécurité, il ne retire pas la gestion mémoire du contrôle de l’utilisateur, mais l’oblige a prêter attention a l’usage qu’il en fait.



Rust est à la fois plus sur que Java et C# et offre des performance comparables au C++.



Le point négatif de Rust se situerait plus sur un troisième axe décorrélé de ces deux qui serait la complexité, car l’utilisateur doit prouver au compilateur que son code est sur.

 



Malheureusement, c’est un point qui risque de ne pas plaire du tout aux programmeurs C/C++.



Les programmeurs C/C++ sont des programmeurs expérimentés qui s’agacent très rapidement quand il faut “négocier” avec un compilateur. C’est d’ailleurs une des raisons pour laquelle ils apprécient particulièrement ce langage.





Une dernière fois, Rust laisse tout le contrôle que l’on veut. Toutes ces “restrictions” peuvent être levées.

Le point important, c’est qu’on ne fait rien de “unsafe” sans s’en rendre compte alors qu’en C++, presque tout peut potentiellement partir en cacahuète, ce qui fait qu’au bout d’un moment même les meilleurs programmeurs (ce qui est déjà une denrée rare) se font avoir.





Pas d’accord.



C’était facile de faire de l’unsafe dans le C façon ancienne.



En C++, la bonne pratique pour sécuriser son code, c’est d’encapsuler tout ce qui est “unsafe” dans des fonctions qui vont pouvoir être manipulées ensuite de manière bien sécurisée. Dans ce cadre, les chance qu’un programmeur raisonnablement compétent écrive du code unsafe sont nulles.



Au passage, je n’ai encore jamais vu un code C/C++ partir en live dans les mains d’un programmeur compétent et dans un cadre de travail sérieux.



Dans les SS2I qui prennent les programmeurs pour du papier toilette, c’est une autre histoire. <img data-src=" />


Le 18/07/2016 à 14h 57







gvaudan a écrit :



même s’il est vieux, il n’a pas forcement tort.

Outre qu’il y a effectivement un forçage évident qui tend a l’autoritarisme comme beaucoup d’autres sujets ces derniers mois,









Le problème, c’est qu’en France on ne touche à rien pendant des décennies, on ne forme pas les gens à l’informatique.



Et puis tout d’un coup, on se réveille un beau matin avec des gens qui veulent tout changer d’un coup du jour au lendemain de manière autoritaire.



Il est évident qu’avec le numérique qui arrive, on est obligé de faire un choix pour ne pas avoir à multiplier les coûts. Mais il aurait fallu préparer tout cela depuis des années.


Le 18/07/2016 à 13h 45







SmoKe42 a écrit :



Le titre est un peu putaclique… :/



L’intention du  sénateur me semble bonne.  Et il n’y a pas que les vieux qui ont un soucis avec l’informatique et internet… C’est le cas de beaucoup de jeune, ou “entre-deux” qui ne maîtrisent pas l’outil.. Bref, pour moi on doit obliger au résultat, pas au moyen. C’est-à-dire que l’on doit déclarer ses impots, avec le moyen qui nous convient le mieux.







C’est une idée louable, le problème, c’est que de maintenir simultanément plusieurs logiques, ça coûte un maximum d’argent.



Nous allons vers une société du numérique. Autant utiliser plutôt l’argent pour financer des cours.



Les jeunes qui ne maîtrisent pas l’outil informatique, c’est comme une nouvelle forme d’analphabétisme.