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 :

Conception et r�alisation de programmes hautes performances et/ou s�rs


Sujet :

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

  1. #1
    R�dacteur/Mod�rateur

    Avatar de gorgonite
    Homme Profil pro
    Ing�nieur d'�tudes
    Inscrit en
    D�cembre 2005
    Messages
    10 322
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d'�tudes
    Secteur : Transports

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 10 322
    Par d�faut Conception et r�alisation de programmes hautes performances et/ou s�rs
    Bonjour � tous,

    Je vous propose de vous exprimer ici au sujet des crit�res � respecter pour concevoir et coder des programmes "rigoureux"... histoire de sortir du train quotidien des hello world, ou des projets o� le langage n'est pas important tant qu'il est orient�-objet plein de webservices

    Pour cela, il me semble utile d'orienter cette discussion sur des axes tels que :
    • la rigueur du codage employ�e
    • le choix d'un sous-ensemble d'un langage
    • la rigueur d'un syst�me de type
    • les possibilit�s de v�rification formelle
    • les contraintes "incompressibles" de certains syst�mes embarqu�s et/ou temps r�el


    cette liste n'est pas exhaustive bien �videmment...

    � tous les participants


    Attention
    1. � moins que vous ne demandiez de plus amples explications sur un point pr�cis, poster dans cette discussion est strictement r�serv� aux personnes qui estiment avoir une expertise ou une exp�rience int�ressante � partager
    2. tous les propos HS (m�me techniques) seront supprim�es
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog
      0  0

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    D�tails du profil
    Informations personnelles :
    �ge : 51
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par d�faut
    Ada est un langage qui :
    • A �t� le premier langage objet norm�,
    • Est une r�f�rence en mati�re de code s�curitaire tout en supportant les contraintes temps r�el,
    • Permet de faire de la programmation parall�le m�me si l'OS ne le supporte pas nativement,
    • Impl�mentait la g�n�ricit� bien avant C++ et les langages manag�s,
    • Poss�de une syntaxe non ambig�e,
    • Peut permettre la preuve formelle,
    • Te permet aussi d'avoir des processeurs complexes dignes de ce nom (VHDL),
    • Est plus connu (et plus utilis�) que quelques "beaux" langages sortant finalement assez peu des labos ou niches restreintes.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au s�rieux, de toutes fa�ons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum ad�quat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO
      0  0

  3. #3
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50

    Informations professionnelles :
    Activit� : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par d�faut
    Pour trouver un language qui est strict je rejoins certains il faut aller du cot� de l'ada (j'ai pratiqu� l'ada 83 a un moment). il inclu le multitache dans sa syntaxe, il a un typage strict des donn�es, il n'est pas tres eloign� de l'objet que l'on retrouve probablement dans les versions suivante (ada 95,...) et il a une syntaxe claire et lisible.
      0  0

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    D�tails du profil
    Informations personnelles :
    �ge : 51
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par d�faut
    Selon moi, un GC, c'est la porte ouverte au je-m'en-foutisme sur la lib�ration m�moire, et la notion de pointeur reste importante quoi que l'on dise : il est fondamental de comprendre ce que c'est, m�me si c'est pour �viter de l'utiliser derri�re (en fonction de ses go�ts personnels et de ce que l'on veut faire en programmation bien s�r).
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au s�rieux, de toutes fa�ons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum ad�quat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO
      0  0

  5. #5
    alex_pi
    Invit�(e)
    Par d�faut
    Je ne comprends pas... D'un cot�, tu es contre le GC parce que �a inciterait � trop se reposer sur la machine, mais de l'autre, tu veux du typage statique. Ca n'insiterait pas � ne pas r�fl�chir et � juste faire confiance au typeur ?


    Quand on voit le faible nombre de programmeur C qui utilisent des outils comme Valgrind, et le nombre incroyable de mem leak dans les programmes de tous les jours, j'avoue que �a me fait douter sur le fait que "programmer sans GC fait qu'on fait plus attention � la gestion des ressources"..

    Et en plus, �a interdira un paquet d'algorithme ou de paradigme parce qu'il n'arrivera pas � faire une gestion manuelle de la m�moire l� dessus. Est ce que devoir avoir compris les magic pointeur avant de coder est vraiment indispensable...
      0  0

  6. #6
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50

    Informations professionnelles :
    Activit� : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par d�faut
    Ce n'est pas tout de faire de l'algorithme, il faut aussi comprendre comment marche la machine et l'os qui est dessus, sinon on risque de faire de choses qui vont heurter son fonctionnement normal et au final avoir des trucs qui rament.

    sans compter que c'est un peu l'usine pour faire ton programme tu te retrouve vite a assembler un tas de composants (avec tout un tas d'acronyme ejb, struts, spring, jboss, pojo....) bref il faut s'acheter un dictionnaire fran�ais/java pour savoir ce que l'on fait. et ensuite tu te rend parfois compte que tu aurais �t� plus vite en le codant toi m�me et que cela aurai mieux r�pondu a ton besoin et ce surtout si tu d�bute ou l'on te confie des truc simple au d�but

    Quand on voit le faible nombre de programmeur C qui utilisent des outils comme Valgrind, et le nombre incroyable de mem leak dans les programmes de tous les jours, j'avoue que �a me fait douter sur le fait que "programmer sans GC fait qu'on fait plus attention � la gestion des ressources"..
    beaucoup de programmeur codent comme de cochons, mais j'en connais quelque uns (dont moi) qui n'acceptent pas de consid�rer que le programme est valide s'il subsiste un leak dessus surtout en C/C++.

    Ceci dit ce n'est surtout pas parce que tu as un GC que tu ne dois pas t'occuper de ta m�moire, ce serait un erreur. j'ai d�j� eu des soucis de memoire avec des programme java de gens oubliant de dereferenc�r des objets (mem-leak) ou des personnes se retrouvant a d�-r�f�rencer trop t�t des objets et avoir un tas de nullpointer exeption (free).....

    L'id�e que l'on a pas a s'occuper de la m�moire en java est selon moi un peu fausse.
      0  0

  7. #7
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    D�tails du profil
    Informations personnelles :
    �ge : 51
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par d�faut
    Citation Envoy� par alex_pi Voir le message
    Je ne comprends pas... D'un cot�, tu es contre le GC parce que �a inciterait � trop se reposer sur la machine, mais de l'autre, tu veux du typage statique.
    Le typage statique demande un minimum de r�flexion de la part du d�veloppeur... Et plus il est strict, plus il doit r�fl�chir.

    Citation Envoy� par alex_pi Voir le message
    Ca n'insiterait pas � ne pas r�fl�chir et � juste faire confiance au typeur ?
    Justement : c'est un �chec � la compilation, et non pas � l'ex�cution, qui se produit avec un typage statique... Les erreurs de typage dynamique sont en g�n�ral assez infectes � lever, et dans le pire des cas on a un d�butant qui ne comprends m�me pas la diff�rence entre un nombre (variable enti�re) et sa repr�sentation textuelle (variable cha�ne contenant la repr�sentations ASCII du nombre en question)...

    La plupart des langages ont un GC "global" au programme, c'est � dire que l'allocation se fait dans une zone r�serv�e par le runtime... Une fuite m�moire peut exister, certes, mais sans mettre en p�ril le syst�me d'exploitation. Ce n'est pas "propre", certes, mais c'est un moindre mal.

    De l'autre c�t�, il y a de bonnes habitudes, parmi lesquelles on a :
    • Documenter son code,
    • Le tester un minimum s�rieusement,
    • Savoir � l'avance ce que l'on va faire, et non pas "bidouiller" en avan�ant � t�tons,
    • V�rifier la lib�ration de ce que l'on a allou�.


    Citation Envoy� par alex_pi Voir le message
    Quand on voit le faible nombre de programmeur C qui utilisent des outils comme Valgrind, et le nombre incroyable de mem leak dans les programmes de tous les jours, j'avoue que �a me fait douter sur le fait que "programmer sans GC fait qu'on fait plus attention � la gestion des ressources"..
    C'est un fait.
    Moi aussi, je connais h�las trop cette situation...

    Citation Envoy� par alex_pi Voir le message
    Et en plus, �a interdira un paquet d'algorithme ou de paradigme parce qu'il n'arrivera pas � faire une gestion manuelle de la m�moire l� dessus.
    Lesquels ? L'algorithmique, �a s'apprend par le commencement, pas par la fin... Tu arrives � accepter, toi, qu'un stagiaire passe une heure � trouver une librairie pour faire un tri au lieu de l'impl�menter lui-m�me ? Surtout quand �a porte � l'origine sur un tableau d'une vingtaine d'�l�ments, tri� une seule fois ?

    Citation Envoy� par alex_pi Voir le message
    Est ce que devoir avoir compris les magic pointeur avant de coder est vraiement indispensable...
    Utiliser les "smart pointers" est n�faste en soi pour un d�butant, car cela le fait ignorer un m�canisme crucial qui n'existera pas toujours sur les plate-formes qu'il sera amen� � utiliser. L'embarqu� se porte bien, tr�s bien m�me... Et l� dessus, tu as rarement une usine � gaz type JRE pesant plus lourd que la capacit� m�moire disponible pour faire n'importe quoi n'importe comment... Et de toutes fa�ons, les performances exig�es mettent hors concours tout ce qui n'est pas langage compil� natif.

    Or, � force d'apprendre le d�veloppement "fa�on assist�", tu vois de moins en moins de d�veloppeurs r�ellement comp�tents d�s qu'il s'agit de d�veloppement bas niveau, temps r�el ou embarqu�... Certes, ils savent faire de belles IHM en Java et ouvrir tout plein de communications TCP/IP en m�me temps, ou se connecter � une BDD. Mais ils sont pas foutus de faire un syst�me d'acquisition temps r�el, un driver ou un module exigeant des performances s�v�res.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au s�rieux, de toutes fa�ons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum ad�quat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO
      0  0

  8. #8
    alex_pi
    Invit�(e)
    Par d�faut
    Personnellement, j'ai commenc� par caml, qui dans la cat�gorie "langage de haut niveau", �a �crase largement java.

    Son typage m'a donn� un paquet de bonnes habitudes comme �viter d'�tre tent� toutes les deux minutes de faire des casts ultra sordide, ou encore m'inciter � utiliser les rares possibilit�s offerte par le syst�me de type des autres langages.
    Et le fait que ce soit "haut niveau" m'a habitu� � d'abord penser aux algorithmes, � leur complexit�, � la qualit� des structures de donn�es, etc, avant de me demander si je vais pouvoir �changer le contenu de deux variables en 2 ou 3 instructions comme je vois tellement de d�butant en C faire sur ce forum (et de moins d�butants), ou comment optimiser le pr�lude d'une boucle au lieu de m'int�resser � son corps.
      0  0

  9. #9
    alex_pi
    Invit�(e)
    Par d�faut
    En outre, "langage de haut niveau" ne veux pas dire performance catastrophique ! Il faut arr�ter avec �a...
    regardons http://shootout.alioth.debian.org/u6...lang=all&box=1 . Ok ce sont des benchs qui ne veulent pas n�cessairement dire grand chose, mais en gros quand m�me, on se retrouve avec des langages de "haut niveau" voir tr�s haut niveau comme Haskell ou OCaml qui ont des perfs de l'ordre de 1,5 � 2,5 fois plus lent que C. Ca veut dire en gros que sur un proc actuel, on a les perfs d'un proc d'il y a un an, deux peut �tre (si on ne parle que de performance, ce qui est assez absurde)? Je n'ai pas l'impression que ce soit si "catastrophique" que �a.

    Tu nous dis que �a �limine tout une palanqu� de domaine o�, si je comprends bien, il faudrait tout g�rer � la paluche pour avoir la moindre chance d'obtenir un r�sultat probant. Permet moi d'en douter

    Pour le temps r�el, il existe des GC "temps r�el", c'est � dire ne consommant pas plus que N milisecondes par tour de GC, et M milisecondes en tout par secondes. Et les r�sultats sont tr�s bons. Ils ont en java un simulateur de Steinway, ce qui est tr�s gourmand en ressource et ne tol�re pas le moindre d�lai (l'oreille humaine s'en rendrait compte tout de suite), et les r�sultats sont excellents.

    Pour le r�seau, il me semble quand m�me qu'Erlang n'est pas tout � fait absurde comme option. De fa�on anecdotique, acebook l'utilise pour son chat par exemple, mais surtout, il est tr�s utilis� entre autre par Erikson et bien d'autres. Et pourtant, c'est un langage fonctionnel.

    Pour l'imagerie et le calcul, je te conseille de jeter un �il � ce que fait le labo de York l� dessus, notamment des papiers comme celui ci : http://eprints.whiterose.ac.uk/5000/ . Ils sont capable de g�rer des terra de donn�es avec Haskell et de les afficher franchement joliment (j'ai pu voir une d�mo il y a un an de �a, c'est vraiment chouette.)

    Et pour l'embarqu� ? Prenons l'exemple des r�seau de capteurs. Il est difficile de faire plus demandant en terme de ressource. Et pourtant, de la programmation de "haut niveau" peut apporter beaucoup dans ce domaine. Je te conseille de regarder les langages Flask et Regiment, qui donnent de beaux exemples de ce qu'on peut faire avec un ou deux niveaux d'abstractions en plus : http://fiji.eecs.harvard.edu/Macroprogramming
    Mais �a va encore plus loin ! Il y a des gens qui contr�lent des v�hicules hybride en... Haskell ! (voir http://cufp.galois.com/2008/schedule.html , deuxi�me entr�e)

    Tu parles de mettre du java sur un carte temps r�el comme si c'�tait l'id�e la plus con du monde. En m�me temps, outre java-card, je ne connais pas beaucoup de technologie embarqu� qui ont des certifications allant de EAL4 � EAL7 pour certaines parties(http://www.slb.com/modules/news/pres....asp?id=16261& , http://www.gemalto.com/php/pr_view.php?id=239 et www.trusted-logic.com/IMG/pdf/EAL7.pdf). Et oui, il y a des domaines o� �a compte !

    Pour le calcul ? Prenons l'exemple de la crypto. M�me la NSA fait le paris du langage de haut niveau : http://swik.net/nsa+cryptol

    Et puis bon, m�me si on supprime tout �a, il reste quand m�me quelques ptits truc dans le vaste monde de l'informatique hein... La majorit� des softs que j'utilise ne sont pas vraiment contraints en terme de ressources. Mon lecteur de musique, ok, il y a le coeur qui d�code le MP3 (admettons que le faire en C reste une bonne id�e), mais tout ce qu'il y a autour, la gestion des playlists, intelligentes ou non, des pr�f�rences, du marquage des musique, des jaquette de CD, j'en passe et des meilleurs, je ne suis pas sur que �a gagne tant que �a � �tre cod� en C ou C++, m�me au contraire quand je vois � quel point il est simple de faire crasher Amarok2 en cliquant un peu trop vite.

    Mon logiciel de chat, que ce soit x-chat pour IRC ou pidgin pour le reste, je vois assez peu de contraintes lourdes.

    Mon gestionnaire de bureau, je pr�f�rerais qu'il soit �ventuellement un poil de cul moins r�actif mais en contre partie crash moins souvent (KDE 4.2 n'est vraiment pas au point...).

    Le probl�me de faire du bas niveau pour d�buter, c'est qu'apr�s, on reste toute sa vie persuad� qu'il n'y a pas d'autres moyens pour produire du code efficace, alors que les compilos font des *vraies* merveilles (allez, encore un exemple ! http://www.cse.unsw.edu.au/~dons/papers/CLS07.html ) et qu'il existe plein de DSL (domain specific languages) de haut niveau et de grande qualit�.
      0  0

  10. #10
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Par d�faut
    Citation Envoy� par Mac LAK Voir le message
    Ne pas apprendre � lib�rer sa m�moire d�s le d�part, c'est s'exposer � ne JAMAIS le faire... Et �a se v�rifie sans arr�t, tout comme ne compter que sur le compilo ou la puissance de la machine pour optimiser un programme ou algo.
    C'est comme �a qu'on a de "jeunes dipl�m�s" qui pensent avoir l'id�e du si�cle en voulant mettre du Java dans une carte embarqu�e temps r�el, en croyant que "rajouter un CPU" ou "2 Go de RAM" n'aura aucune influence ni sur le co�t de la carte, ni sur le temps de d�veloppement... Et tout �a parce qu'ils trouvent le C (ou le C++) "trop dur" avec tout ces pointeurs tout vilains...
    Je suis un jeune dipl�m� ayant appris � programmer sur des langages de haut niveau (Caml, Java) et je suis aujourd'hui fan de C# et allergique au C. Pourquoi ? Eh oui, parce que je trouve la gestion de la m�moire et les pointeurs en C trop chiants et trop souvent sources de probl�mes qu'on n'a pas dans les langages de haut niveau.

    J'ai appris � programmer sur des langages de haut niveau, et pourtant j'ai toujours r�ussi � programmer en C sans avoir trop de probl�mes li�s � la m�moire. Pourquoi ? Parce que ce n'est pas parce qu'on a appris les langages de haut niveau qu'on ne sait pas comment fonctionne la m�moire et qu'on n'y fait pas attention.

    Je fais du C#, �a ne m'emp�che pas de faire attention � ce qui est allou� par mes objets, �a ne m'emp�che pas d'optimiser mon code, et �a ne me fait pas oublier d'appeler les m�thodes Dispose() de mes objets.

    Je crois que tu confonds deux choses qui n'ont rien � voir: �tre conscient et soucieux de la gestion de sa m�moire, et utiliser un langage qui t'oblige � g�rer la m�moire � la main, �a n'a rien � voir. Si tu apprends *correctement* un langage haut niveau, c'est � dire en apprenant correctement les diff�rences entre valeurs et r�f�rences, en sachant ce qu'est un GC et comment il fonctionne dans les grandes lignes, et si tu apprend � programmer en �tant soucieux de tes algorithmes et de leur complexit�, de tes objets et de leur dur�e de vie, alors tu n'auras pas souvent de probl�mes en C.

    Ce que tu confonds c'est d'une part les langages de haut niveau, et d'autre part l'apprentissage de la programmation "n'importe comment", en utilisant toutes les biblioth�ques sans jamais se soucier de comment un truc est impl�ment� et quelle est sa complexit�.

    Ne jurer que par le Java et le C# ne m'a pas emp�ch� de programmer des trucs complexes et bien cod�s en C sans jamais avoir vraiment appris le C, �a ne m'a pas emp�ch� non plus d'obtenir de tr�s bons r�sultats au concours ACM en optimisant bien mes algorithmes et en d�passant en performances des programmes en C mal optimis�s, et sans avoir besoin de rajouter 2 Go de ram comme tu dis. Par contre �a m'a permis de passer bien plus de temps � apprendre de bons algorithmes et � utiliser les subtilit�s des langages de haut niveau au lieu de le passer � d�bugger des segfaults.

    Etre conscient de comment marche un GC et �tre capable de prendre sa place dans un langage ou il n'y en a pas, c'est important. Se forcer � faire le travail du GC soi-m�me, c'est une perte de temps. Si des gens se sont emmerd�s � cr�er des langages de haut niveau, c'est pour que nous puissions les utiliser pour impl�menter rapidement des algorithmes p�chus au lieu d'allouer notre m�moire � la main. Et � mon avis ce qui manque � une majorit� de d�veloppeurs de nos jours, c'est pas de savoir bien g�rer sa m�moire, mais de savoir coder de bons algos.
      0  0

  11. #11
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    D�tails du profil
    Informations personnelles :
    �ge : 51
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par d�faut
    Citation Envoy� par alex_pi Voir le message
    Quoi ?? "Langage de haut niveau" ne veux pas dire performance catastrophique ! Il faut arr�ter avec �a...
    Preuves ? Tu as un programme Java, Haskell ou OCaml (un minimum complexe bien s�r) qui tourne aussi vite que son �quivalent C/C++, � comp�tence de d�veloppeur �gale bien entendu ?
    Citation Envoy� par alex_pi Voir le message
    qui ont des perfs de l'ordre de 1,5 � 2,5 fois plus lent que C.
    ... Ce qui est un gouffre dans le domaine du temps r�el ou de l'embarqu�, et un surco�t colossal sur le mat�riel pour l'adapter � certains runtimes.

    Citation Envoy� par alex_pi Voir le message
    Tu nous dis que �a �limine tout une palanqu� de domaine o�, si je comprends bien, il faudrait tout g�rer � la paluche pour avoir la moindre chance d'obtenir un r�sultat probant. Permet moi d'en douter
    Tu en seras plus convaincu en devant g�rer plusieurs liens Ethernet gigabit � plein d�bit, par exemple... Ou en devant acqu�rir deux ou trois mille signaux chaque milliseconde, et les traiter au passage, et ceci sur plusieurs cartes CPU en m�me temps.
    Mon unit� de calcul "pr�cise", c'est la MICROseconde... La milli, c'est mon unit� "macroscopique", celle "de base".
    Et quel que soit le cas, la charge CPU doit �tre mesur�e, et rester sous les 66% de fa�on � assurer les pics de charge.

    Ce n'est absolument pas le m�me monde. Et dans le mien, les langages "usines � gaz" n'ont pas leur place avant des d�cennies, et encore !! Car quel que soit le cas, les gens voudront toujours faire cracher le moindre bout de puissance � ces machines...

    Citation Envoy� par alex_pi Voir le message
    Pour le temps r�el, il existe des GC "temps r�el", c'est � dire ne consommant pas plus que N milisecondes par tour de GC, et M milisecondes en tout par secondes.
    Des MILLIsecondes ?? Et je perds mes signaux, moi, pendant que ton GC fait mumuse ?

    Citation Envoy� par alex_pi Voir le message
    Pour le r�seau, il me semble quand m�me qu'Erlang n'est pas tout � fait absurde comme option. De fa�on anecdotique, acebook l'utilise pour son chat par exemple, mais surtout, il est tr�s utilis� entre autre par Erikson et bien d'autres. Et pourtant, c'est un langage fonctionnel.
    Je te parle de "remplir" des liens Gigabit, moi... Et oui, y'a un pluriel.

    Citation Envoy� par alex_pi Voir le message
    Pour l'imagerie et le calcul, je te conseille de jeter un �il � ce que fait le labo de York l� dessus, notamment des papiers comme celui ci : http://eprints.whiterose.ac.uk/5000/ . Ils sont capable de g�rer des terra de donn�es avec Haskell et de les afficher franchement joliment (j'ai pu voir une d�mo il y a un an de �a, c'est vraiment chouette.)
    Je n'ai pas dit que certaines choses �taient impossibles avec des langages de haut niveau... Juste que ce n'�tait pas applicable dans certains domaines.

    Faire une belle image ? Oui, et alors ? Haskel est-il capable, par exemple, de traiter un flux vid�o en temps r�el ? Si oui, � quel pourcentage de charge CPU par rapport � du C/C++ ? Et pour quelle consommation m�moire ? Quel est la taille de l'empreinte sur la m�moire de masse ?
    Ces points conditionnent le co�t direct (en terme de CPU, RAM, m�moire Flash) d'une carte de d�codage... Et donc de son prix ! Et en g�n�ral, si c'est une production de s�rie, le co�t du logiciel devient vite d�risoire par rapport � celui du mat�riel, ce qui fait que le surco�t de temps de d�veloppement du C/C++ devient n�gligeable.

    Citation Envoy� par alex_pi Voir le message
    Et pour l'embarqu� ? Prenons l'exemple des r�seau de capteurs.
    Attention, l� : un capteur, ce n'est pas forc�ment quelque chose contenant du logiciel (c'est m�me rarement le cas). De plus, il est tr�s courant en automatisme d'avoir des automates de centralisation, qui permettent de s'affranchir du bus de terrain au profit d'un m�dium plus "courant" et, surtout, plus r�pandu dans l'informatique classique.
    Typiquement, tu vas avoir un automate qui servira de passerelle CAN / Ethernet, programm� en C/C++, et qui permettra de d�charger le PC de supervision de la phase d'acquisition. L'automate est cadenc� sur le bus de terrain, en acquisition permanente.
    Et c'est souvent transparent pour le PC de supervision, tout comme cela permet d'exploser les limites de bande passante des bus de terrain en ne polluant pas la BP d'un sous-r�seau avec le trafic "inutile" d'un autre sous-r�seau.

    Ceci ne change absolument pas le fait que la plupart des PC de supervision sont programm�s avec des langages de haut niveau, d'ailleurs... Mais l'acquisition des donn�es des capteurs est en g�n�ral hors de leur port�e vu les contraintes temporelles, ils les r�cup�rent donc "en bloc" avec un tr�s l�ger diff�r�, les automates passerelles �tant, eux, programm�s pour r�agir instantan�ment � certaines conditions ("arc-r�flexe" avant d'informer la supervision d'un probl�me)...

    Citation Envoy� par alex_pi Voir le message
    En m�me temps, outre java-card, je ne connais pas beaucoup de technologie embarqu� qui ont des certifications allant de EAL4 � EAL7 pour certaines parties
    Moi, j'en connais plein... Certifications SIL4, DO178-B, etc, tous en C ou en Ada.

    Citation Envoy� par alex_pi Voir le message
    Pour le calcul ? Prenons l'exemple de la crypto. M�me la NSA fait le paris du langage de haut niveau : http://swik.net/nsa+cryptol
    Langage de MOD�LISATION... Pour �tre derri�re impl�ment� notamment en VHDL (plus bas niveau, tu meurs) et C. La partie Haskell reste, � mon sens, anecdotique : si c'est pour crypter un mail, le temps d'ex�cution n'est pas critique en effet.

    Citation Envoy� par alex_pi Voir le message
    m�me au contraire quand je vois � quel point il est simple de faire crasher Amarok2 en cliquant un peu trop vite.
    Pas de probl�mes avec WinAmp, pour ma part... Et ce serait �tonnant qu'il ne soit pas en C/C++ !
    Je n'aime pas Unix, ni Linux : je dois avoir la scoumoune avec, faut croire, mais je fais exploser les Linux � la cha�ne. Je trouve toujours crevant de "tuer" un XTerm en faisant un "cat" d'un fichier binaire dedans, pour ma part...

    Citation Envoy� par alex_pi Voir le message
    Mon gestionnaire de bureau, je pr�f�rerais qu'il soit �ventuellement un poil de cul moins r�actif mais en contre partie crash moins souvent (KDE 4.2 n'est vraiment pas au point...).
    L� encore, je n'ai pas de soucis avec le GDI Windows... Et celui d'XP n'est pas en C#, hein...

    Citation Envoy� par alex_pi Voir le message
    Le probl�me de faire du bas niveau pour d�buter, c'est qu'apr�s, on reste toute sa vie persuad� qu'il n'y a pas d'autres moyens pour produire du code efficace, alors que les compilos font des *vraies* merveilles (allez, encore un exemple ! http://www.cse.unsw.edu.au/~dons/papers/CLS07.html ) et qu'il existe plein de DSL (domain specific languages) de haut niveau et de grande qualit�.
    Un programme est �crit pour effectuer une action pr�cise : c'est son but premier, le "non n�gociable".
    Ensuite, tu as deux choses � consid�rer : le temps de d�veloppement, et le temps d'ex�cution. Le premier est crucial dans certains domaines o� un programme n'est ex�cut� qu'une ou deux fois, mais il faut le r�sultat apr�s le moins de temps possible, quitte � passer autant de temps en ex�cution qu'en d�veloppement. Les langages de haut niveau ont leur place ici.
    Le deuxi�me, c'est le temps d'ex�cution, qui dans d'autres domaines sont totalement fondamentaux, car le programme est �crit une seule fois, mais est ex�cut� des millions de fois... Le temps de d�veloppement est n�gligeable par rapport au temps d'exploitation, et c'est le royaume des langages bas niveau o� la performance est le seul crit�re accept�.

    Entre les deux, tu as les petits softs ex�cut�s sur stations de travail personnelle, plus ou moins souvent, et qui peuvent �tre d�velopp�s aussi bien en C "hardcore" qu'en langage de tr�s haut niveau. Car l'utilisateur veut alors juste la FONCTION, peu importe que le programme s'ex�cute en 3 ms ou en une seconde, tant que �a reste "rapide" � l'�il humain.

    Mets un jour les pieds dans l'informatique industrielle, tu verras alors que les contraintes n'ont absolument rien � voir avec celles que tu connais...

    Citation Envoy� par alex_pi Voir le message
    Et �tre contraint � le faire d�s le d�part, c'est s'exposer � ne JAMAIS d�couvrir un gros paquet d'algorithme et de structure de donn�e qui ne tol�rent pas la gestion manuelle de la m�moire (sauf �ventuellement les "smart pointers"), comme toutes les structures de donn�es persistantes � partage implicite. Encore une fois, je pr�f�re que le d�butant explore un maximum des possibilit�s offertes, quitte � se limiter le jour o� il est oblig� d'utiliser un langage bas niveau � gestion manuelle des ressources.
    Qui peut le plus peut le moins : je n'ai JAMAIS vu un d�veloppeur "bas niveau" ne pas r�ussir � ma�triser un langage de plus haut niveau... Et, souvent, mieux que quelqu'un qui a d�marr� avec (le GC, c'est bien, mais lib�rer soi-m�me, c'est encore mieux, �a �vite les pics de charge et les micro-blocages le temps de lib�rer le bouzin).

    Par contre, la r�ciproque est souvent fausse...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au s�rieux, de toutes fa�ons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum ad�quat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO
      0  0

  12. #12
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    D�tails du profil
    Informations personnelles :
    �ge : 51
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par d�faut
    Citation Envoy� par ZoinX Voir le message
    J'ai appris � programmer sur des langages de haut niveau, et pourtant j'ai toujours r�ussi � programmer en C sans avoir trop de probl�mes li�s � la m�moire.
    J'aime bien le "sans avoir trop de probl�mes"... Normalement, c'est "jamais", tu sais ?

    Citation Envoy� par ZoinX Voir le message
    �a ne me fait pas oublier d'appeler les m�thodes Dispose() de mes objets.
    Sauf qu'avec un GC, si tu oublies, �a n'a pas de cons�quences. Sans un GC, c'est critique, et les mauvaises habitudes sont rapides � prendre... Trop rapides, d'ailleurs.

    Citation Envoy� par ZoinX Voir le message
    Si tu apprends *correctement* un langage haut niveau
    C'est l� que le b�t blesse, justement : le "correctement" semble plut�t rarissime.

    Citation Envoy� par ZoinX Voir le message
    Par contre �a m'a permis de passer bien plus de temps � apprendre de bons algorithmes et � utiliser les subtilit�s des langages de haut niveau au lieu de le passer � d�bugger des segfaults.
    Je connais les m�mes algorithmes, pour en avoir impl�ment� quelques uns d'assez velus. Les langages de haut niveau n'y sont absolument pour rien...

    Citation Envoy� par ZoinX Voir le message
    Si des gens se sont emmerd�s � cr�er des langages de haut niveau, c'est pour que nous puissions les utiliser pour impl�menter rapidement des algorithmes p�chus au lieu d'allouer notre m�moire � la main.
    Tu as raison sur ce point : c'est pour faire un programme rapidement que ces langages existent. Mais ce n'est absolument pas pour qu'ils soient performants, ni donner de "bonnes" habitudes de programmation, cf. mon post du dessus.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au s�rieux, de toutes fa�ons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum ad�quat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO
      0  0

  13. #13
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50

    Informations professionnelles :
    Activit� : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par d�faut
    Moi, j'en connais plein... Certifications SIL4, DO178-B, etc, tous en C ou en Ada.
    je les connais aussi celles l�.
    par contre je ne connaissais pas EAL4 et 7.
      0  0

  14. #14
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50

    Informations professionnelles :
    Activit� : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par d�faut
    Bref ce que j'en retiens (et que je savais d�ja) c'est qu'il faut choisr un outil adapt� a son besoin.

    un tournevis ne sers pas a enfoncer des clous par exemple.
      0  0

  15. #15
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    21
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 21
    Par d�faut
    toutes les grandes entreprises d'informatique posent des questions d'algorithmique pendant leurs entretiens. Pourquoi ? Parce que c'est ce qui fait le plus d�faut aux informaticiens de nos jours.

    Etre capable de coder dans un langage bas niveau ? Bien s�r que c'est important. Mais c'est tout � fait possible � apprendre sur le tas quand on connait un langage haut niveau et qu'on a une connaissance sommaire de son fonctionnement sous le capot.

    Etre capable de pondre de tr�s bons algos qui n'ont pas une complexit� exponentielle ? C'est bien plus important encore. Ton algo exponentiel en C, m�me sur-optimis�, il aura du mal � battre un algo en n log(n) en java... Et malheureusement, � en croire les entreprises, c'est ce point l� qui fait bien plus d�faut aux informaticiens d'aujourd'hui. Et il est �galement beaucoup plus dur � apprendre sur le tas pour qui n'a jamais fait d'algorithmique.

    l'algorithmique permet des gains de performances incomparables aux petites optimisations sp�cifiques � un langage.

    Quand tu postules dans une entreprise d'informatique assez g�n�raliste, on veut savoir si tu es capable de sortir de bons algos. Si tu ne connais du tout le langage utilis� c'est pas grave, on sait que si t'es bon en algo le reste tu peux l'apprendre sur le tas assez facilement.

    L'algorithmique c'est justement la seule partie de l'informatique qu'il est tr�s difficile d'apprendre en dehors de l'�cole (et je parle bien d'apprendre � trouver des algorithmes efficaces dans n'importe quelle situation, pas d'apprendre par coeur des algorithmes connus), et c'est aussi la plus complexe et la plus importante.
      0  0

  16. #16
    alex_pi
    Invit�(e)
    Par d�faut
    Citation Envoy� par Mac LAK Voir le message
    Preuves ? Tu as un programme Java, Haskell ou OCaml (un minimum complexe bien s�r) qui tourne aussi vite que son �quivalent C/C++, � comp�tence de d�veloppeur �gale bien entendu ?
    Et � temps de d�veloppement ? Temps de d�bug ? Niveau de confiance dans le code ? Lisibilit� pour les relecteurs et mainteneur ? Modularit� et r�utilisabilit� ? Ah nan, tout �a, RAF, faut que �a aille vite !

    Citation Envoy� par Mac LAK Voir le message
    Tu en seras plus convaincu en devant g�rer plusieurs liens Ethernet gigabit � plein d�bit, par exemple... Ou en devant acqu�rir deux ou trois mille signaux chaque milliseconde, et les traiter au passage, et ceci sur plusieurs cartes CPU en m�me temps.
    On me souffle dans l'oreillette que ceci ne serait pas l'activit� majoritaire dans le monde de l'informatique.

    Citation Envoy� par Mac LAK Voir le message
    Attention, l� : un capteur, ce n'est pas forc�ment quelque chose contenant du logiciel (c'est m�me rarement le cas). De plus, il est tr�s courant en automatisme d'avoir des automates de centralisation, qui permettent de s'affranchir du bus de terrain au profit d'un m�dium plus "courant" et, surtout, plus r�pandu dans l'informatique classique.
    Typiquement, tu vas avoir un automate qui servira de passerelle CAN / Ethernet, programm� en C/C++, et qui permettra de d�charger le PC de supervision de la phase d'acquisition. L'automate est cadenc� sur le bus de terrain, en acquisition permanente. [...]
    A la rigueur, mais ce n'est qu'une suggestion, lit les abstract des liens qu'on t'envoie, juste histoire de voir si tu parles de la m�me chose, des m�mes probl�me. Genre par exemple des cas o� on ne peut pas se permettre d'avoir un PC qui r�cup�re les infos de tous les capteurs, parce qu'on a un r�seau ad-hoc avec un seul point de sortie, et que si les 4000 capteurs causent en m�me temps, �a va pas passer. Et que donc il faut faire des requettes sur les capteurs, des filtres locaux, etc, etc.


    Citation Envoy� par Mac LAK Voir le message
    Langage de MOD�LISATION... Pour �tre derri�re impl�ment� notamment en VHDL (plus bas niveau, tu meurs) et C. La partie Haskell reste, � mon sens, anecdotique : si c'est pour crypter un mail, le temps d'ex�cution n'est pas critique en effet.
    L� encore, bon, on pourrait sugg�rer la lecture des deux premi�res phrases hein, histoire de voir que cryptol est COMPIL� vers VHDL. C'est un peu comme si tu disais qu'un programme en Caml est "par derri�re impl�ment� notamment en langage machine" parce qu'il y a un compilo natif...

    Citation Envoy� par Mac LAK Voir le message
    Le temps de d�veloppement est n�gligeable par rapport au temps d'exploitation, et c'est le royaume des langages bas niveau o� la performance est le seul crit�re accept�.
    J'ai ou�e dire que les gens qui r�fl�chissent comme �a se retrouve avec des multiplication des couts par des facteurs 2 ou plus � cause du temps monstrueux de d�bug. Mais ils ont du oublier d'embaucher des magiciens du malloc/free

    Citation Envoy� par Mac LAK Voir le message
    Qui peut le plus peut le moins : je n'ai JAMAIS vu un d�veloppeur "bas niveau" ne pas r�ussir � ma�triser un langage de plus haut niveau...
    Je crois qu'en fait qu'il faudrait qu'on s'accorde sur ce qu'est un langage haut niveau. Parce que moi, quand je regarde un mec qui a d�but� en bel imp�ratif bien main dans le cambouis et qui tente de faire du Caml ou du Haskell, le r�sultat n'est pas mauvais, il est catastrophique. Parce qu'ils pensent optimisation avant de penser correction et lisibilit� de l'algo.
      0  0

  17. #17
    R�dacteur/Mod�rateur

    Avatar de gorgonite
    Homme Profil pro
    Ing�nieur d'�tudes
    Inscrit en
    D�cembre 2005
    Messages
    10 322
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d'�tudes
    Secteur : Transports

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 10 322
    Par d�faut
    Citation Envoy� par alex_pi Voir le message
    Parce que moi, quand je regarde un mec qui a d�but� en bel imp�ratif bien main dans le cambouis et qui tente de faire du Caml ou du Haskell, le r�sultat n'est pas mauvais, il est catastrophique. Parce qu'ils pensent optimisationnnnnnnn avant de penser correction et lisibilit� de l'algo.

    cet avis est certes tout aussi cat�gorique, et donc certainement aussi erronn� que celui de Mac_Lak, mais je pense qu'il faut quand m�me essayer de ne pas tout m�langer... a priori toute personne ouverte d'esprit, et faisant preuve d'un minimum de bonnes volont�s, comprendra rapidement les concepts d'un nouveau paradigme, et seulement apr�s � force de pers�v�rance r�ussira � obtenir un r�sultat potable hors d'un simple cas d'�cole
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog
      0  0

  18. #18
    alex_pi
    Invit�(e)
    Par d�faut
    Citation Envoy� par gorgonite Voir le message
    cet avis est certes tout aussi cat�gorique, et donc certainement aussi erronn� que celui de Mac_Lak
    Oui, bon, ok Disons autrement : le changement de paradigme et l'�l�vation dans les niveau d'abstraction me semble demander plus d'effort que le d�tail technique de la gestion manuelle de la m�moire.
      0  0

  19. #19
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    D�tails du profil
    Informations personnelles :
    �ge : 51
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par d�faut
    Citation Envoy� par ZoinX Voir le message
    Je suis tout � fait d'accord avec �a. Sauf que toutes les grandes entreprises d'informatique posent des questions d'algorithmique pendant leurs entretiens. Pourquoi ? Parce que c'est ce qui fait le plus d�faut aux informaticiens de nos jours.
    Je ne sais pas pour toi, mais pour ma part, j'avais des cours d'algorithmique qui n'�taient s�rement pas faits en m�me temps que les cours de programmation... Les deux choses n'ont rien � voir, du moins dans un premier temps.

    Citation Envoy� par ZoinX Voir le message
    Mais c'est tout � fait possible � apprendre sur le tas quand on connait un langage haut niveau et qu'on a une connaissance sommaire de son fonctionnement sous le capot.
    Et t'as alors un mauvais d�veloppeur "bas niveau"... Le genre qu'on ne peut laisser seul, et qui fait plus le boulet que le coll�gue. Que crois-tu ? Que c'est "facile" � apprendre, qu'on peut le faire "sur le tas" comme �a, en un clin d'oeil ?
    Non : sur le tas, � partir de th�ories de langages de haut niveau, tu n'apprends pas � d�velopper, mais soit � bidouiller pour franchir les barri�res syntaxiques, soit � faire des usines � gaz. En g�n�ral, c'est les deux en m�me temps.

    Citation Envoy� par ZoinX Voir le message
    Etre capable de pondre de tr�s bons algos qui n'ont pas une complexit� exponentielle ? C'est bien plus important encore. Ton algo exponentiel en C, m�me sur-optimis�, il aura du mal � battre un algo en n log(n) en java...
    Et en quoi le langage de haut niveau permet-il d'avoir un algorithme qui ne serait pas impl�mentable en C/C++ ?

    Citation Envoy� par ZoinX Voir le message
    C'est pour �a qu'il est beaucoup plus important d'apprendre � l'�cole l'algorithmique plut�t que l'optimisation des performances gr�ce aux langages bas niveau.
    Ce n'est s�rement pas � l'�cole que j'ai appris l'optimisation... Ce serait plut�t par obligation professionnelle, les clients �tant rarement comiques au sujet des performances.

    Citation Envoy� par ZoinX Voir le message
    Parce que l'algorithmique permet des gains de performances incomparables aux petites optimisations sp�cifiques � un langage.
    Merci de m'apprendre mon m�tier, hein... S�r, j'ai jamais appris ce qu'�tait une complexit� !

    Citation Envoy� par ZoinX Voir le message
    Si tu ne connais du tout le langage utilis� c'est pas grave, on sait que si t'es bon en algo le reste tu peux l'apprendre sur le tas assez facilement.
    Dans une bo�te � viande, peut-�tre. Dans ma bo�te, on exigera les deux, et nous ne sommes pas les seuls � agir ainsi.

    Citation Envoy� par ZoinX Voir le message
    Et coup de bol, c'est aussi la plus int�ressante et la plus p�dagogique, et celle qui donne en g�n�ral le plus envie aux �tudiants de se lancer dans l'informatique.
    Tiens, � ce sujet, tu remarqueras que la syntaxe usuelle (=la plus courante) des algos est extr�mement proche du Pascal/Ada... Tiens donc...

    Citation Envoy� par ZoinX Voir le message
    Or tu auras du mal � justifier qu'un langage de bas niveau soit plus adapt� (ou m�me aussi adapt�) qu'un langage de haut niveau � l'apprentissage de l'algorithmique.
    Donc, je vais �tre direct et brutal : apprends � lire.

    La d�fense du C/C++ que je fais, c'est afin de montrer que si ce ne sont pas des langages "visibles", ils restent n�anmoins essentiels � tout point de vue, et forment une tr�s vaste partie de l'informatique... Certes, c'est plus du march� cach� qu'autre chose, mais cela reste quelque chose d'�norme.

    Le monde du temps r�el, de l'embarqu� et des optimisations, c'est un monde invisible pour la plupart des gens. Reste quand m�me le fait que sans eux, ton langage de haut niveau serait sur du papier uniquement.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au s�rieux, de toutes fa�ons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum ad�quat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO
      0  0

  20. #20
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rh�ne Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par d�faut
    Citation Envoy� par alex_pi
    Disons autrement : le changement de paradigme et l'�l�vation dans les niveau d'abstraction me semble demander plus d'effort que le d�tail technique de la gestion manuelle de la m�moire.
    C'est une question de parcours personnel: ce qui co�te le plus d'effort c'est la formation initiale.

    Pour toi la POO c'est enfantin (l'h�ritage c'est du sous-typage sur les enregistrements) mais si tu vas sur les forums Delphi/Java/C# tu verras que la POO c'est vraiment difficile. Tout para�t plus facile quand on est d�j� tr�s bon.

    C'est la m�me chose pour le bas niveau, si on commence par l� il faut suer pour le maitriser.

    Le bas niveau c'est grisant, le haut niveau c'est gratifiant, ce sont deux motivations diff�rentes, il y a autant de comp�tence � acqu�rir des deux c�t�s et la tienne n'est pas plus primordiale que celle d'un autre.

    Je comprends d'o� vient ton id�e: tu pense que C est pauvre en types composites tandis que Caml est pauvre en type primitifs. Mais que �a n'est pas probl�matique puisque la vraie comp�tence c'est de savoir bien typer. Selon moi c'est aussi probl�matique que l'inverse: bien typer c'est la partie lisibilit�/qualit�/preuve, l'autre moiti�, la partie programme/performance/bindings est tout aussi importante � mes yeux.

    Citation Envoy� par alex_pi
    Parce que moi, quand je regarde un mec qui a d�but� en bel imp�ratif bien main dans le cambouis et qui tente de faire du Caml ou du Haskell, le r�sultat n'est pas mauvais, il est catastrophique. Parce qu'ils pensent optimisationnnnnnnn avant de penser correction et lisibilit� de l'algo.
    On ne peut pas programmer en fonctionnel sans s'int�resser � la preuve. Ce qui fait le succ�s des m�thodologies POO c'est que les programmeurs veulent plus de garanties mais sans apporter plus de preuves. Le "mec qui a d�but� en imp�ratif" veut continuer � �crire des programmes, il n'a pas du tout envie d'un typage �labor� qui l'oblige � �crire des pseudo-preuves.
    Quelqu'un qui sait imbriquer des port�es lexicales fait un tr�s bon programmeur POO, il n'a plus rien � apprendre et il le sait. La POO c'est mettre les fonctions dans la m�me port�e (extensible) que les variables. Un programmeur POO n'a pas besoin de (et ne veut pas) parler d'inclusion ou de sous-typage. Il aura d'ailleurs du mal � passer d'un sous-typage sur les enregistrements �, par exemple, un sous-typage sur les modules.
      0  0

Discussions similaires

  1. R�ponses: 1
    Dernier message: 26/10/2012, 10h19
  2. R�ponses: 11
    Dernier message: 04/09/2006, 23h49
  3. R�ponses: 15
    Dernier message: 18/05/2006, 13h43
  4. conception et r�alisation d'une application client/serveur
    Par masvivi dans le forum D�veloppement
    R�ponses: 1
    Dernier message: 24/08/2005, 12h32
  5. Qui a invent� le concept de "langage de programmation?
    Par Biane dans le forum Langages de programmation
    R�ponses: 10
    Dernier message: 11/02/2004, 10h11

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