Introduction de 30 minutes au langage Rust. (Un meilleur C)

Page 1 sur 4 1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Lun 9 Mar 2015 - 23:23

https://doc.rust-lang.org/intro.html


Exemple de problème du langage C a écrit:
All good? Let's go over a similar, but subtly different example, in C++:

Code:
#include<iostream>
#include<vector>
#include<string>

int main() {
    std::vector<std::string> v;

    v.push_back("Hello");

    std::string& x = v[0];

    v.push_back("world");

    std::cout << x;
}
It's a little more verbose due to the static typing, but it's almost the same thing. We make a std::vector of std::strings, we call push_back (same as push) on it, take a reference to the first element of the vector, call push_back again, and then print out the reference.

There's two big differences here: one, they're not exactly the same thing, and two...

$ g++ hello.cpp -Wall -Werror
$ ./a.out
Segmentation fault (core dumped)
A crash! (Note that this is actually system-dependent. Because referring to an invalid reference is undefined behavior, the compiler can do anything, including the right thing!) Even though we compiled with flags to give us as many warnings as possible, and to treat those warnings as errors, we got no errors. When we ran the program, it crashed.



Dernière édition par Stauk le Sam 4 Avr 2015 - 15:41, édité 1 fois

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Pieyre le Mar 10 Mar 2015 - 0:03

Je n'ai jamais réussi à accepter le langage C. Et pourtant je l'ai enseigné.
Le typage y est incohérent, les raccourcis de langage le rendent difficile à comprendre. Enfin, c'est comme de l'anglais comparé à des langues plus logiques.

En programmation, il est rare qu'on ait vraiment besoin de coller aux ressources système. Aussi en général je crois que des langages logiques, tels Caml ou Haskell, sont beaucoup plus prometteurs.

Pieyre
Maître es rayures
Maître es rayures

Messages : 15268
Date d'inscription : 17/03/2012
Localisation : Quartier Latin

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Hugues le Mar 10 Mar 2015 - 1:24

Il faudrait un language qui a a la fois est capable d'executer de très petites taches codé sur mesure et a côté faire appel a de multiples fonctions complexes intégré au language.

Ca pourrait permettre d'allier simplicité du codage et performances extreme du code juste la ou il faut.

En gros mélanger la PDO la plus complète mais tout en étant capable de coder en language processeur, sans avoir besoin de faire de modifications particulière au niveau de la compilation.

Hugues
Zèbre fidèle
Zèbre fidèle

Messages : 266
Date d'inscription : 25/08/2014
Age : 24

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Mar 10 Mar 2015 - 10:57

@Pieyre : Je me pose une question ... vous avez lu un peu de quoi il s'agit (le langage rust), ou vous répondez au hasard ??

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 21 Mar 2015 - 21:02

https://stackoverflow.com/questions/29184358/requiring-implementation-of-mul-in-generic-function

Code:

fn cube<T>(x: T) -> T
    where T: Mul<Output=T> + Copy
{
    x * x * x
}

Une fonction qui demande d'avoir surchargé la multiplication ainsi que "copy" (duplication) au sein d'un type passé en paramètre. La copy est indispensable ici du fait des mécanisme particulier du langage.

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Invité le Ven 27 Mar 2015 - 21:07

Complètement illisible pour moi le Rust et sans réel intérêt.

(oui il s'occupe d'eviter que les mauvais programmeurs fassent n'importe quoi, mais les mauvais programmeurs font du php pas du C/C++)

Invité
Invité


Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Petitagore le Ven 27 Mar 2015 - 23:35

Aucun langage ne sera jamais assez bon pour donner miraculeusement du talent à un mauvais programmeur, ni assez mauvais pour empêcher un bon programmeur de construire des programmes fonctionnels (il pourra le forcer à pousser de gros soupirs et à perdre beaucoup de temps sur des tâches basiques, mais c'est tout).

Scoop: les mauvais programmeurs parviennent à faire des cochonneries truffées de bugs avec tous les langages, et les bons programmeurs à faire des trucs qui fonctionnent avec tous les langages -- même les plus atrocement mauvais (il y en a -- mais il y a surtout des groupies d'un langage qui croient malin de dénigrer tous ceux dont ils ne savent pas se servir). On appelle ça le Turing-complete, c'est quand même un petit peu à la base de l'art de programmer depuis que l'informatique existe, de sorte que je suis toujours sidéré qu'il y ait des programmeurs professionnels qui discourent comme s'ils l'ignoraient et prétendent que tant qu'on ne travaille pas avec Chose on est nul et qu'il suffit de travailler avec Bidule pour être nul.

Il y a sans doute des langages meilleurs que d'autres. Mais il y a surtout des langages plus adaptés que d'autres à certaines tâches, certains besoins, certaines façons de travailler, et il n'existe pas, il ne pourra jamais exister, de langage qui possède toutes les qualités de tous les autres langages (quand ce ne serait que parce qu'on ne peut pas à la fois être innovant -- c'est une qualité -- et connu de tout le monde -- c'est aussi une qualité). Là encore, ce que je dis est complètement élémentaire, et il faut vraiment n'avoir jamais touché à plus d'un langage de programmation pour en douter.

Il faut aussi prendre en compte des réalités déplaisantes: il y a de très bons langages que personne n'utilise (en tout cas à un instant t) et dont la communauté est (encore) inexistante -- et auxquels on peut donc légitimement préférer des langages médiocres et prétendument dépassés qui ont le tort capital... de tourner sur un peu tout ce qui se présente depuis des décennies, et pour l'étude desquels on trouve très facilement des gens disposés à vous donner des coups de main, des ouvrages d'initiation de bonne qualité, des tonnes de librairies disponibles, etc. Un langage, c'est aussi et peut-être même d'abord une communauté, et les qualités du langage ne peuvent guère compenser la minceur d'une communauté quand ce n'est pas carrément son inexistence.

Cela dit, peut-être que Rust c'est très bien et que sa communauté est hyper-dynamique, je ne demande qu'à le croire -- mais franchement, ce ne serait pas la première fois que j'entendrais ce genre de promesses électorales pour des langages voués à tomber dans l'oubli deux ou trois ans à peine après être sortis de l'anonymat. Je souhaite donc à Rust plus de succès qu'à Go (par exemple), qu'à OCaml, qu'à Haskell, qu'à Scala, qu'à Ruby ou même Ada. A vrai dire, depuis une trentaine d'années que je m'intéresse à la programmation, le seul langage que j'aie vu présenté comme innovant à sa sortie et qui ne se soit pas cantonné à un rôle au mieux marginal... c'est Java. Or franchement, dans le lot, c'est de très loin celui qui m'enthousiasmait le moins.

Les langages C et C++ sont de vieilles cochonneries, c'est vrai -- mais ces vieilles cochonneries sont assez vieilles pour avoir donné naissance à des tas d'outils fonctionnels, à des tonnes de librairies (libres, en plus), à des tonnes de bouquins et de documentation libre en toutes les langues de la planète, et quand on veut les apprendre on trouve très facilement des copains qui ne demandent pas mieux qu'à vous aider à les maîtriser -- ce qui, ô surprise, est non seulement possible mais même pas particulièrement difficile. En comparaison de ça, les langages tout nouveaux tout beaux... ça peut être intéressant, ça peut même être enthousiasmant, mais ça reste très casse-gueule et d'un avenir incertain.


Dernière édition par Petitagore le Ven 27 Mar 2015 - 23:37, édité 1 fois (Raison : coquille)

Petitagore
Zébré et vacciné
Zébré et vacciné

Messages : 2708
Date d'inscription : 29/11/2011
Age : 56
Localisation : Ile-de-France

http://triancey.blogspot.com

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Ven 3 Avr 2015 - 20:21


Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Ven 3 Avr 2015 - 21:06

Servo : Le rendu de Mozilla écrit en Rust

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Petitagore le Sam 4 Avr 2015 - 0:58

Je n'ai encore regardé que le premier quart d'heure de la vidéo. J'espère trouver le courage de regarder le reste, même si le gars parle horriblement vite et articule mal.

Les idées d'ownership et de borrowing m'ont l'air originales et pas du tout sottes, même si, faute d'habitude sans doute, j'ai un peu l'impression qu'on me donne tous les moyens de gérer proprement des situations dans lesquelles je n'aurais jamais eu l'idée de me placer auparavant!

Mais ça, ce n'est rien. Ce qui me gêne beaucoup plus, c'est que le conférencier justifie l'emploi de ces techniques déconcertantes par le fait que ça évite des "common mistakes" que l'on est supposé faire en C et C++. Je ne voudrais pas être méchant, mais un programmeur C/C++ qui commettrait couramment, et même rarement, de telles erreurs, serait de toute évidence un très mauvais programmeur car il est flagrant que ces pratiques dénoncées sont fautives et mènent à des plantages, et qu'il ne faut jamais écrire de telles horreurs; même un débutant doit le savoir. Certes, un compilateur C/C++ n'alerterait pas forcément en cas d'emploi de ces techniques aberrantes, mais ce n'est pas vraiment son rôle que de signaler aux incompétents qu'ils s'y prennent comme des manches.

"Mon langage est tellement bon que même si vous êtes nul vous arriverez à vous en servir" est à mes yeux un très mauvais argument, pour tout un tas de raisons: 1) si tu y tiens vraiment je veux bien croire que tu ne sais pas te servir de C/C++, coco, mais t'es gentil, tu évites de présumer que je suis nécessairement aussi incompétent que toi; 2) si j'étais incompétent je chercherais à m'améliorer, pas à trouver de nouveaux outils me permettant de troquer une incompétence contre une autre; 3) (je l'ai déjà dit dans un post précédent) ce n'est pas un langage qui me donnerait du talent si je n'en avais pas; si j'étais mauvais en C/C++, je resterais mauvais en Rust ou n'importe quoi d'autre, simplement il me faudrait peut-être plus de temps pour en prendre conscience...

Je serais nettement plus sensible à des arguments du genre "si vous savez faire ça proprement en C, vous savez aussi à quel point c'est galère de le faire proprement, et donc vous serez enchanté que ce soit cinquante fois plus facile en Rust". Mais c'est déjà à peu près comme ça qu'on m'a convaincu d'essayer Java et ça ne m'a pas empêché d'y identifier ensuite des tonnes de lourdeurs que je ne rencontrais pas en C... auquel j'ai donc fini par revenir tellement je le trouve moins bavard et bureaucratique. Ne pas oublier que quand on veut corriger un défaut, il faut se demander si la correction elle-même est exempte de défauts...

Cela dit, Rust commence à titiller ma curiosité. Very Happy

Petitagore
Zébré et vacciné
Zébré et vacciné

Messages : 2708
Date d'inscription : 29/11/2011
Age : 56
Localisation : Ile-de-France

http://triancey.blogspot.com

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 4 Avr 2015 - 9:28

Petitagore a écrit:
Mais ça, ce n'est rien. Ce qui me gêne beaucoup plus, c'est que le conférencier justifie l'emploi de ces techniques déconcertantes par le fait que ça évite des "common mistakes" que l'on est supposé faire en C et C++. Je ne voudrais pas être méchant, mais un programmeur C/C++ qui commettrait couramment, et même rarement, de telles erreurs, serait de toute évidence un très mauvais programmeur car il est flagrant que ces pratiques dénoncées sont fautives et mènent à des plantages, et qu'il ne faut jamais écrire de telles horreurs; même un débutant doit le savoir. Certes, un compilateur C/C++ n'alerterait pas forcément en cas d'emploi de ces techniques aberrantes, mais ce n'est pas vraiment son rôle que de signaler aux incompétents qu'ils s'y prennent comme des manches.

Objectivement je n'ai jamais été très doué pour la programmation (comparé aux gourous). Mais ce besoin d'éviter les commons mistake, on est nombreux à l'avoir. Des qu'a t'a écrit plus d'un million de lignes de code dans ta vie, tu te prends d'une envie irrépressible d'éviter automatiquement les Commons mistake. Come one !  L'ennui de ces commons mistake, c'est qu'il suffit d'une faire une seule erreur sur un million de lignes (et des fois tu n'écris pas tout seul les un million de lignes !) pour que ça soit vraiment la merde : tu te retrouves avec un bug aléatoire, très difficile à reproduire et à documenter, identifier etc. Ou alors tu te retrouves avec une faille de sécurité monstrueuse.

L'autre force de Rust, c'est qu'il propose les facilités d'un langage moderne (pattern matching entre autres). Enfin je dis ça, je n'ai toujours rien écrit en rust ...

Naturellement pour les petits projet de moins de 10 000 lignes, C fonctionne assez bien. L'assembleur aussi.

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Petitagore le Sam 4 Avr 2015 - 9:53

Stauk a écrit:Mais ce besoin d'éviter les commons mistake, on est nombreux à l'avoir. Des qu'a t'a écrit plus d'un million de lignes de code dans ta vie, tu te prends d'une envie irrépressible d'éviter automatiquement les Commons mistake. Come one !

Si tu n'es pas pris d'une envie irrépressible d'éliminer les bugs dès ton tout premier bug, je pense que tu n'es pas fait pour la programmation. Very Happy

L'ennui de ces commons mistake, c'est qu'il suffit d'une faire une seule erreur sur un million de lignes (et des fois tu n'écris pas tout seul les un million de lignes !) pour que ça soit vraiment la merde : tu te retrouves avec un bug aléatoire, très difficile à reproduire et à documenter, identifier etc. Ou alors tu te retrouves avec une faille de sécurité monstrueuse.

Ça c'est vrai. Mais c'est tellement vrai et vrai depuis tellement longtemps que l'argument a déjà servi pour justifier le passage à des dizaines de langages tous plus ultra-minoritaires les uns que les autres. Des groupies d'Ada me l'ont encore servi il y a moins de six mois... or Ada, qui a plus de trente ans, est toujours cantonné dans une niche et ne me paraît vraiment pas parti pour en sortir.

Il y a un langage (que je n'aime pas du tout) qui a réussi à percer sur la promesse d'éliminer les fuites de mémoire et les erreurs de pointeur: c'est Java. Java est très chiant et bureaucratique, mais il marche. Si on se place sur le même créneau, le vrai bon argument serait d'expliquer pourquoi on est moins chiant et bureaucratique que Java. C'est comme ça qu'on a réussi à m'intéresser à Haskell, par exemple. Peut-être que Rust va réussir à me faire le même effet, mais jusqu'ici ça ne me paraît pas flagrant.

Naturellement pour les petits projet de moins de 10 000 lignes, C fonctionne assez bien. L'assembleur aussi.

Tut tut tut, quand on commence à employer les arguments de basse polémique, c'est le signe qu'on n'en a pas beaucoup de bons en réserve...

Petitagore
Zébré et vacciné
Zébré et vacciné

Messages : 2708
Date d'inscription : 29/11/2011
Age : 56
Localisation : Ile-de-France

http://triancey.blogspot.com

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 4 Avr 2015 - 14:33

Petitagore a écrit: Java est très chiant et bureaucratique, mais il marche.

Nan java ne fonctionne pas : le garbage collector vient t'emmerder en permanence. Après on pourrait réécrire l'ensemble des bibliothèques pour qu'elles deviennent garbage collector friendly. Mais ça ne semble pas plus réaliste que de passer directement à un autre langage. L'autre problème de Java, c'est que quand une fonction renvoie un résultat qui n'est pas un type de base, il faut passer par les références java.  Et finalement, le Java a le même problème que le C++ : c'est un langage ancien, qui est étendu doucement, et n'est donc pas très satisfaisant (java Cool tout en demandant pratiquement autant d'investissement que d'apprendre un nouveau langage.

Ada a été pas mal utilisé dans l'industrie. Il existait des offres d'emplois et tout.

Après oui, quand on tente un nouveau langage, y a toujours une part de risque qu'il reste confidentielle. La question est surtout de savoir si nous on a le besoin/ l'envie de l'utiliser, pour nos projets personnels. Et en ce qui concerne Rust, c'est le cas pour moi. Par ailleurs il se place d'emblée sur la même niche que le C++ et le c. Qui ont quand même bien besoin d'un petit coup de jeune (tabula rasa). Le Rust apporte les 20 ans d'expérience de la communauté entre le moment ou le C++ a commencé à bien prendre, et notre époque moderne.

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Petitagore le Sam 4 Avr 2015 - 15:20

Stauk a écrit:Nan java ne fonctionne pas : le garbage collector vient t'emmerder en permanence.

Il est possible que ça te gêne toi pour ce que tu fais toi (ça dépend peut-être aussi de ton style de programmation: quand on vient comme moi à Java avec déjà des habitudes de rigidité acquises en se battant contre C, je crois que le garbage collector n'a rien de déconcertant), mais personnellement je n'ai jamais eu à m'en plaindre (il est vrai que je n'ai jamais utilisé Java quand j'avais besoin que les choses aillent très vite... parce que dans ce cas-là je préférais travailler directement en C). En revanche, j'ai rarement réussi à écrire douze lignes de Java sans me dire que sa rigidité bureaucratique m'exaspérait.

L'autre problème de Java, c'est que quand une fonction renvoie un résultat qui n'est pas un type de base, il faut passer par les références java.

C'est une contrainte et en effet Java est très contraignant, mais je n'appellerais pas ça un problème: on peut trouver ça chiant, mais ça ne mériterait le nom de problème que si ça menait en droite ligne au plantage (dans cet esprit, on peut considérer que l'emploi des pointeurs en C/C++, lui, est bien un problème même si il ne faut pas confondre problème sérieux et problème ingérable).

Ada a été pas mal utilisé dans l'industrie. Il existait des offres d'emplois et tout.

Il y en a encore, mais ça a été et ça reste une niche (douillette, mais toute petite). Cela dit, je me serais volontiers mis à Ada si on m'avait payé pour ça! Je peux en dire autant pour Rust ou un peu n'importe quoi d'autre: c'est fou ce que j'accepte de faire quand on me paye (j'ai même mis mon nez dans du Fortran quand on m'a payé pour ça!). Mais quand c'est moi qui m'impose mes galères... ben je préfère embarquer sur des trucs moins marginaux.

La question est surtout de savoir si nous on a le besoin/ l'envie de l'utiliser, pour nos projets personnels. Et en ce qui concerne Rust, c'est le cas pour moi.

Et tu as ma bénédiction.  Very Happy N'hésite pas, d'ailleurs, à expliquer sur quoi tu travailles, on comprendra probablement mieux pourquoi ça te convient particulièrement. Je pourrais te dire des choses assez similaires à propos de Haskell, auquel je me suis intéressé non pas parce que j'en avais besoin mais parce que je le trouvais intellectuellement stimulant -- en revanche je ne suis pas sûr que je chercherais à y convertir même mon pire ennemi: trop de risques de charger mon karma en incitant le gars à dépenser beaucoup d'énergie sur un truc qui passera peut-être très vite de mode.

Par ailleurs il se place d'emblée sur la même niche que le C++ et le c. Qui ont quand même bien besoin d'un petit coup de jeune (tabula rasa). Le Rust apporte les 20 ans d'expérience de la communauté entre le moment ou le C++ a commencé à bien prendre, et notre époque moderne.

Tu fais un peu flèche de tout bois: on ne peut pas à la fois dire que le langage profite de vingt ans d'expérience (au point d'être couvert de rouille, d'où son nom) et prétendre qu'il fait table rase du passé. Rust s'inscrit dans une tradition, et même il le revendique, et c'est très bien, c'est assurément une qualité -- mais du coup c'est sans doute moins rajeunissant de s'y mettre que de changer complètement de paradigme. Passer d'un langage procédural à la C à un langage fonctionnel à la Haskell, ça, pour le coup, c'est vraiment faire table rase, perdre tous ses réflexes, les bons comme les mauvais. Je ne suis pas sûr que ce soit une qualité, d'ailleurs, mais si on aime les tables rases (pour le plaisir de se triturer les méninges), c'est plutôt dans ce genre de directions qu'il faut s'orienter.

Petitagore
Zébré et vacciné
Zébré et vacciné

Messages : 2708
Date d'inscription : 29/11/2011
Age : 56
Localisation : Ile-de-France

http://triancey.blogspot.com

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 4 Avr 2015 - 15:26

Petitagore a écrit:
Tu fais un peu flèche de tout bois: on ne peut pas à la fois dire que le langage profite de vingt ans d'expérience (au point d'être couvert de rouille, d'où son nom) et prétendre qu'il fait table rase du passé. Rust s'inscrit dans une tradition, et même il le revendique, et c'est très bien, c'est assurément une qualité -- mais du coup c'est sans doute moins rajeunissant de s'y mettre que de changer complètement de paradigme. Passer d'un langage procédural à la C à un langage fonctionnel à la Haskell, ça, pour le coup, c'est vraiment faire table rase, perdre tous ses réflexes, les bons comme les mauvais. Je ne suis pas sûr que ce soit une qualité, d'ailleurs, mais si on aime les tables rases (pour le plaisir de se triturer les méninges), c'est plutôt dans ce genre de directions qu'il faut s'orienter.

Je crois y a incompréhension là.

Il profite de 20 ans d'expérience  :  tous les retours et les essais de langages que les développeurs ont fait, que ça soit des langages fonctionnels ou procéduraux, les designs patterns, bref 20 d'expériences de l'ingénierie dans son ensemble.

Il fait table rase : il n'y a pas de retro compatibilité à respecter, on peut donc implémenter tous et n'importe quoi qui serait pratique, et tout de même conforme aux objectifs du langage.

L'objectif du langage est :   Eviter les failles de sécurités et les bugs aléatoires, et permettre d'écrire des programmes aussi performant que des programmes C, tout en permettant d'utiliser les meilleures pratiques et conceptions (objets et fonctionnelles).

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 4 Avr 2015 - 15:37

Bref ... pour pouvoir me faire les dents un peu sur le langage, je vais avoir besoin de faire des exercices. J'ai donc créé un fil avec quelques idées d'exercices :

http://www.zebrascrossing.net/t21204-exercices-d-informatiques-pour-gens-qui-s-ennuient-ou-qui-veulent-apprendre-un-nouveau-langage

Il serait bien que j'implémente tout ce bazard en Rust, sur un dépot publique, et que je vous permette de suivre (si y a des gens que ça intéresse). Pour le moment je ne veux naturellement pas m'embarquer sur des gros projets, et les projets sur le fil que je vous donne sont de taille réduite. Par ailleurs les IHMs posent tout un tas de problèmes de dépendances de librairie, et donc je préfère faire des programme de type "ligne de commande" pour commencer. Et puis ça sera une bonne occasion de m'intéresser à ces programmes "ligne de commande", car si j'en ai utilisé parfois, je n'ai pas tellement d'expérience de leur réalisation.

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Invité le Sam 4 Avr 2015 - 16:17

Personnellement je trouve que Rust est une grande arnaque, tous ses arguments anti C++ se basent sur le C++ norme 2003, hors la norme 2011 introduit tout ce qu'il faut pour ne pas faire n'importe quoi, on appel ca le C++ moderne.
L'histoire de owner et de borrowing existe complètement en C++, on appel ca le shared_ptr et le weak_ptr.
J'ai aussi vu que les partisans de Rust aiment venter les mécanisme super utile pour la programmation concurrente, j'ai même vu une conférence de 45 minutes sur ce que j'ai finis par comprendre était simplement un scoped_lock, une primitive ultra simple qui existe bien en C++. Ils aiment aussi parler de leur systeme de queue pour passer des messages entre les threads (whouhou un pattern producer/consumer que c'est nouveau !) qui existe en C++.

On peut meme se taper des barres en voyant que eux meme se rendent compte qu'ils pompent C++11 : http://doc.rust-lang.org/0.12.0/std/sync/atomics/

En gros "rust c'est genial, regardez comme c'est bien si on compare a une version de C++ qui a 12 ans et que plus personne n'utilise".

Invité
Invité


Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 4 Avr 2015 - 16:24

@ Darth Mitch :

http://www.mistybeach.com/articles/WhyIDontLikeCPlusPlusForLargeProjects.html


The following is a list of all publicly disclosed vulnerabilities discovered by TippingPoint Zero Day Initiative researchers. While the affected vendor is working on a patch for these vulnerabilities, TippingPoint customers are protected from exploitation by IPS filters delivered ahead of public disclosure. TippingPoint customers are additionally protected against 0day vulnerabilities discovered by our own DVLabs researchers. A list of published advisories discovered by TippingPoint's DVLabs research group is available from:
http://www.zerodayinitiative.com/advisories/published/
(Tu peux remarquer qu'il y a "buffer overflow" à presque chaque ligne de vulnérabilité !!! ) Peut être C++ 11 c'est génial, et personne ne l'utilise ?


Je sais pas te répondre, je n'ai pas suffisamment d'expérience avec C++ 11 (j'en ai aucune ..). Après s'il y a l'équivalent du pattern matching en C++ 11, je veux bien voir. Est ce qu'il y a aussi  les traits ?  J'ai acheté le bjarne Soustrup sur C++ 11, mais ça prend un peu de temps à lire .. je pense que quand j'aurais fini le bouquin, ils  en seront au C++20

Ah oui, un truc qui me gonfle avec C++ 2003, ce sont les fichiers multiples. Les .h c'est chiant.


Dernière édition par Stauk le Sam 4 Avr 2015 - 16:36, édité 1 fois

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Invité le Sam 4 Avr 2015 - 16:36

Article de 2001 donc C-with-classes ! Meme pas la norme 2003, article sans intérêt donc.

Pour ce qui est de ZDI tu noteras que dans beaucoup de cas les exploit touche des programmes Java, que les exploit native que l'on peut trouver sont souvent dans les noyaux ou dans du legacy code donc generalement du C ou du C++ qui a 20 ans.

Il n'y a pas de pattern matching en C++ car ca ne sert a rien, on se propose de travailler sur un langage objet et donc d'abstraire le contenu d'un object, pouvoir acceder au contenu n'a donc aucun sens.

Les traits existent http://www.cplusplus.com/reference/type_traits/
Et comme ils se basent sur la meta programmation, n'importe qui peut étendre les traits très facilement.

Ce que je reproche au C++ moderne :
- Le temps de compilation, qui devrait être adressé dans le C++17
- L'absence d'IO standard, C++17 également
- La volonté de ne jamais vouloir casser la compatibilité avec les versions précédentes, malheureusement je doute que cela change un jour.
- La rigidité de certains programmeurs système qui ne veulent pas utiliser les nouveautés.


Dernière édition par Darth Mitch Connor le Sam 4 Avr 2015 - 16:40, édité 1 fois

Invité
Invité


Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 4 Avr 2015 - 16:39

Il y a encore les fichiers .h, ou de ce coté là ça va mieux ?

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Invité le Sam 4 Avr 2015 - 16:42

Il y a encore les header c'est bien ca le probleme du temps de compilation, il existe des mécanisme permettant de precompiler tous les headers pour augmenter les performances (ce qui n'est pas négligeable, on est passe de 6h de compilations de 15 minutes ou je bosse).
Mais ce n'est pas standard et on espere se debarasser des headers au profit des modules dans C++17.

Invité
Invité


Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 4 Avr 2015 - 19:51

De haute lutte, j'ai réussi à implémenter une fonction qui "reverse" une string.
On peut executer le programme directement dans le navigateur, via un bouton, ce qui est rigolo (bon il faut que le programme tienne en un seul fichier, ce qui n'est pas si pratique que ça, mais ça fonctionne pour tester une fonction très simple)
http://is.gd/aFi5zO

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Invité le Sam 4 Avr 2015 - 20:04

http://ideone.com/UEf2sG

C'est plus rapide en C++ :s

Invité
Invité


Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 4 Avr 2015 - 20:08

Darth Mitch Connor a écrit:http://ideone.com/UEf2sG
C'est plus rapide en C++ :s

Je pense qu'il doit y avoir des façons plus courtes. Mais j'ai déjà bien galéré. Mmm, je me disais qu'il faudrait que j'essaye le C++, mais si tu traduis mes programmes rust, c'est nickel en fait Smile

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Stauk le Sam 4 Avr 2015 - 20:53

Est ce qu'il marche avec du Mandarin ton programme au fait ?
http://is.gd/JVUBet

Je viens d'essayer de vérifier si le tien fonctionnait : "Standard input is empty" mouhahahaha !  
nah ! Enfin si ça se trouve c'est le site web qui merdoie mais bon

Stauk
Vieux de la vieille
Vieux de la vieille

Messages : 4978
Date d'inscription : 16/01/2015

http://www.staukwood.com/

Revenir en haut Aller en bas

Re: Introduction de 30 minutes au langage Rust. (Un meilleur C)

Message par Contenu sponsorisé Aujourd'hui à 15:20


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 4 1, 2, 3, 4  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum