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 :

Le langage le plus simple.


Sujet :

Langages de programmation

  1. #21
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par LeonHONORE Voir le message
    Bon, Et concrètement, Quel Langage pour un débutant absolue
    Comme tu l'as compris, il n'y a pas de réponse absolue pour un débutant absolu. Le choix DU langage le plus approprié pour débuter suscite souvent des débats passionnés dont les archives de ce forum sont remplies. J'ai bien envie de te dire que Pascal est le langage qu'il te faut. Ou Python...! Mais comme je sais que trop bien que les conseils qu'on peut donner concernant le choix d'un langage sont toujours très subjectifs, je dirais que Python/Scheme/Pascal sont de bons candidats. Des références ont déjà été données:

    Pour Python:
    http://python.developpez.com/cours/TutoSwinnen/
    Pour Scheme:
    http://mitpress.mit.edu/sicp/
    Pour Pascal:
    http://rmdiscala.developpez.com/cours/
    Le même que pour Pascal, mais en C#:
    http://rmdiscala.free.fr/AlgoBasesCs.html

    A toi de te faire une idée. Les réponses 100% objectives n'exitent pas. Essaie d'expérimenter un peu et de voir ce qui convient le mieux à tes besoins. (Je pense que Scheme est une bonne porte d'entrée, même si ma préférence va de loin vers Python)

    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++

    +

  2. #22
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    En passant, Un langage idéal pour débutant serait un langage :

    • Avec une syntaxe proche de la langue anglaise.
    • Avec un nombre de fonction limité
    • Beaucoup de ressource sur internet (FAQ-Tuto-Cours)
    • Communauté de gars sympa comme ici


    Merci pour toutes les réponses

  3. #23
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par LeonHONORE Voir le message
    En passant, Un langage idéal pour débutant serait un langage :

    • Avec une syntaxe proche de la langue anglaise.
    • Avec un nombre de fonction limité
    • Beaucoup de ressource sur internet (FAQ-Tuto-Cours)
    • Communauté de gars sympa comme ici


    Merci pour toutes les réponses
    Dans ce cas, Python correspond à tous ces points sauf le 2e. Pourquoi est-ce un avantage d'avoir un nombre de fonctions limité? Une bibliothèque standard riche en fonctionnalités est, de mon point de vue, un atout.

    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. #24
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    [...]
    Mais j'ai du mal à comprendre ta conclusion. En quoi chercher un langage largement utilisé (donc pour lequel on trouvera de la main d'oeuvre expérimentée) est-il forcément un mauvais choix?
    Je n'ai jamais fait ce genre de lien. Ce que je voulais dire c'est qu'un étudiant qui a la philosophie « il me faut un langage utilisé en industrie pour faire du pratique et être tout de suite efficace » part en général sur une mauvaise perception de ce qu'est un cursus en informatique. Le but d'un cursus de niveau universitaire est de fournir les outils pour être prêt à s'adapter à ce qui arrivera par la suite, quelque que soit la technologie qui s'imposera. Le fait d'être pressé à « être fonctionnel en industrie » mène à sauter les étapes qu'on ne considère pas comme important car on ne sait pas ce qui l'est. Notamment, ceux et celles qui sont pressés de programmer ont tendance à ignorer que c'est dans l'analyse des besoins que se situe le plus grand risque: c'est en général là que se déroule l'avenir du projet — échec ou réussite.

    Ce n'est donc pas un mauvais choix en soi ; c'est que les raisons qui mène à ses choix sont mauvaises conseillères.

    En tout cas, ça sort un peu du cadre du sujet

  5. #25
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    Dans ce cas, Python correspond à tous ces points sauf le 2e. Pourquoi est-ce un avantage d'avoir un nombre de fonctions limité? Une bibliothèque standard riche en fonctionnalités est, de mon point de vue, un atout.
    Je pense qu'il voulait dire : qui ne possède pas tellement de fonctions à apprendre pour débuter qu'on finit par ne plus s'y retrouver en passant des heures dans une documentation énorme...

  6. #26
    Membre actif
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Février 2008
    Messages
    174
    Détails du profil
    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Février 2008
    Messages : 174
    Points : 220
    Points
    220
    Par défaut
    De mon point de vue : plus le langage est de haut niveau, plus il est confortable pour un débutant ( donc Python, ruby ... )
    Après, si le débutant est un mordu et un peu foufou ^^, il peu passer aux langages de plus bas niveaux ( je conseillerait java pour commencer la descente, C++, C et toutes la famille de ce genre ==> Pascal, Delphi, Perl..... ) et vraiment pour les cinglés du bulbe comme moi : assembleur.
    Vous n'arrivez pas à faire ce que vous voulez avec Linux?
    Read The Fine Manual !==>The Linux Documentation Project

  7. #27
    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
    Citation Envoyé par Jedai Voir le message
    Le C, langage de programmation le plus concis au monde ? C'est une blague ? Ou tu n'as jamais programmé avec des vrais langages de haut niveau (Perl, Python, Ruby, Scheme, OCaml, Haskell, ... tous beaucoup plus concis que le C) ? Déjà la version en Scheme était plus courte et concise que ta version en C, mais on pourrait toujours arguer qu'elle était typé dynamiquement et que c'est ça qui fait la différence... Sauf que la version suivante en Haskell est typée statiquement (et le système de type d'Haskell est bien plus puissant que celui du C) :
    Code Haskell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    factorielle 0 = 1
    factorielle n = n * factorielle (n-1)


    Par ailleurs le C n'est pas "simple", il y a des tas de détails piégeux. De plus c'est l'un des rares langages modernes à utiliser intensivement l'arithmétique des pointeurs, qui est très dangereuse.

    --
    Jedaï
    Bon d'accord, j'ai peut être un peu exagéré mais je voulais dire langage de niveau système le plus concis au monde. Sinon, parmi les langages que tu as cité, je ne connais que le Perl (et un peu python) mais je ne dirais pas qu'il soit plus concis que le C. Trop de mots-clés et fonctions intégrées. En C il n'y a pas de fonctions intégrées (c'est un langage qui ne dépend d'aucun matériel ou logiciel) ce qui rend son apprentissage très rapide. C'est ce que j'appelle la concision, pas la faculté de permettre d'écrire n'importe quel programme en moins de 2 lignes. D'autre part, chacun a ses opinions, mais je pense que pour apprendre la programmation il faut commencer par un langage impératif et de préférence compilé (qui permet de créer de vrais programmes, pas du simple texte qui sera interprété par un programme ...).

  8. #28
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par Melem Voir le message
    Bon d'accord, j'ai peut être un peu exagéré mais je voulais dire langage de niveau système le plus concis au monde. Sinon, parmi les langages que tu as cité, je ne connais que le Perl (et un peu python) mais je ne dirais pas qu'il soit plus concis que le C. Trop de mots-clés et fonctions intégrées. En C il n'y a pas de fonctions intégrées (c'est un langage qui ne dépend d'aucun matériel ou logiciel) ce qui rend son apprentissage très rapide. C'est ce que j'appelle la concision, pas la faculté de permettre d'écrire n'importe quel programme en moins de 2 lignes. D'autre part, chacun a ses opinions, mais je pense que pour apprendre la programmation il faut commencer par un langage impératif et de préférence compilé (qui permet de créer de vrais programmes, pas du simple texte qui sera interprété par un programme ...).
    Je programme essentiellement en C. Définitivement, C n'est pas un langage adapté aux débutants et son enseignement est plus délicat que tu ne sembles le penser. D'expérience, je peux de dire que mes étudiants ont beaucoup moins de difficultés avec l'apprentissage de Python que de C. C'est vrai que la taille de bibliothèque standard du C est relativement petite, l'utilisation de certaines fonctions est délicate et demande une attention particulière.

    Au niveau concision, il n'y a pas photo. A fonctionnalité égale, les experts avancent qu'un programme Python est de 5 à 10 fois plus court qu'un programme C. J'ai une bonne expérience des deux langages, et je peux dire que cette affirmation est plutôt vérifiée. En ce qui concerne l'apprentissage, sans aucune connaissance préalable en programmation, je pense qu'on réaliser des programmes honnêtes après 1 à 2 mois de formation sérieuse. Pour un apprentissage équivalent du C, je compte 1 année de formation sérieuse et 1 année de pratique assidue. Il n'y a pas de miracle. Le C est un langage compact, mais subtile.

    Au final, je trouve beaucoup plus concis que:

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    from __future__ import with_statement
     
    with open("test.txt", "r") as fichier:
        for ligne in fichier:
            print ligne[:-1]

    que

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    #define BUFF_LENGTH 128
     
    void fclean(char *buffer, FILE *fp)
    {
        if (buffer != NULL && fp != NULL)
        {
            char *pc = strchr(buffer, '\n');
     
            if (pc != NULL)
            {
                *pc = '\0';
            }
            else
            {
                int c;
     
                while ((c = fgetc(fp)) != '\n' && c != EOF)
                {
                }
            }
        }
    }
     
    int main(void)
    {
        int ret = EXIT_SUCCESS;
        FILE *file = NULL;
     
        file = fopen("test.txt", "r");
        if (file != NULL)
        {
            char buffer[BUFF_LENGTH] = "";
     
            while (fgets(buffer, sizeof buffer, file) != NULL)
            {
                fclean(buffer, file);
                printf("%s\n", buffer);
            }
     
            fclose(file), file = NULL;
        }
        else
        {
            fprintf(stderr, "Error: Impossible to open file\n!");
            ret = EXIT_FAILURE;
        } 
     
        return ret;
    }

    N.B. Pour ne pas heurter les sensibilités, on peut remplacer ici les références à Python par Ruby. En ce qui concerne Perl, je suis un peu plus réservé.

    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++

    +

  9. #29
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Melem Voir le message
    En C il n'y a pas de fonctions intégrées (c'est un langage qui ne dépend d'aucun matériel ou logiciel)
    Ca peut dépendre du matériel, au contraire.

    Un code crade comme celui-ci aura un comportement différent suivant l'orientation de la pile :

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void test(int * a, int * b, int *c) {
      printf("%d", *((int*) *(&b+1)));
    }
     
    int main(void) {
      int a = 0;
      int b = 1;
      int c = 2;
      test(&a, &b, &c);
     
      return 0;
    }

    Pour un débutant, il vaut mieux un langage qui ne permette pas d'écrire ce genre de truc
    Je ne répondrai à aucune question technique en privé

  10. #30
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Melem Voir le message
    Bon d'accord, j'ai peut être un peu exagéré mais je voulais dire langage de niveau système le plus concis au monde. Sinon, parmi les langages que tu as cité, je ne connais que le Perl (et un peu python) mais je ne dirais pas qu'il soit plus concis que le C. Trop de mots-clés et fonctions intégrées. En C il n'y a pas de fonctions intégrées (c'est un langage qui ne dépend d'aucun matériel ou logiciel) ce qui rend son apprentissage très rapide.
    Essaie de faire du C sans ta librairie standard, ça sera moins drôle...

    Citation Envoyé par Melem Voir le message
    C'est ce que j'appelle la concision, pas la faculté de permettre d'écrire n'importe quel programme en moins de 2 lignes.
    Définition de concis : En parlant d'un discours, d'un écrit. Qui fait entendre beaucoup de choses en peu de mots.
    Désolé mais essaie d'employer les mots avec leur véritable sens, ça facilite le débat.
    De plus même si on reprend ton argument, tu sembles une victime du Blub paradox, tu prétend que C a tout ce dont tu as besoin pour faire quoi que ce soit et que la seule différence avec un langage comme Perl est la librairie standard ? Il y a des différences bien plus fondamentales : un GC, des closures, un système d'objet, une boucle foreach (ça peut apparaître débile mais devoir réécrire une boucle for (sujette à des erreurs stupides) à chaque fois qu'on veut simplement parcourir un tableau est vraiment ridicule pour un langage de haut-niveau à mon avis), un système de modules...

    Citation Envoyé par Melem Voir le message
    D'autre part, chacun a ses opinions, mais je pense que pour apprendre la programmation il faut commencer par un langage impératif et de préférence compilé (qui permet de créer de vrais programmes, pas du simple texte qui sera interprété par un programme ...).
    Dans le genre trollesque... De "vrais programmes" ? Je ne m'étendrais pas sur le sujet (peine perdue vu ton attitude...).
    Personnellement, je suis tout sauf convaincu qu'il faille commencer par un langage impératif (et vu notre discussion jusqu'ici je pense que tu confonds ce terme avec "procédural" et exclus les langages objets de la catégorie, je me trompe ?) et je conseillerais bien plutôt un langage fonctionnel pour commencer (Scheme avec SICP ?). Néanmoins pour l'instant les langages impératifs restent prédominant sur le marché et s'il me faut choisir un candidat pour l'apprentissage de la programmation, le fait qu'il soit compilé est un désavantage pour moi, ou plutôt l'absence du feedback rapide procuré par les langages interprétés. Note que certains langages qui peuvent être compilés (vers du code très efficace) comme Haskell ou OCaml fournissent également une REPL (invite où on peut évaluer du code intéractivement), mais C n'en fait pas partie.

    --
    Jedaï

  11. #31
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Pour un débutant, je suggérerais le livre How To Design Programs qui utilise Scheme également plutôt que SICP. Il y a beaucoup d'annecdotes concernant Scheme et la facilité avec laquelle les étudiants l'apprenne comparé à C++ ou Java. Une des raison qui revient le plus souvent est que les étudiants ont beaucoup moins de questions sur la syntaxe, et peuvent se se concentrer sur les vrais problèmes. La possibilité de l'utiliser interactivement aide énormément aussi à mon avis.

  12. #32
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 386
    Points
    20 386
    Par défaut
    Citation Envoyé par LeonHONORE Voir le message
    Quel est d'après vous, le langage (application et non pas web) a apprendre et maitriser ?
    ?
    Quel intérêt d'apprendre un langage simple ?? Tous les langages sont simples par essence il y en a qui ont des fonctionnalités plus évoluées c'est tout..
    tu peux faire très simple en C++ et complexifier en utilisant des choses avancées comme la POO..
    Tu ne peux pas utiliser de langage simple pour faire une application c'est pas possible tu seras limité un jour ou l'autre.

  13. #33
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Tu ne peux pas utiliser de langage simple pour faire une application c'est pas possible tu seras limité un jour ou l'autre.
    simple != limité.

  14. #34
    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
    Citation Envoyé par Jedai
    Essaie de faire du C sans ta librairie standard, ça sera moins drôle...
    On peut faire plein de trucs en C "pur", c'est-à-dire sans lib externe (standard ou pas) : des bibliothèques de fonctions mathématiques, de manipulation de chaînes, d'algorithmes (tris, structures de données, etc.) comme on peut le faire avec à peu près n'importe quel langage. On n'est pas ici pour parler de cela ...

    Citation Envoyé par Jedai
    Désolé mais essaie d'employer les mots avec leur véritable sens, ça facilite le débat.
    Bah, c'est ce que j'ai fait. D'ailleurs la définition de "concision" que tu as posté me convient parfaitement. J'ai dit que le C était un langage concis (et donc, je réitère, facile à apprendre), pas un langage qui permettait d'écrire des programmes concis. Sinon si tu veux fais un discours sur les mots réservés de Perl et du C (prévois un papier A1 pour Perl et le quart d'un papier A4 pour le C).

    Citation Envoyé par Jedai
    tu prétend que C a tout ce dont tu as besoin pour faire quoi que ce soit
    Je ne le nie pas. D'ailleurs j'avoue que je suis trop C-iste pour recommander à quelqu'un un autre langage de programmation que le C (à la limite C++). Je devrais peut-être me retirer de ce débat.

    Citation Envoyé par Jedai
    Il y a des différences bien plus fondamentales : un GC, des closures, un système d'objet, une boucle foreach
    On peut implémenter tout cela en langage C (j'en connais des libs, en particulier pour le GC), mais ces fonctionnalités ne sont pas intégrées au langage. Libre au programmeur de choisir.

    Citation Envoyé par Jedai
    Dans le genre trollesque ... De "vrais programmes" ?
    Bah, je n'ai pas fais une histoire quand tu parlais de "vrais langages de haut niveau". Un programme (un VRAI) est une suite d'instructions comprises par l'ordinateur. Par extension du langage un code source est aussi appelé programme, mais dans le vrai sens du terme ça n'en est pas un.

    Citation Envoyé par Jedai
    je pense que tu confonds ce terme avec "procédural" et exclus les langages objets de la catégorie, je me trompe ?
    Je sais bien ce que c'est qu'un langage procédural, orienté objet, impératif ou fonctionnel ... je ne suis pas aussi bête que tu l'imagines.

  15. #35
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Je crois pas que Jedaï parlait du nombre de mots réservés quand il parlait de concision. Si c'était le cas, le langage Io serait le grand gagnant avec 0 mot réservé.

    Il parlait probablement plus du nombre de tokens requis pour exécuter une tâche. Comme Thierry l'a montré avec son exemple de Python, ouvrir et lire un fichier de façon sécuritaire est beaucoup plus court en Python qu'en C.

  16. #36
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par GnuVince Voir le message
    Je crois pas que Jedaï parlait du nombre de mots réservés quand il parlait de concision. Si c'était le cas, le langage Io serait le grand gagnant avec 0 mot réservé.
    Et ça n'a pas de sens de parler de "concision" dans ce cas : comme la définition que j'ai cité l'explicitait, le terme "concis" s'applique à un discours ou à un écrit (un programme), pas à un langage. Généralement on parle de "minimalisme" pour qualifier un langage qui se contente de peu de mots-clés et C n'est certes pas le gagnant sur ce critère (Perl encore moins... ).

    Un programme (un VRAI) est une suite d'instructions comprises par l'ordinateur. Par extension du langage un code source est aussi appelé programme, mais dans le vrai sens du terme ça n'en est pas un.
    Un programme est une suite d'instruction, dans le sens original du terme, et dans le sens informatique c'est une suite d'instruction que je peux faire effectuer à l'ordinateur, que j'utilise un interpréteur ou que je l'exécute directement sur le processeur.

    --
    Jedaï

  17. #37
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par Melem Voir le message
    On peut implémenter tout cela en langage C (j'en connais des libs, en particulier pour le GC), mais ces fonctionnalités ne sont pas intégrées au langage. Libre au programmeur de choisir.
    Ce n'est absolument pas la question ici. Les experts sont à mon avis tous d'accord. Le C est un langage difficile. Entre les main d'un débutant, il permet certes de bénéficier d'un langage compact et souple, mais il permet d'écrire des horreurs comme dans l'exemple donné par millie. On est d'accord que c'est un langage compact et minimaliste. Du point de vue de l'apprentissage, entre C et C++, le consensus actuel semblerait plutôt aller dans la direction de C++. Un sujet a été consacré à cette question ici: http://www.developpez.net/forums/showthread.php?t=327

    Ainsi, la question ici est de proposer un langage idéal pour débutant (du moins c'est comme cela que je l'interprête quand je lis un titre tel que: "Le langage le plus simple."). C a plein de qualités dont la principale est pour moi sa portabilité incomparable. En revanche, c'est un langage pour programmeur expérimenté qui montre le plein de son potentiel dans les tâches de bas niveau.

    Plus on avance dans ce fil et plus Scheme me plaît dans un contexte d'apprentissage de la programmation. En effet, vu le nombre de langages impératifs qui foisonnent sur le marché, pourquoi ne pas commencer par un langage... fonctionnel, histoire de s'ouvrir d'emblée à un paradigme autre. C'est d'ailleurs la démarche soutenue par le MIT. Dans l'idéal, je dirais que si un débutant doit apprendre trois langages, je choisirai un langage fonctionnel (Scheme?), un langage impératif (Pascal? Ada?), et pourquoi pas un langage logique tel que Prolog. On pourait également se poser la question d'aborder un langage objet. Je choisirais personnellement Python, mais Squeak, Ruby, Java, C# sont sans doute des choix équivalents. Je vois des étudiants aligner les langages (Java, C#, C++) sans se soucier qu'il existe peut-être autre chose.

    Comme toi, Melem, je suis un C-iste souvent pas très objectif et militant. Ce n'est pas un mal, on l'est tous plus ou plus lorsqu'il s'agit de défendre "Notre Langage". Mais lorsque tu enseignes la programmation à des étudiants qui dans mon cas sont des ingénieurs chimistes et physiciens (et qui débutent avec la programmation), tu apprends à voir les enjeux liés au choix du premier langage différemment. Je crois que Garulfo peut nous en dire pas mal sur ce sujet .

    Désolé pour le post fleuve. 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++

    +

  18. #38
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Melem Voir le message
    [...]D'autre part, chacun a ses opinions, mais je pense que pour apprendre la programmation il faut commencer par un langage impératif et de préférence compilé (qui permet de créer de vrais programmes, pas du simple texte qui sera interprété par un programme ...).
    N'importe quoi ! -_-

    Citation Envoyé par Melem Voir le message
    [...]J'ai dit que le C était un langage concis (et donc, je réitère, facile à apprendre), pas un langage qui permettait d'écrire des programmes concis.
    Même ainsi le C n'est pas un langage concis. Si tu parles du nombre de mots clé, le C est loin d'être très concis. As-tu déjà vu la grammaire du C ? Ses spécs ? Il y a de quoi en douter.

    Ou alors, tu ne connais en fait rien d'autre. Dans ce cas, tu peux dire que c'est le C qui est le langage le plus concis que tu connaisses. Et cela devient vrai.

    Le C est un langage de bas-niveau. Il est extrêmement intéressant, très efficace en de bonne main et peut effectivement tout faire... comme la plupart des langages. Mais la plupart de ceux qui se croit bon en C ne sont pas capable de faire de bon programme en C. C'est un langage extrêmement difficile au final. Un très mauvais langage d'apprentissage quand on rajoute le fait qu'il cumule de très nombreuses difficultés. La syntaxe est complexe; la grammaire est lourde; les détails de syntaxes sont nombreux. Il est loin d'être concis. Pour trouver un langage concis et utiliser regardes vers Scheme par exemple, ou forth ou l'assembleur pour Sun mais bon je ne recomenderais pas ce dernier non plus.

  19. #39
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Thierry Chappuis Voir le message
    [...]On pourait également se poser la question d'aborder un langage objet. Je choisirais personnellement Python, mais Squeak, Ruby, Java, C# sont sans doute des choix équivalents.
    Le problème c'est que les étudiants veulent apprendre les langages alors qu'ils doivent d'abord apprendre les paradigmes. Dans cet ordre d'idée, pour l'objet, rien de mieux que Smalltalk (Squeak)...

  20. #40
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Le problème c'est que les étudiants veulent apprendre les langages alors qu'ils doivent d'abord apprendre les paradigmes. Dans cet ordre d'idée, pour l'objet, rien de mieux que Smalltalk (Squeak)...
    Pas d'objection

    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++

    +

Discussions similaires

  1. Réponses: 10
    Dernier message: 24/05/2005, 14h09
  2. Pipes => pas plus simple ?
    Par Jorus dans le forum MFC
    Réponses: 4
    Dernier message: 02/02/2005, 17h53
  3. Format date : y'a forcément plus simple...
    Par ZERS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/12/2004, 15h28
  4. [langage] pas plus de 1024 caractères?
    Par Kinethe dans le forum Langage
    Réponses: 8
    Dernier message: 15/07/2004, 11h50
  5. [langage] Problème tout simple
    Par marouanitos dans le forum Langage
    Réponses: 5
    Dernier message: 24/09/2003, 11h25

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