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 :

Une université canadienne propose C-for-All


Sujet :

C

  1. #21
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 746
    Par défaut
    Citation Envoyé par Neckara Voir le message
    De même, essayer d'avoir des syntaxes identiques, par exemple avoir du C++ avec une syntaxe de python serait pas mal et éviterait les problèmes d’accolades.
    Et même plutôt que de proposer des nouveaux langages, proposer des sucres syntaxiques qui serait convertis en un langage-cible (e.g. C++ avec syntaxe python -> C++).
    Alors je te conseille de te renseigner sur le Nim, c'est exactement ça.

  2. #22
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Par défaut
    @Pyramidev
    > On a donc besoin d'un meilleur C++, beaucoup plus rapide à
    > compiler, plus simple à apprendre et, tant qu'à faire, encore
    > plus riche. Peut-être le langage D. D'ailleurs, je me demande
    > si ce dernier peut aussi remplacer Julia.

    Je suppose que tu veux plutôt dire :

    ...si ce dernier peut aussi être remplacé par Julia

    (dont la version 1.0 est attendue cette année, mais qui est déjà très utilisé
    dans certaines communauté scientifique).

    Pour C-for-all, je pense qu'il est un peu tard... sauf s'il est adopté
    comme standard comme une évolution du C.

  3. #23
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 515
    Par défaut
    Citation Envoyé par mdiam Voir le message
    ...si ce dernier peut aussi être remplacé par Julia
    J'ai lu que Julia utilise un ramasse-miettes, donc ne permet pas de descendre à un niveau aussi bas que ne le permet le langage D, dans lequel on peut désactiver le ramasse-miettes.

    D'ailleurs, en D, si on veut descendre aussi bas que le C, on peut utiliser l'option Better C qui désactive aussi d'autres fonctionnalités comme les exceptions.

    Donc Julia ne peut pas remplacer le langage D.

    Je ne sais pas encore si Julia supporte des fonctionnalités importantes que le D n'aurait pas. Je vérifierai. Pas aujourd'hui, mais c'est dans ma to-do list.

  4. #24
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2015
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2015
    Messages : 488
    Par défaut Prudence...
    Pour moi C a toujours été une sorte d'assembleur compréhensible et portable, et je l'ai vu utilisé la plupart du temps dans ce contexte. Pour des fonctionnalités évoluées, C++ offre je crois à peu près tout ce dont on peut rêver. Sinon, pourquoi ne pas prendre un langage vraiment nouveau plutôt que de tordre C ? J'avais jeté un œil à Go par exemple... Mais est-il aussi performant que C ?
    Il ne faut pas oublier qu'un développeur est aussi sensé savoir écrire un code capable de bien se comporter même si le langage qu'il doit utiliser n'offre pas le dernier machin à la mode.
    Et que la course au langage parfait est parfois un masque pour la paresse et/ou l'incompétence.

  5. #25
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciel
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Regardez-moi ça, je parie que vous n'en connaissez même pas la grande majorité, et que la grande majorité est juste inutile.
    C'est sûr, il y a des langages anecdotiques dans la liste : le brainfuck en est un bon exemple

  6. #26
    Membre averti
    Profil pro
    Ingénieur
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Par défaut
    Citation Envoyé par Pyramidev Voir le message
    J'ai lu que Julia utilise un ramasse-miettes, donc ne permet pas de descendre à un niveau aussi bas que ne le permet le langage D, dans lequel on peut désactiver le ramasse-miettes.
    Julia permet aussi d'appeler manuellement le ramasse miette ou le désactiver : Base.gc() et Base.gc_enable

    D'ailleurs, en D, si on veut descendre aussi bas que le C, on peut utiliser l'option Better C qui désactive aussi d'autres fonctionnalités comme les exceptions.
    Julia s'appuie sur LLVM qu'on peut manipuler directement (je n'ai cependant jamais joué avec cela !). On peut aussi afficher
    la traduction LLVM d'une méthode Julia particulière. Cette traduction peut-être complètement différente selon le type des paramètres d'entrée de la fonction (d'où l'importance du typage (facultatif) qui peut permettre des optimisations lors de la compilation JIT).


    Donc Julia ne peut pas remplacer le langage D.

    Je ne sais pas encore si Julia supporte des fonctionnalités importantes que le D n'aurait pas. Je vérifierai. Pas aujourd'hui, mais c'est dans ma to-do list.
    Il y a 20ans, Je trouvais que le langage D était très prometteur, et aujourd'hui... il est toujours très prometteur !
    En attendant d'autres langages sont sortis et sont réellement utilisés (Go, Rust, ...).
    Julia est à part car il cible le monde scientifique (matlab, R, C++) avec un écosystème moderne (Ruby, Go, piton, ...). Sa première version publique est apparue en 2012 et devrait voir sa version 1.0 (i.e stable au niveau des API) sortir cette année.

    À propos du langage C, son intérêt est d'être une référence stable de bas niveau, universellement diffusée et surtout facile à interfacer.
    C'est dommage qu'il n'ait pas évolué il y a une vingtaine d'année vers un C-for-all avec de la surcharge, une gestion d'exception des bibliothèques décente (string, ...).

    -- Maurice

  7. #27
    Expert confirmé
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 226
    Par défaut
    Justement , heureusement que le C reste encore assez "basique" son but pour ma part reste aussi que faire un compilateur C doit rester accessible , "facile".

    Néanmoins je ne comprend pas cette mode de vouloir améliorer le langage C , le C a pas mal de défaut , il me semble plus intelligent de partir sur des nouvelles bases (comme le Rust ) que d'essayer de faire un C amélioré !

  8. #28
    Membre Expert
    Avatar de Pyramidev
    Homme Profil pro
    Tech Lead
    Inscrit en
    Avril 2016
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Tech Lead

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 515
    Par défaut
    Citation Envoyé par mdiam Voir le message
    Julia permet aussi d'appeler manuellement le ramasse miette ou le désactiver : Base.gc() et Base.gc_enable
    Merci pour l'info.

    Citation Envoyé par mdiam Voir le message
    C'est dommage qu'il n'ait pas évolué il y a une vingtaine d'année vers un C-for-all avec de la surcharge, une gestion d'exception des bibliothèques décente (string, ...).
    Ça, c'est le C++98, non ?

  9. #29
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 746
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 746
    Par défaut
    Citation Envoyé par TJ1985 Voir le message
    Pour moi C a toujours été une sorte d'assembleur compréhensible et portable, et je l'ai vu utilisé la plupart du temps dans ce contexte. Pour des fonctionnalités évoluées, C++ offre je crois à peu près tout ce dont on peut rêver. Sinon, pourquoi ne pas prendre un langage vraiment nouveau plutôt que de tordre C ? J'avais jeté un œil à Go par exemple...
    Il ne faut pas oublier qu'un développeur est aussi sensé savoir écrire un code capable de bien se comporter même si le langage qu'il doit utiliser n'offre pas le dernier machin à la mode.
    Sur ce point, je suis tout a fait d'accord. le problème des alternatives à C comme C2 ou C-for-all est qu'elles sont perdues entre l'envie de rester proche du C, dont la stabilité est une qualité autant qu'un défaut, et l'envie de vouloir offrir plus comme le fait déjà le C++.

    Citation Envoyé par TJ1985 Voir le message
    Mais est-il aussi performant que C ?
    Go peut remplacer C dans pas mal de situations, mais, comme Julia, il ne peut être considéré comme un langage avec des capacités système, notamment à cause de son ramasse miettes quasi-obligatoire.

    Citation Envoyé par mdiam Voir le message
    Julia permet aussi d'appeler manuellement le ramasse miette ou le désactiver : Base.gc() et Base.gc_enable
    Sauf que le langage Julia (comme pour le Go), n'a pas du tout été conçu pour marcher sans ramasse miette. Si tu désactives le ramasses miette, ton programme va consommer de plus en plus de mémoire jusqu'à en manquer. Désactiver le GC n'est faisable que pour les programmes à courte durée de vie dont on sait qu'il se termineront avant d'avoir utilisé trop de mémoire.

    Citation Envoyé par TJ1985 Voir le message
    Et que la course au langage parfait est parfois un masque pour la paresse et/ou l'incompétence.
    Par contre, là je ne suis pas d'accord. Aucun langage ne sera jamais parfait vu que les besoins de chacun sont différents, mais avoir un langage qui évite les erreurs est un gros plus.

    Le développeur qui ne fait pas d'erreur est un mythe. Il suffit de regarder les release notes des correctifs des navigateurs, base de donnée, OS et autre logiciel très surveillés et donc pas développés par des amateurs incompétent. Au moins la moitié des failles auraient généralement pu être évitées avec des langages plus restrictif.

    De plus un développeur est rarement seul donc quand on intervient sur une section de code qu'on a pas écrit soi même avoir des garanties sur le bon fonctionnement de certaines abstractions est une aide non négligeable.

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/03/2008, 02h36
  2. Réponses: 8
    Dernier message: 28/11/2007, 14h55
  3. Bosser en France pour une boite Canadienne
    Par popogendarme dans le forum Emploi
    Réponses: 9
    Dernier message: 09/07/2007, 22h43
  4. [XSL-FO] Modifer une structure de tableau dans for-each
    Par serwol dans le forum XSL/XSLT/XPATH
    Réponses: 24
    Dernier message: 17/06/2005, 18h38

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