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

Langages de programmation Discussion :

Apprendre un langage compilé "multi-plateforme" et "multi-purpose"


Sujet :

Langages de programmation

  1. #21
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 33
    Points
    33
    Par défaut Donc finalement je veux savoir?
    Citation Envoyé par Luc Hermitte Voir le message
    Je m'inscris en faux aux messages qui conseillent le C avant le C++.
    Pour exactement toutes les raisons évoquées dans le troll de 20 pages que tu as déjà trouvé : il est plus simple d'être productif en C++ qu'en C. Certes le langage est bien plus complexe dans l'absolu, et pourtant il est plus simple à manipuler.
    ....

    ...malheureusement les a priori ont la vie dure sur les cibles exotiques et vu le prix pour réaliser des implémentations de compilo C++ qui tiennent la route on trouve encore des compilo bâclés qui ne valent pas un clou.
    Cher Luc Hermitte
    Le C est-il celui qui rempli mieux ces 6 critères énoncé tout haut en début?

    Citation Envoyé par Autodidacte xp Voir le message
    Je suis un autodidacte,je connais le PHP 5 qui est un langage interprété pour site web dynamique. Je veux à présent apprendre
    1_un langage compilé puissant,
    2_facile à maîtriser
    3_permettant de concevoir des logiciels portables sur tout type de plate-forme y compris téléphone portable
    4_sans machine virtuel à installer au préalable.
    5_Je veux éviter d'apprendre plusieurs langages en même temps après le php
    6_donc un langage qui me permette de faire beaucoup de choses en dehors du web;

    et Proposez moi parmi: C ;C++ ;OBJECTIVE-C ;avec arguments de préférence

    NB: Vu mon âge avancé je n'ai pas le temps d'apprendre beaucoup de langages c'est pourquoi je fais cette demande; aidez-moi! Merci à tous!

    Car je veux rester longtemps avec ce langage pour mieux le maîtriser afin de réaliser plusieurs objectifs que je me suis fixé dans le développement de divers applications portables.

  2. #22
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    2- Sur les 6 points, le C++ n'est pas facile à maitriser, mais il est facile à rendre nous productif en code robuste -- un point bien plus important AMA qu'une quelconque maitrise totale de l'outil.
    Le C est plus rapide à maitriser que le C++ (vu que le C++ est presque un sur-ensemble ; et que le C++ rajoute beaucoup de choses qui touchent à bien d'autres domaines comme p.ex. la POO). Mais, j'insiste, produire du code robuste en C est une tâche beaucoup plus complexe.

    La contrainte 5 est une mauvaise contrainte. Il est bien plus enrichissant d'élargir notre horizon. La pratique du C++ profite de notre familiarité avec d'autres types de langages (impératifs simples: Ada, Pascal, C ; OO: Eiffel, Java, Ruby ; À part: Prolog ; fonctionnels: Lisp, caml, haskell, etc).


    3- seul détail : chaque téléphone portable y va de son langage de prédilection.

    Les autres points ne sont pas en contradiction avec le C++.


    Maintenant, vu ce qui a été exprimé par la suite, je ne vois rien de véritablement incompatible avec le Java.

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 33
    Points
    33
    Par défaut C++ pour les plus expérimentés en programmation et C pour les novices?
    D'après certaines choses que j'ai apprises sur le c++, c'est qu'il a un niveau d'abstraction tellement élevé qu'il est difficile à appréhender pour quelqu'un qui n'est pas rodé en programmation avec une longue expérience dans les divers langages objets et autres.
    Ce qui fait qu'il semble qu'il est facile pour le novice d'être rapidement plus productif avec C qu'avec le C++, n'est-ce pas?

  4. #24
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    La productivité est la capacité d'un langage à fournir une solution à un problème en un minimum de lignes de code. La simplicité du C fait qu'il faut souvent énormément de lignes de code pour pas grand-chose. En résumé, le C s'apprend plus vite mais il est moins productif, le C++ demande plus de temps mais il est très productif. Tu dois donc choisir entre simplicité et productivité. On ne peut pas avoir le beurre et l'argent du beurre.

  5. #25
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    Citation Envoyé par Autodidacte xp Voir le message
    D'après certaines choses que j'ai apprises sur le c++, c'est qu'il a un niveau d'abstraction tellement élevé qu'il est difficile à appréhender pour quelqu'un qui n'est pas rodé en programmation avec une longue expérience dans les divers langages objets et autres.
    Ce qui fait qu'il semble qu'il est facile pour le novice d'être rapidement plus productif avec C qu'avec le C++, n'est-ce pas?
    Non, on t'a menti, c'est tout le contraire.
    Le C n'a que des éléments de bases, mais si tu ne sais pas comment les agencer entre eux, tu n'arriveras jamais à rien. Imagine qu'en php tu doives unitairement accéder à chacun des caractères de tes chaines (de caractères) à la main. Ben voilà, c'est ça le C (OK il y a des fonctions dédiées, mais il reste le besoin de savoir comment la mémoire fonctionne).
    En C++, tu as un type chaine de caractères qui se concatène avec des +, s'affecte avec des =, et qui se compare avec des ==.

    Je maintiens : le C++ est plus productif pour les débutants que le C -- il y a moins de en C++ choses (qui plus est complexes à manipuler dans le cas du C) à apprendre (comparativement au C) pour réaliser des applications.

  6. #26
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Si la portabilité et l'absence de machine virtuelle ou de framework à installer domine, ce sera C++, tout de même plus moderne que C. C'est effectivement un langage utilisable partout ou presque, que l'on peut utiliser aussi bien pour écrire un driver qu'une appli de haut niveau.

    Mais attention ! Le C++ accuse son âge, on sent le rajout de surcouches au fil des ans, la syntaxe est devenue lourdingue à mon humble opinion et on doit le compléter avec telle ou telle biblio indépendante pour avoir accès à des briques de base décentes. Niveau productivité, ce n'est pas vraiment le top et mieux vaut bien choisir dès le départ sa plateforme (indice : Qt). Cela dit, ça reste un langage que tout développeur devrait connaître selon moi, par flexibilité.

    Du coup, tout de même, Java ou C# valent d'être considérés. Niveau portabilité, Java est plus répandu. Mais sur le fond, C# est mieux fichu et plus innovant (voir mon message sur cet autre post pour des arguments). Cela dit, via Mono, on peut développer en C# pour Android, iPhone, WinPhone, Linux et Windows.

  7. #27
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    Si la portabilité et l'absence de machine virtuelle ou de framework à installer domine, ce sera C++, tout de même plus moderne que C. C'est effectivement un langage utilisable partout ou presque, que l'on peut utiliser aussi bien pour écrire un driver qu'une appli de haut niveau.

    Mais attention ! Le C++ accuse son âge, on sent le rajout de surcouches au fil des ans, la syntaxe est devenue lourdingue à mon humble opinion et on doit le compléter avec telle ou telle biblio indépendante pour avoir accès à des briques de base décentes. Niveau productivité, ce n'est pas vraiment le top et mieux vaut bien choisir dès le départ sa plateforme (indice : Qt). Cela dit, ça reste un langage que tout développeur devrait connaître selon moi, par flexibilité.

    Du coup, tout de même, Java ou C# valent d'être considérés. Niveau portabilité, Java est plus répandu. Mais sur le fond, C# est mieux fichu et plus innovant (voir mon message sur cet autre post pour des arguments). Cela dit, via Mono, on peut développer en C# pour Android, iPhone, WinPhone, Linux et Windows.


    Le C++ accuse son âge
    Donc C++ vieux et dépassé?
    c++, Vieux mais incontournable?
    c++, Vieux et pas conseillé si on veut être productif?
    c++, Vieux mais irremplaçable?

    En fin de compte?

  8. #28
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Citation Envoyé par Autodidacte xp Voir le message
    Donc C++ vieux et dépassé?
    c++, Vieux mais incontournable?
    c++, Vieux et pas conseillé si on veut être productif?
    c++, Vieux mais irremplaçable?

    En fin de compte?
    Incontournable parce que l'on a encore à faire à beaucoup de code C/C++, ou parce que l'on doit travailler de façon intensive avec des API natives pour lesquelles aucun wrapper n'existe, n'est fiable ou n'est recommandé.

    Irremplaçable parce que tous les langages modernes ont choisi la souplesse au détriment des performances. La plupart du temps ça n'a aucune importance, un bon choix d'algos ou de structures étant suffisant (et plus important que le langage) mais, parfois, on a besoin du moindre cycle CPU. Enfin parce que dans certains cas on doit écrire du code bas-niveau ou bien l'on travaille sur des plateformes sur lesquelles les Java & co ne sont pas dispos.

    Pour 90% des projets, des langages évolués et modernes sont préférables.
    Pour les 10% restants, grosso modo, c'est C/C++. Et cela inclue aussi des petits bouts de code bas-niveau prévus pour être exploités par du code de plus haut niveau.

    Maintenant, tu ne travailleras pas dans les mêmes domaines avec du C/C++ ou du Java ou du C#. Pour moi le choix devrait surtout se faire en fonction de ce que l'on veut faire. Ou, s'il ne s'agit que d'un hobby, de ce qui t'excite : C/C++ pour la bidouille, les optimisations au poil près, le côté proche de la machine ; Java ou C# pour de beaux codes, de belles UI, pour la productivité, etc.

  9. #29
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    Citation Envoyé par Autodidacte xp Voir le message

    En fin de compte?
    En fin de compte ? depuis le temps que tu poses la question, tu aurais eu le temps d'apprendre au moins trois ou quatre langages.

  10. #30
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    C++ pour la bidouille, les optimisations au poil près, le côté proche de la machine
    Ou pour la liberté d'expression qui nous est offerte avec un langage qui n'est pas conçu avant-tout pour être idiot-proof...

  11. #31
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 493
    Points
    5 493
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    Ou pour la liberté d'expression qui nous est offerte avec un langage qui n'est pas conçu avant-tout pour être idiot-proof...
    Puisqu'il est bien connu que seuls les idiots introduisent des bugs d'adressage ou des failles du type buffer overflow. Cela ne t'es jamais arrivé, n'est-ce pas ?
    Cela dit, oui, les limites imposées par ces langages sont parfois frustrantes. Mais tout langage l'est à un moment ou à un autre et le C/C++ n'est pas en reste.

  12. #32
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    Bien sûr que cela m'arrive, mais je tiens pas à tous ces gardes fous dont la plupart ne sont pas justifiés.
    Des frustrations en C++, il y en a, mais elles ne sont pas du tout du même ordre. Je me suis rarement trouvé bloqué par des choses que le langage ne permettait pas de faire proprement (comme p.ex. de la programmation par contrat, même si elle se fait avec de l'huile de coude, elle reste native et acceptablement clean (ce n'est pas Eiffel non plus)).

    Tout ça pour dire que C++ != bidouille. On peut l'apprécier pour d'autres raisons.

  13. #33
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 33
    Points
    33
    Par défaut BlueDeep??
    Citation Envoyé par Bluedeep Voir le message
    En fin de compte ? depuis le temps que tu poses la question, tu aurais eu le temps d'apprendre au moins trois ou quatre langages.
    Wahoo bluedeep! Tu m'envoie un uppercut là?


    L'une des choses qui me fait hésiter est que je fais du developpement web : Php; Javascript; Xhtml; Css; Dreamweaver etc et je veux ajouter la maîtrise des langages non-web pour pénétrer le domaine du developpement de logiciel.
    Mais je veux maîtriser à fond ce langage pour faire presque tout avec le plus longtemps possible...je ne veux pas faire de collection de langage pour le plaisir.

    Lorsque je veux prendre C on me dit: oh! le C est ceci ou cela... dépassé, on ne fait pas grand chose, il est limité, il est dangereux, pas sécurisé, pas objet, pas tralalla tralala etc

    Lorsque je veux prendre le C++ on me dit: Oh! le C++ c'est compliqué, la biblothèque standard est ceci ou cela, on ne peut pas être productif avec le c++, il est dépassé par java pour les projets modernes, on est obligé d'utiliser en ajout les boost, Qt et plein d'autres ajouts, difficile et déroutant, à part les jeux il ne sert pas à grand chose sinon ce serait une perte de temps etc!

    Moi j'aime m'instruire à fond quand je chosi un domaine et je ne veux pas faire de collection de langage. Or j'ai vraiment besoin d'un langage compilé... je pense qu'on ne peux vraiment pas dire qu'on fait de la programmation si on ne maîtrise pas un langage compilé, vu tous les avantages que donnent les langages compilés purs.

    C'est pour tout cela qu'avant de prendre une décision dans un domaine, je m'informe beaucoup, je pèse les avantages à court, moyen, et long terme pour ne pas me rendre compte ensuite que j'ai gaspillé mon temps pour rien.

    Voilà!

  14. #34
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 282
    Points : 11 036
    Points
    11 036
    Par défaut
    À de rares exceptions, l'apprentissage d'un langage n'est pas néfaste à l'apprentissage d'autres langages (je pense à : C->Java OK, C->C++ sans intermédiaires, ou recul à éviter). Il est même au contraire généralement conseillé d'avoir été initié au(x) style(s) de plusieurs langages pour d'autant mieux appréhender le langage pratiqué à un instant t.
    De préférence ces langages devraient appartenir à des familles différentes, fonctionnel, procédural, OO, ...

  15. #35
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 33
    Points
    33
    Par défaut C'est sûr Hermitte
    Finalement je pense que je vais me frotter à ce que j'appelle les 4 grands actuellement c++; c#; c et java.

    Ensuite j’approfondirai celui avec lequel je me sentirai le plus à l'aise pour mes travaux et mes différents projets.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Avis] Langages/Framework adaptés aux applications GUI multi-plateforme
    Par izakiel dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 07/09/2009, 04h50
  2. Compilation multi-plateforme et bibliothèque
    Par Leeelooo dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 09/05/2007, 12h35
  3. Quel langage pour un dev sur multi-plateforme ?
    Par KarelAppel dans le forum Windows
    Réponses: 1
    Dernier message: 05/01/2007, 02h58
  4. Quel langage pour application multi-plateforme ?
    Par yukimura_s33 dans le forum Langages de programmation
    Réponses: 22
    Dernier message: 21/11/2005, 14h22

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