2016 = Différence entre Python et C

Y aurait il un developpeur qui pourrait me donner les limites entre C et Python concernant ce qui peut être réalisé?

Merci

pourrais je avoir un éclairage empirique svp?

En C, tu peux programmer plus près des caractéristiques du matériel, tu peux affecter des valeurs à des registres du microprocesseur, programmer les composants d’entrée-sortie, établir des programmes de protocoles de communication, etc, dans ce cas c’est ce que le jargon appelle programmer en bas niveau. J’en ai fait un peu, d’autres sont bien meilleurs que moi dans le domaine qui m’ont foutu la honte !

En Python, j’en ai jamais fait, d’après ce que j’ai compris, tu ne t’occupes plus de ces aspects matériels, puisque C s’en est déjà occupé à ce stade. Python est plus glamour, je pense que tu dois obtenir des résultats visibles par Madame Michu plus rapidement qu’en C.

Je tente une analogie qui vaut ce qu’elle vaut :
C c’est les gars costauds qui font les fondations, Python, c’est les gars qui font les papiers-peints, les peintures et la décoration.

Et si tu regardais un peu wikipédia ? :blush:

Ne reste pas devant ton ordi toute la journée, va te détendre amigos :sunny:

1 J'aime

Merci pour ton message mais je voudrais avoir un exemple concret en fait.

ps: je m’echappe grace au web

Je suis zicos mais j’essaie d’aiguiser mes compétences de programmeur amateur. Donc prend ce qui suit avec recul.

Le C est un language compilé. Il existe un compilateur C pour presque tout ce qui fait tourner du code.
Si tu veux être encore plus bas niveau que le C, c’est l’assembleur.
Le code assembleur ne peut tourner que sur l’architecture pour laquelle il est écrit. Le C permet de s’affranchir de ça tout en ayant un contrôle très fin de la mémoire si besoin.
Ça en fait un language qui, malgré son age, est privilégié s’il te faut de la portabilité, de la performance…
Si tu aimes comprendre ce que tu fais et ce qui se passe, le C est top (l’orienté objet en C c’est passionnant).
Je me suis ecrit un programme qui gère mes comptes en C/GTK+. J’ai pu compiler la partie CLI pour le faire tourner directement sur le noyau de mon téléphone android (à travers un terminal android).
Avec le C tu peux aller des système embarqué avec 16Ko de mémoire jusqu’aux applis utilisateurs et tutti canti.

Python, je connais très peu. C’est un language de script donc tu peux programmer de manière interactive avec l’interpreteur python. Ça te permet de tester des trucs en live et de les valider avant de les integrer à ton script.
Python tire profit de certains concepts apportés par les languages qui sont apparus après le C. L’orienté objet typiquement.
Pour du prototypage et pour coder un truc qui marche rapidement c’est cool.
Si j’ai besoin d’automatiser une tâche débile (invitation aux evenements facebook) en qq lignes de code, je le fait en python.
Pour moi, c’est le language “get shit done” (qui fait le taf). Evidemment les perfs ne sont pas au niveau du C. (interpreté vs compilé)

C et Python sont 2 extrêmes dans le monde des languages.

2 J'aime

Merci de ta réponse. :wink:

A part développer un kernel, tu peux tout faire avec python ou avec du C. Maintenant c’est comme toujours avec les langages de programmations, ce n’est pas ce que tu peux ou ne peux pas faire mais ce qui est le plus adapté à un projet donné.

Je rajoute mon grain de sel pour dire qu’on entend régulièrement que ça risque d’être de moins en moins vrai, les optimisations des interpréteurs/VMs avançant.

Y’a t’il toujours la logique “commence avec un algo de tri”? ou bien y a t’il qqch de plus fun à faire pour apprendre?

Essaie de trouver un cours, pas l’APFA, je crois que tu y est devenu allergique, par exemple le CNAM :
http://formation.cnam.fr/par-domaine/langage-de-programmation-202532.kjsp?RH=newcat_themes

ou un autre organisme sérieux. Rester seul pour apprendre n’est pas bon à la longue, tu peux prendre des mauvaises habitudes de programmation ou te décourager.

Aucunement allergique à l’afpa

Oui, il me semble.

Je me suis forcé à faire du java pour écrire un métronome android. Apparement les VMs java ont de très bonnes perfs (y compris celle d’android sinon les applis ne seraient développées de cette manière). Encore un exemple où la limite compilé/interpreté est floue.