IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Est ce que la fin du C est proche ou pas ? [Débat]


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Nettoyeur de code de M....
    Inscrit en
    Mars 2003
    Messages
    28
    Détails du profil
    Informations professionnelles :
    Activité : Nettoyeur de code de M....

    Informations forums :
    Inscription : Mars 2003
    Messages : 28
    Par défaut
    Bonjour,

    Ce sujet fait apparaitre quelques souvenirs de sujets ou même de discussions réelles que j'ai eu sur la disparition d'un autre langage qui est le COBOL, cela fait 8 ans que je vis de l'informatique et presque autant que j'utilise ce langage et il y a toujours quelqu'un qui me dits le COBOL c'est la fin.

    J'aurai juste une question feriez de la programmation objet en C ? de la programmation systeme en COBOL ? des petits programmes pour une utilisation unique en assembleur ?

    Oui on peut le faire mais ces langages ne sont pas faits pour, chaque langage à sa spécificité et donc un ou plusieurs domaines de prédélictions.

    Ensuite on me dit que Java est plus facile à programmer (ce que je crois sans problème) mais j'ai toujours remarqué que plus la programmation était proche de la machine plus c'était rapide à l'exécution et inversement c'était plus long (voir compliqué) à programmer. Inversement plus c'est facile à programmer plus c'est loin de la machine plus le temps d'exécution est important.

    Donc de la à dire que le C n'existera plus cela me parait un peu exagéré surtout quand on voit que des démos sur Amstrad CPC sortent encore et là on peut dire que la machine est largement dépassée. (ne prenez pas cette phrase comme critique envers le CPC c'est mon premier ordi et j'ai toujours un émulateur sur mon PC).

  2. #2
    Membre confirmé
    Profil pro
    responsable de développement
    Inscrit en
    Février 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : responsable de développement

    Informations forums :
    Inscription : Février 2006
    Messages : 26
    Par défaut
    Salut,

    A chaque tache son outil…

    Note :
    Pour le C ++ les MFC (micro$oft) sont 'juste' une couche C ++ autour de l’API Win32 en C, comme dans beaucoup de cas…
    Une Lib Dynamique (Dll, so, dylib) n’expose qu’une API C. Même un COM (a ma connaissance) utilise une classe vrappeur qui utilise des fnc C d’une Dll…
    Quand on copie un CString, le code fini tj par un malloc/realloc, strncpy… ou qq chose comme ça. C’est au niveau de la prog. (application, librairie, OS) que la question se pose le plus.

    Ce qui est bien avec le C ++ (et pas Java) c’est qu’on peut écrire du
    simple C (et dans une méthode on finit tj par le faire).
    Si on n’utilise pas le Polymorphisme ou les méthodes/classe Virtuelle…, on peut facilement ce passer du C ++ (sauf si on utilise des API C ++).
    C’est juste une question d’écriture (structure & catch, fnc avec pointeur this) voir par exemple GTK.
    Il est à noter que les classes avec des fnc. virtuelles (toutes celle de MFC) les pointeurs des fnc. virtuelles redéfinies sont stockées en mémoire avec une représentation de la classe (voir au débeugeur). Bon dans le cas d’utilisation des MFC ce n’est pas lourd à payer par rapport au MFC.

    Pour des IHM (boite de dialogue, gestion d’événement utilisateur…) la question d’optimisation ne se pose pas, le nombre de composant (widget/contrôle) et minime par rapport à la mémoire. De même le temps de réaction visible par l’utilisateur et rarement a optimiser (au niveau de la méthode de codage).

    On doit optimiser d’abord les données puis choisir les algorithmes les mieux adaptés, et seulement si c’est nécessaire, optimiser les algorithmes et le code (type d’écriture).
    Un code optimisé est beaucoup plus difficile à faire évoluer et à debeuger !
    Les éléments a prendre en compte sont : Savoir si le code devras évoluer ? Par qui ? Quelles sont les API utilisée ?…

    Pour un code de calcul/analyse qui va utiliser beaucoup d’instance (10 000), de boucle (bis)… on peut :
    Utiliser des structures (on saute les constructeurs) faire nous même les allocations par tableaux…
    Utiliser des fnc C et éventuellement unline ou des macros. Cela n’alourdit pas le code, permet d’éviter des appels successifs de fnc. Un pointeur (this) sur une struct permet d’éviter trop de paramètres (comme une classe en fait).
    Une macro remplace un template de fnc. Dans l’exemple suivant vDst et vSrc ne sont pas forcément les mêmes classes ou structures, ce qui importe c’est le variable i et j.
    ex : #defun addVerct (vDst, vSrc) {vDst. i + = vSrc. i ; vDst. j + = vSrc. j ;}
    Pour remplacer de fnc virtuelle et pouvoir personnaliser du code ou utiliser des fnc de rappels (lib) on peut prévoir l’utilisation des pointeurs sur fonctions (personnalisées) et Pour les données on passe des pointeurs void* (avec éventuellement la taille).
    ex : void TriData (struct Data *data1, struct Data *data2, fncTri maFonctionDeTri)
    De cette façon on peut personnaliser une librairie sans la modifier et sans la dériver (plus simple aussi). On a un code qui est beaucoup plus adaptatif (encore que cela dépend de l’implémentation de la lib).

    En fait dans des cas très le C sort largement en tête (mémoire & vitesse)…
    Dans d’autres cas (très spécifique aussi) le C ++ reste avantageux au C, si on ne veut réutiliser des pans de code 'proprement' et garder un code lisible…
    L’avantage encore, en C ++ c’est de pourvoir faire du C…

    Pour ma part je fais plus souvent du C ++ (sous Windoze) mais je m’éclate en C pour des algos. très pointus ou sous linux & OSX.
    Le C a pour moi encore de beau jour... même si la plupart des programmeurs peuvent faire l'impasse et faire du java ou du python... ou le compromis C++ / ObjectivC.

    houpss c'est un peu long mais fo lire quand même...

  3. #3
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Chez moi, en Suisse, le marché du travail donne une place toujours plus importante à Java et à .Net. Je pense toutefois que de solides connaissances en C sont d'une grande utilité et permettent notemment une meilleure compréhension de la machine, et des structures de données/algorithmes élémentaires. De plus, il est nécessaire de programmer en C de manière extrêmement disciplinée. C'est une très bonne école de la programmation.

    J'ai appris la programmation par Python et Java. Je suis ensuite venu à C++ et finalement au C, d'abord par curiosité et dans un but d'autoformation. Avec ce langage, j'ai découvert un outils limité au premier coup d'oeil mais très puissants. Je pense que C est un passage obligé dans tout apprentissage sérieux de la programmation.

    Au delà de l'intérêt accadémique, de plus en plus d'entreprises, d'organisations et de particuliers se tournent vers GNU/Linux, et dans certains domaines (e.g. serveurs), GNU/Linux n'est pas loin d'avoir un monopole. Dans ce contexte, la portabibilité d'une application devient de plus en plus une préoccupation d'actualité. Un programme Java est portable via sa JVM, mais l'issue de la portabilité constitue par exemple un frein à l'expension de la plateforme .Net (même si l'utilisation de mono est de plus en plus concurrentielle), une application .Net professionnelle restant pour le moment limitée à Windows. Dans ce contexte, GNU/Linux arrive avec un héritage C qui est une mine d'or (de par la quantité de code et la qualité des applications) et nous aurons encore besoin longtemps de développeurs capables de maintenir, de concevoir et d'écrire des programmes en langage C.

    Fréquemment, de nouvelles bibliothèques/API portables apparaissent pour le langage C. L'utilisation de ces composants réutilisables facilitent grandement la conception de nouvelles applications en langage C et encourage l'utilisation de ce langage sous GNU/Linux. Actuellement, je programme essentiellement en C avec un usage abondant de bibliothèques telles que Glib, GTK+, etc. et je crois que ce langage a encore un bel avenir.

    Meilleures salutations

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  4. #4
    Membre confirmé
    Profil pro
    responsable de développement
    Inscrit en
    Février 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : responsable de développement

    Informations forums :
    Inscription : Février 2006
    Messages : 26
    Par défaut
    :o Bien d’accord…
    Moi j’ai commencé en basic sur casio 850, puis j’ai fait du C et du Lisp… J’ai beaucoup appris en regardent le code d’autrui… plus tard je me suis mis au C ++ et au Java… et enfin un peu à ecmaScript/JScrip et python.

    Ce sont tous des bons langages…
    Mais suivant ce que l’on développe, avec qui et pour qui, donne déjà souvent la réponse du langage à utiliser.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 119
    Par défaut
    Le C est loin d'être mort et enterré.

    1) Le C est plus puissant que n'importe quel nouveau langage, on à un controle total sur ce que l'on veut faire, certe il faut coder plus et c'est moin facile. Mais soite on aime la prog ou pas. Exemple, les pointeurs, en C il sont important et on peut les utiliser, regarde si dans Java , C# ou autre on peut les utiliser? et non , ils existe mais implicitement. Certe les nouveau langage on des atous, de belles petite fonctions toutes faite (style les pile en Java ArrayList) mais est-ce mieu? c'est plus rapide a coder mais c'est tous. On aprend rien du tout. Et si vous couplé C et API ... et ben les possibilitées sont énormes. perso cela fait maintenant 2 ans que je couple C et API et aucuns problèmes n'y résiste.

    2) Toutes les bases des os sont codées en C.

    Mais je suis daccord que pour être un bon programmeur, il faut aussi bien connaitre la prog séquencielle que la POO, ça c'est certain.

  6. #6
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Un indicateur de la santé d'un langage est le nombre de post qui lui sont consacré dans les forums.
    Si on circule entre les forums C, C++ et Java de developpez on s'apercoit que en 24 heures:
    C:15-20 post indiqués en jaune;
    C++:30 post en jaune;
    Java:60 post en jaune!

    C'est assez parlant...

  7. #7
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par seriousme
    Si on circule entre les forums C, C++ et Java de developpez on s'apercoit que en 24 heures:
    C:15-20 post indiqués en jaune;
    C++:30 post en jaune;
    Java:60 post en jaune!
    Donc les programmeurs Java ont entre 3 et 4 fois plus de questions que les programmeurs C... Une statistique qui n'a absolument aucun rapport avec la popularité du langage (sauf à dire que les débutants font plus de Java que de C, et tant mieux).

  8. #8
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    les débutants font plus de Java que de C
    Les débutants...les questions n'étaient pas aussi basiques que celles qu'on peut voir sur le forum C.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 62
    Par défaut
    Citation Envoyé par seriousme
    Un indicateur de la santé d'un langage est le nombre de post qui lui sont consacré dans les forums.
    Si on circule entre les forums C, C++ et Java de developpez on s'apercoit que en 24 heures:
    C:15-20 post indiqués en jaune;
    C++:30 post en jaune;
    Java:60 post en jaune!

    C'est assez parlant...
    C'est parlant oui... ca veut dire que ce langage est beaucoup (trop) étudié en cours.

  10. #10
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par seriousme
    Un indicateur de la santé d'un langage est le nombre de post qui lui sont consacré dans les forums.
    Si on circule entre les forums C, C++ et Java de developpez on s'apercoit que en 24 heures:
    C:15-20 post indiqués en jaune;
    C++:30 post en jaune;
    Java:60 post en jaune!

    C'est assez parlant...
    Tu rajoutes au C et C++ tous les post dans le forum Developpement Windows, Developpement 2D, 3D et Jeux [OpenGl, Direct X, SDL, Allegro], Visual C++ et Borland C++Builder et tu obtiens le bon résultat, et je pense que ca doit arriver pas loin au niveau du Java meme le depasser

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/01/2014, 16h02
  2. Réponses: 0
    Dernier message: 25/01/2011, 12h34
  3. est ce que ce bout de code est correct?
    Par Elay dans le forum C++
    Réponses: 5
    Dernier message: 03/03/2010, 10h37
  4. Réponses: 3
    Dernier message: 30/06/2009, 15h41
  5. Est ce que Jaspersoft BI Suite Professional est open source?
    Par zerocoolyoussef dans le forum Jasper
    Réponses: 4
    Dernier message: 14/04/2009, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo