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

Débats sur le développement - Le Best Of Discussion :

« Rust est le futur de la programmation système et C le nouvel assembleur », d’après un ingénieur d’Intel


Sujet :

Débats sur le développement - Le Best Of

  1. #81
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 499
    Points : 43 332
    Points
    43 332
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  2. #82
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 655
    Points : 3 786
    Points
    3 786
    Par défaut
    Citation Envoyé par deltree Voir le message
    Il y a beaucoup de chose qui marquent les différence de rust par rapport au langage existants, essentiellement la protection de la mémoire pour le multi-threading, mais en venant du java, il y a un autre élement qui m'a vraiment convaincu, c'est "cargo", un peut comme maven, mais pour un langage compilé.
    J'ai trouvé ça tellement mieux fait qu'en C, et tellement pratique aussi. J'ai pratiqué les tuto avec pas mal de facilité, beaucoup plus que mes début en C.

    Alors clairement Rust n'est pas un concurrent de Java, et je fais ça plus à titre récréatif, étant donné que mon métier est dans les SI, mais rendre un langage et son écosystème "mieux fichu" si je peux me permettre, ça va encourager son adhésion amha.

    Si je peux me permettre un parallèle vraiment "border-line", le JS lui-même a explosé avec ses framework au moment ou les écosytème reflétaient un ensemble logique: grunt+bower+npm, plus la base de code github hyper fournie.
    Alors que les langages plus récents débarquent tous avec leurs outils dans la foulée : compilateur(s) bien entendu, mais aussi générateur de documentation, formateur de code, analyseur de code (sans compilation après) et bien sûr gestionnaire de paquets avec un dépôt déjà existant. Rust, Dart... même combat. Tous ont viennent avec leur "SDK officiel" déjà bien complet. C'est à mon avis une nécessité pour se faire (rapidement) une place au soleil que d'avoir d'ors et déjà des outils permettant de coder très proprement à l'instar des plus gros langages déjà en place.

    Du coup les plus anciens y viennent eux aussi progressivement, notamment pour les gestionnaires de paquets. Je pense à PHP avec Composer (bien que PEAR existait déjà avant) et surtout à Python avec pip. Java avait déjà moult outils autour de lui (on a vu plus nouveau que javadoc ) et je pense qu'on peut dire que ce sont eux les précurseurs pour ça. Pour les autres c'est plus compliqué. Le C vient d'une époque où on ne pensait pas forcément aux outils autour du langage en même temps que le langage lui-même (sauf le compilateur bien entendu). Du coup il y a plein de solutions mais elles sont souvent très dépendantes d'un écosystème précis. Rien n'est vraiment fortement rattaché au langage comme cargo avec Rust, pas même CMake.
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  3. #83
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2017
    Messages : 11
    Points : 16
    Points
    16
    Par défaut
    article très intéressant

    je ne connaissais pas Rust mais j'ai déjà codé en C / C++

    et effectivement, les deux derniers ont pas mal de lacunes mais ont qd meme fait leurs preuves

    j'aime bien le commentaire "Rust c'est quoi au final un C sans pointeur ?"

  4. #84
    Membre extrêmement actif
    Avatar de Madmac
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2004
    Messages
    1 687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 687
    Points : 1 382
    Points
    1 382
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Astraya Voir le message

    Je ne comprends pas comment une conversation parlant de Rust et C fini sur JS ou Go...
    'C' et 'Rust' sont des languages de programmation Système, JS et Go non.
    'C++' dans la moindre mesure je le considère également comme un langage de programmation système.

    Ce que sont 'C' et 'C++'

    'C' est un vieux language qui a fait ces preuves et qui à également montré qu'il avait de grosses faiblesses qui coute et ont couté plusieurs millions de dollars aux sociétés. ( Use after free, buffer overflow, null pointer, etc... )
    'C' à une ABI stable.
    'C++' a ajouté 1 élément majeur par rapport au 'C' qui est le destructeur et qui a permit de limiter la casse en libération mémoire, mécanisme 'automatisé' de gestion de mémoire.
    'C++' a également apporté l'Orienté Objet (POO) qui aujourd'hui montre également ces faibles après avoir montré sa force.
    'C' et 'C++' n'ont pas été pensé pour les problèmes d'aujourd'hui ( Processeurs multicoeurs, Sécurité, Ecosystème du développeur )
    'C' et 'C++' ont aux moins 3 compilateurs différents!!! ( GCC, Clang, MSVC)
    Tu as oublié le plus important: C'est géneralement le premier langage disponible par les fabricants d'électronique. Et c'est pour cette raison qu'Intel est le premier fournisseur de compilateur pour son matériel. Et après vérification, AMD fait la même chose.

  5. #85
    Membre habitué
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2015
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2015
    Messages : 83
    Points : 155
    Points
    155
    Par défaut
    A l'époque de C, les langages étaient faits par des mathématiciens donc étaient de haut niveau : Lisp, Fortran, Forth, Cobol, ... Ils ne pensaient pas ni n'avaient besoin de programmer 'bas niveau', c'était fait (l'OS) en assembleur par des électroniciens , une autre population.
    C a été ''bottom-up'' plutôt que ces langages ''top-down' de représentation d'un domaine. Le premier ''assembleur++'' (si on considère que C+jbest ainsi aussi une évolution d'un niveau supérieur d'abstraction à C).
    Le temps a fait le reste seul langage de ce type, 50 ans d'optimisation du compilateur et d'enrichissement des librairies , formations donc disponibilités des compétences, etc.
    Mais...50 ans c'est énorme en informatique!

    Depuis, des langages plus 'humains' (lisibles donc maintenables) mais néanmoins capables enfin d'être (presque) aussi rapides (compilateurs aussi optimisés) existent (Go, Julia, Nim, ...), même ou presque avec leur ramasse-miette.

    A part pour des électroniques vraiment contraintes mais qui deviennent rares (le plus petit microcontrôleur doit être aussi puissant que le premier 8088?) et on doit penser que ce qui se faisait en assembleur se fait dorénavant en C, ce qui se faisait en C peut se faire en Rust/Go/Java/Julia/... Commence qui se faisait en Java (serveurs web) se fait dorénavant en PHP/Python/Elixir/... (Et enfin ce qui se faisait en ces langages de haut niveau se fait en low voire no-code... Et enfin en discutant avec une IA).

    Je ne vois donc rien sauf l'obstination des développeurs et la force des habitudes de leurs entreprise (qui résiste très souvent à des changements de paradigme ...) pour développer un OS totalement ou presque en Rust, Go, Julia (qui en sus s'interface pas si mal avec C), Nim, Crystal, etc.

    Une IA pourra certainement définitivement mettre tout le monde d'accord en traduisant parfaitement n'importe quel langage en un autre, très bientôt. ChatGPT (4.0) +Microsoft = GitHub Copilot+++ très bientôt...

Discussions similaires

  1. java et la programmation système
    Par samarchpa dans le forum Langage
    Réponses: 1
    Dernier message: 11/04/2006, 01h56
  2. Programmation système
    Par shaineu dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 05/11/2005, 19h01
  3. Programmation système
    Par spynux dans le forum Général Java
    Réponses: 1
    Dernier message: 04/11/2005, 10h40
  4. [Programmation système] Programme de base
    Par tooney dans le forum C
    Réponses: 7
    Dernier message: 11/07/2005, 21h36

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