C'est surtout parce que tu manques d'entraînement, tout simplement. Déboguer une application est compliqué par nature et tous les programmeurs sont passés au moins une fois sur un cas difficile qui leur a fait perdre des jours, alors qu'il s'agissait le plus souvent d'une broutille comme un point-virgule mal placé.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
J'ai fais 7 ans de python avant de commencer le C ces temps-ci.
Le C semble répétitif, les listes simplement chaînée, les listes doublement chaînées, ...
Ce qui m'embête le plus maintenant (avant c'était les pointeurs), c'est les fuites mémoires où je me bat gaiement avec Valgrind.
Je travaille beaucoup le C, car au final mon objectif est d'être à niveau pour un langage que je considère être entre le C et python, c'est à dire le C++.
J'ai actuellement cette même impression, mais j'ai le sentiment que le C++ sera un juste milieu entre l'efficacité et la simplicité.Envoyé par Sve@r
Le C, reste tout de même simple dans sa syntaxe, pas beaucoup de mots clé.
En fait je ne me lasse pas de python pour faire des choses simples et avoir à éviter de m'occuper de la gestion mémoire.Envoyé par denispir
Je me lasse de stagner dans quelque-chose que je connais déjà et où je ne progresserais que très peu.
Le C permet de progresser en algorithme... pour moi c'est déjà ne plus stagner, c'est ce que je cherche.
Le C++ va ajouter un gros plus dans sa gestion des exceptions...
Chacun m'apportera ce que je souhaite, c'est à dire, éviter absolument la routine!
Je me suis mis à Python et je pense la même chose. Les exemples tu m'avais montré par mp étaient très aguicheurs, la suite a été encore mieux !
Hier, j'ai ecris un bout de code qui :
- à partir d'un vecteur d'objets, crée un nouveau vecteur
- contenant la valeur d'un attribut d'instance
- des objets pour lesquels une méthode de cette classe rend True
en une seule ligne !
Exceptionnel !!!
lol ;-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [obj.attr for obj in objets if (obj.meth() == True)]
(Je préfère séparer le mapping du filtrage, en 2 opérations. Mais python a un syntaxe terrible pour les fonctions anonymes (lambda truc), alors on est obligés d'utiliser les compréhensions de listes, et une fois qu'on en est là, autant tout grouper.)
Denis
Je crois que python est beaucoup plus compliqué, et bien moins intuitif, que beaucoup le disent. C'est dû au fait qu'il reprend l'essentiel de la sémantique des langages de la lignée C/Unix (c'était d'ailleurs un des buts de Guido, il en parle je ne sais plus où), avec une syntaxe plus sympa et sémantique à la fois plus claire et plus juste. Du coup tout nous paraît (plus) simple, mais c'est un peu une illusion d'optique, je crois.
En plus, au fil du temps, le langage c'est vachement complexifié. Avec les méta-classes, les coroutines primitives (génrateurs), les décorateurs, tu peux complètement exploser le modèle/paradigme central de python.
Si tu cherches qq ch entre C et python, va peut-être fouiller un temps du côté de D(2) et Go. D, c'est C++ moins pmal foutu. Go, bon, tout le monde en parle (*). Explorer la gamme des Modula et Oberon peut aussi valoir le coup, pour toucher à d'autres principes "language design", même si tu n'as pas l'intention de les adopter.
Denis
(*) Je dois dire malheureusement que Go est selon moi très bien conçu, du moins selon les principes de base choisis (pas de générique, par ex). Le typage dit "structurel" est excellent et je parle même pas du modèle de concurrence (hérité d'Erlang). La syntaxe "répare" l'essentiel des verrues de C/++. Malheureusement, parce que Google me fout sacrément la trouille: je préférerais que leurs projets de langages soient des ratés conceptuels (Mais avec Ken Thompson dans le lot...) et des échecs publics (mais avec la puissance de google....
Question de point de vue, personnellement je trouve pas.En plus, au fil du temps, le langage c'est vachement complexifié. Avec les méta-classes, les coroutines primitives (génrateurs), les décorateurs, tu peux complètement exploser le modèle/paradigme central de python.
complexifié et amélioré.
Mouiiii, C'est moins répandu, dommage!D, c'est C++ moins pmal foutu
Pas tant que ça, ça fait longtemps que j'en ai pas entendu parler. Par contre j'entend parler de Haskell, python, objective CGo, bon, tout le monde en parle
Oui, mais ce sont deux langages qui ne sont pas comparables.Je me suis mis à Python et je pense la même chose. Les exemples tu m'avais montré par mp étaient très aguicheurs, la suite a été encore mieux !
Le Python est un excellent langage, mais la majeure partie de ses « grands avantages par rapport au C » sont surtout ceux des langages interprétés. Les lambda-fonctions, par exemple, existent en LISP depuis 1960.
Il est décevant de constater que peu de gens se rendent compte que les difficultés du C sont ce qu'elles sont parce que les ordinateurs fonctionnent globalement de cette façon, au plus bas niveau, et pas à cause d'une conception arbitraire et maladroite au départ.
Loin de l'idée de comparer !!!
C'est juste que ça c'est mis à en parler. Venant d'une formation info indus, je connais tout l'intérêt d'un langage proche de la machine comme C. A la longue, sur PC, c'est saoulant pour faire de petites appli de se dire "alors.... pour mon tableau, je mets quoi comme taille avec mon #define ?". Au boulot ces deniers jours, j'ai développé un petit outil pour exploiter des fichiers issus d'un boitier qui est connecté à un bus et enregistre toutes les trames qui passent. Faire ça en Python a été un plaisir car je n'ai pas eu à gérer la mémoire, j'a bénéficié d'écrire de haut niveau et compactes, la possibilité de faire des classes, etc. J'ai utilisé un langage adapté à mon besoin. En revanche, je ne suis pas fan du côté interprété. Ou alors je n'ai pas encore l'habitude. J'aime bien en C faire "compiler" et qu'il me dise "erreur : telle variable est inconnue car j'ai fait une faute de frappe" ; en Python, j'exécute et je vois que ça plante. Si c'est un morceau du code où je ne passe pas systématiquement, je risque de m'en rendre compte plus tard.
Enfin, bref, on diverge ^^
Bien vu ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [obj.attr for obj in objets if (obj.meth() == True)]
Tu peux même enlever le == True et les parenthèses !
PS : message numéro !
Partager