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 :

Qu’est ce qui fait la beauté d’un logiciel ?


Sujet :

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

  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 888
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 888
    Points : 87 206
    Points
    87 206
    Billets dans le blog
    2
    Par défaut Qu’est ce qui fait la beauté d’un logiciel ?
    Qu’est ce qui fait la beauté d’un logiciel ?
    D’après un bloggeur, cela n’a rien à avoir avec la technologie et la beauté du code source

    On a l’habitude de discuter de la beauté d’un code ou d’une architecture logicielle. Mais il s’agit d’un aspect que ne voit pas l’utilisateur final pour lequel le logiciel est développé. Suite à plusieurs débats interminables sur ce sujet, on peut résumer que la beauté d’un code peut être définie par plusieurs critères. On peut rappeler entres autres, la clarté du code, le style d’écriture c’est-à-dire le nommage, l’utilisation intensive ou limitée de commentaires, les espaces, etc. Certains développeurs associent parfois la beauté du code à la performance. Bref, il s’agit d’une appréciation subjective qui est souvent liée à la technologie utilisée, mais là encore il s’agit d’un aspect que les utilisateurs finaux ignorent totalement.

    Ce que les utilisateurs finaux voient, c’est l’interface utilisateur. Et ce qu’ils peuvent apprécier, c’est la convivialité du logiciel, comment est-ce qu’il leur permet de résoudre leurs problèmes et combien agréable c’est d’interagir avec le logiciel. Si les codeurs ont un penchant pour le code, c’est le logiciel qui compte pour les utilisateurs. Il est alors important de se demander ce qui caractérise un logiciel capable d’emballer les utilisateurs, étant donné que c’est par leur appréciation que l’on peut définir le succès du logiciel.

    Pour le bloggeur Ole Lensmar, un beau logiciel est difficile à caractériser mais c’est quelque chose qui doit respecter les critères d’intégrité, d’utilisabilité et d’innovation.

    « Un beau logiciel résout un problème, et il le fait mieux que tout autre », a écrit Lensmar. L’intégrité veut que le logiciel soit sans relâche fidèle à son objectif, c’est-à-dire le problème à résoudre. Il ne doit s’écarter ni à gauche, ni à droite pour flirter avec d’autres fonctionnalités. Il doit également rester fidèle à son « ton » avec l’utilisateur.

    Selon le bloggeur, « un beau logiciel vous enseigne la danse, même si vous êtes nouveau à la musique ». Il dit cela pour faire allusion à l’utilisabilité. En d’autres mots, le logiciel doit être capable de guider l’utilisateur à travers les tâches à accomplir sans aucune ambiguïté, tout « en minimisant les risques d’un malentendu ou une mauvaise utilisation de ses fonctionnalités ». Il simplifie l’utilisation pour les utilisateurs moyens, mais permet également aux utilisateurs avancés d’exploiter son plein potentiel sans aucun problème.

    En ce qui concerne l’innovation, Lensmar ne parle de nouvelles fonctionnalités comme on pourrait toute de suite le penser. Pour lui, un beau logiciel n'a pas peur de résoudre les problèmes dans de nouvelles façons. Autrement dit, il doit être flexible de sorte à permettre à l’utilisateur de résoudre un problème d’une manière différente de la façon dont il résout habituellement le problème. Cela doit être le genre de logiciel capable d’ouvrir les yeux de l’utilisateur sur de nouvelles opportunités, qui existaient déjà mais dont l’utilisateur n’était pas au courant.

    Une chose est de définir ce qu’est un beau logiciel, mais c’en est une autre de pouvoir en arriver là. Pour Ole Lensmar, la technologie et la qualité du code ne suffisent pas pour créer un beau logiciel. Ce qu’il faut, c’est « une véritable vision du produit, nourrie par son créateur, le propriétaire du produit et l'équipe produit », et cela ne peut pas être exprimé dans un carnet de commandes ou traduit par une expression de besoins des utilisateurs. Le développeur doit aimer ses utilisateurs et investir dans leur interaction avec le logiciel.

    Source : Smartbear

    Et vous ?

    Qu’en pensez-vous ?

    Qu’est-ce qu’un beau logiciel ? Quelle est la place de la technologie et la qualité du code dans la création d’un beau logiciel ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 10
    Points : 23
    Points
    23
    Par défaut Un beau logiciel ?
    Effectivement, si on se place du côté du développeur ou de celui de l'utilisateur, on aura certainement une définition différente de ce qu'est un beau logiciel. Je suis développeur mais j'ai été sensibilisé (et essaie de le resté) à l'aspect pratique de ce que je développe vis à vis de l'utilisateur final. Après tout, c'est pour ce dernier que je travaille (et aussi pour gagner de l'argent si on se veux plus bassement terre à terre).

    Mais un autre aspect doit-être pris en considération. Les clients pour qui je travaille on souvent des demandes d'évolutions, il peut aussi y avoir des bugs (personne n'est parfait). Et je ne suis pas forcément disponible (vacances, déplacement...). Il faut donc que le code soit lisible, facilement compréhensible pour quiconque aurait à le maintenir. C'est un aspect extrêmement important il me semble.

  3. #3
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    L'utilisateur final déteste se qui n'est pas universelle.

    Les logiciels qui n'ont pas un thème classique par rapport l'os (Nvidia GeForce Experience par exemple), sa agace l'utilisateur.

    Moins c'est exotique (l'interface graphique ou les ligne de commande a rentrer), plus c'est beau. C'est ma définition.

    Chez Apple ils l'ont bien compris, l'interface de MacOS n'a pas énormément changée en 10ans.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 498
    Points : 1 148
    Points
    1 148
    Par défaut
    Qu’en pensez-vous ?
    • Cela existe la beauté d'un logiciel ? Je croyais que c'était un myth de développeur (:p)
    • Du peu d'experience que j'ai a partir de N+1 ou N+2 vers l'infini, ils en ont rien a f***re de la qualité logiciel. C'est le temps et le cout de developpement.
    • J'ai deja vu des logiciels qui implantaient des design Pattern juste pour que ce soit jolie. Mais au final, cela servait a rien.



    Qu’est-ce qu’un beau logiciel ? La technologie et la qualité du code ont-elles vraiment une place dans la création d’un beau logiciel ?
    • Je pense que la qualité d'un code n'est pas donne a tout le monde. C'est comme un sabre, il faut beaucoup de pratique et de pragmatique. Dans le monde de l'entreprise, le temps est un bien précieux. La plupart du temps (Ce n'est pas vrai partout) on corrige plus de bugs qu'on développe.


    Apres tout le monde le sait, l'utilisateur regarde juste l'interface graphique ou si il va cliquer de la meme facon que sont autre logiciel p****ri (un bouton de plus ou de moins, va le destabilise).

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Citation Envoyé par koyosama Voir le message
    Apres tout le monde le sait, l'utilisateur regarde juste l'interface graphique ou si il va cliquer de la meme facon que sont autre logiciel p****ri (un bouton de plus ou de moins, va le destabilise).
    Et pourtant si

    Imagines, tu utilises un logiciel et il y a 2 boutons: "Sauvegarder" et "Exporter"

    Ou inversement, il n'y a que "Rechercher", mais toi tu veux "Rechercher et Remplacer" ("Remplacer" est une option de "Rechercher")

  6. #6
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 529
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 529
    Points : 4 739
    Points
    4 739
    Par défaut
    pff..

    Si les utilisateurs avaient réellement du gout, le sens de l'esthétique et de la qualité, ça se saurait.
    et ce n'est uniquement pour le monde des logiciels que cette "grande question" se pose...
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  7. #7
    Membre confirmé Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Points : 466
    Points
    466
    Par défaut
    Un beau logiciel repond d'abord aux fonctionnalités puis l'ergonomie ensuite la facilité d'exécution des tâches. Lorsque l'utilisateur retrouve 80% de cela alors pas de souci
    Ce qui ne me tue pas me rend plus fort.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 614
    Points : 713
    Points
    713
    Par défaut
    Est ce que quelqu'un a un lien vers un post de blog d'un ingénieur méca présentant le concept d'une "belle machine à laver" ? Ou un menuisier posant les fondation de ce qu'est une "belle scie sauteuse" ? Sérieux, quand on bosse dans l'IT on n'a tellement rien à dire qu'on ouvre un sujet sur la définition d'un "beau logiciel" ? Un logiciel est un outil, on s'intéresse réellement à la "beauté" d'un outil ? À la rigueur, ça se trouve dans les objets qui trônent dans notre salon (disons B&O) ou dans le bureau (un bureau avec un iMac a quand même plus la classe qu'avec une boite en plastic cheap :p ) mais un logiciel une fois qu'on ne s'en sert plus, on ne le voit plus... Enfin, je ne sais pas, certains le laissent peut être actif parce qu'il est Bô...

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Points : 1 041
    Points
    1 041
    Par défaut
    Est ce que quelqu'un a un lien vers un post de blog d'un ingénieur méca présentant le concept d'une "belle machine à laver" ? Ou un menuisier posant les fondation de ce qu'est une "belle scie sauteuse" ? Sérieux, quand on bosse dans l'IT on n'a tellement rien à dire qu'on ouvre un sujet sur la définition d'un "beau logiciel" ? Un logiciel est un outil, on s'intéresse réellement à la "beauté" d'un outil ? À la rigueur, ça se trouve dans les objets qui trônent dans notre salon (disons B&O) ou dans le bureau (un bureau avec un iMac a quand même plus la classe qu'avec une boite en plastic cheap :p ) mais un logiciel une fois qu'on ne s'en sert plus, on ne le voit plus... Enfin, je ne sais pas, certains le laissent peut être actif parce qu'il est Bô...
    D'accord mais c'est ce qui explique que certains informaticiens sont incompris de leurs uilisateurs.
    ils ont fait un beau code mais ca répond pas au besoin. c'est pas grave c'est beau

  10. #10
    Invité
    Invité(e)
    Par défaut
    Beau code ? hmm

    Pouvez-vous donnez vos conceptions de beaux codes par des exemples, bien beau de parler d'art de programmation, mais je doute que tous aient une notion commune x) (langage web )

    Perso je me pencherais plus vers:
    - le squelette du code, comment il tient debout
    - son workspace
    - sa compilation
    - ses dépendances (trop = très mauvais )
    - certains tours de passe-passe permettant de raccourcir le code
    - organisation des instructions (asm/c/c++/...) du code pour l'aérer lors de sa lecture (alignement de bloc d'instru par colonne, isolation de bloc de code en mini fonction si possible, ...)
    - documentations inline dans le code
    - Et un peu d'art-ascii pour "habiller" le code
    - Et enfin une un peu de couleur dans le code, après tout un tableau en couleur est plus beau/vivant qu'un en noir et blanc.

    skeleton:
    Code : 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
    close loop
    {
        if (keyboard(z, q, s, d, alt, ²) or mouse(right_click + move_mouse)) is active, then
        {
            if msg = (alt + ²)                 , then quit the close loop
            if msg = (z, q, s, d)              , then move   the camera
            if msg = (right_click + move_mouse), then rotate the camera
    
            clear  the screen
            update the scene(object) (by applying object rotation/movement and camera rotation/movement      )
            update the screen        (by project the scene into the array_screen through perspective equation)
            show   the screen        (by send the array_screen to the screen                                 ) 
        }
    
        show the frame per second
    }
    
    quit the program
    workspace:
    Code : 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
    HackEngine:
    |Headers:
    ||library:
    ||- ASM_library.h
    ||
    ||source:
    ||- source_def.h
    ||- source_macro.h
    ||
    ||WinAPI:
    ||- WinAPI_def.h
    ||- WinAPI_macro.h
    ||
    ||- function_ext.h
    |
    |Resources:
    ||custom_exe:
    ||help:
    ||obj3D:
    ||screenshot:
    |
    |Sources:
    ||data:
    ||- scene.asm
    ||- values.asm
    ||
    ||garbage:
    ||
    ||update_scene:
    |||camera:
    |||- 1-manage_camera.asm
    |||- 2-manage_camera.asm
    |||- 3-manage_camera.asm
    |||
    |||object:
    |||- 1-manage_object.asm
    |||- 2-manage_object.asm
    |||
    |||scene:
    |||- 1-manage_scene.asm
    |||- 2-manage_scene.asm
    ||
    ||update_screen:
    ||- update_screen.asm
    ||
    ||- create_obj.asm
    ||- manage_event.asm
    ||- source_function.asm
    ||- WinAPI_function.asm
    |
    |- source.asm
    |- readme.txt
    compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    nasm -f win64 1.ASM/HackEngine/source.asm
    gorc /o /machine x64 1.ASM/HackEngine/Resources/custom_exe/custom_exe.rc
    golink /console /entry start 1.ASM/HackEngine/source.obj 1.ASM/HackEngine/Resources/custom_exe/custom_exe.obj C:\Windows\System32\kernel32.dll C:\Windows\System32\user32.dll C:\Windows\System32\gdi32.dll C:\Windows\System32\msvcrt.dll C:\Windows\System32\winmm.dll
    dépendances :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    kernel32.dll
    user32.dll
    gdi32.dll
    msvcrt.dll
    winmm.dll
    aeration du code:
    Code : 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
            start:
           ;{
                mov     [instance]         , rcx
                mov     [previous_instance], rdx
                mov     [cmd_line]         , r8
                mov     [cmd_show]         , r9d
    
                LoadImageA_     0, "data\Hackengine_logo.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE
                mov             [init_windows.icon_program], rax
    
                system_     "color 0A"
                system_     "title HackEngine"
    
                ; Set personalize resolution
                    mov     [float_length], f32(1203.0)
                    mov     [float_width ], f32(899.0)
                    mov     [int_length  ], i32(1203)
                    mov     [int_width   ], i32(899)
    
                call_   set_info_screen, init_windows
    
                .l1:
               ;{
                    call_   windows_event, show_fps
               ;}
                jif  [quit] ,=, i32 false, .l1
    
                system_     "echo DONE"
    
                ret
           ;}
    documentations inline:
    Code : 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
            func:
           ;{
                ;=============================================================================================.
                ; Name    : func(...)                                                                        ;|
                ; Purpose : None                                                                             ;|
                ; Input   : None                                                                             ;|
                ; Output  : None                                                                             ;|
                ; Destoy  : None                                                                             ;|
                ; Define  : None                                                                             ;|
                ; Data    :                                                                                  ;|
                            [section .data]                                                                  ;|
                           ;{                                                                                ;|
                                    ; None                                                                   ;|
                           ;}                                                                                ;|
                            [section .code]                                                                  ;|
                ;=============================================================================================.
               ;{                                                                                            ;|
                    ; Code                                                                                   ;|
               ;}                                                                                            ;|
                ;=============================================================================================.
                ; / func                                                                                      |
                ;=============================================================================================.
    
                ret
           ;}
    art-ascii:
    Code : 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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    ;==========================================================================================================================================================================================================
    ; HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER      HEADER
    ;==========================================================================================================================================================================================================
    ;{
            %include    "1.ASM\HackEngine\Headers\source\source_def.h"
            %include    "1.ASM\HackEngine\Headers\source\source_macro.h"
            %include    "1.ASM\HackEngine\Headers\WinAPI\WinAPI_def.h"
            %include    "1.ASM\HackEngine\Headers\WinAPI\WinAPI_macro.h"
            %include    "1.ASM\HackEngine\Headers\library\ASM_library.h"
            %include    "1.ASM\HackEngine\Headers\function_ext.h"
    ;}
    ;==========================================================================================================================================================================================================
    ; END_HEADER      END_HEADER      END_HEADER      END_HEADER      END_HEADER      END_HEADER      END_HEADER      END_HEADER      END_HEADER      END_HEADER      END_HEADER      END_HEADER
    ;==========================================================================================================================================================================================================
    
    ;==========================================================================================================================================================================================================
    ; CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE      CODE
    ;==========================================================================================================================================================================================================
    [section .code]
    ;{
            start:
           ;{
                mov     [instance]         , rcx
                mov     [previous_instance], rdx
                mov     [cmd_line]         , r8
                mov     [cmd_show]         , r9d
    
                LoadImageA_     0, "data\Hackengine_logo.ico", IMAGE_ICON, 0, 0, LR_LOADFROMFILE
                mov             [init_windows.icon_program], rax
    
                system_     "color 0A"
                system_     "title HackEngine"
    
                ; Set personalize resolution
                    mov     [float_length], f32(1203.0)
                    mov     [float_width ], f32(899.0)
                    mov     [int_length  ], i32(1203)
                    mov     [int_width   ], i32(899)
    
                call_   set_info_screen, init_windows
    
                .l1:
               ;{
                    call_   windows_event, show_fps
               ;}
                jif  [quit] ,=, i32 false, .l1
    
                system_     "echo DONE"
    
                ret
           ;}
    ;}
    ;==========================================================================================================================================================================================================
    ; END_CODE      END_CODE      END_CODE      END_CODE      END_CODE      END_CODE      END_CODE      END_CODE      END_CODE      END_CODE      END_CODE      END_CODE      END_CODE      END_CODE
    ;==========================================================================================================================================================================================================
    
    ;==========================================================================================================================================================================================================
    ; FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION      FUNCTION
    ;==========================================================================================================================================================================================================
    [section .code]
    ;{
    Voilà à vous maintenant de définir votre conception de l'art.

    Sinon j'ai remarqué une nette tendance de la disparition de cet art au fur et à mesure qu'on acquiert un langage de niveau supérieur
    Dernière modification par Invité ; 07/07/2015 à 15h09.

  11. #11
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    - ses dépendances (trop = très mauvais )
    Je ne suis pas d'accord avec vous sur ce point.
    Un bon code dois justement utiliser a mon sens un maximum de bibliothèques/dépendances existante (si nécessaire bien sur), car en générale, les développeurs (dont moi y compris) réinventent très mal la roue.

    En python j'arrive a faire un code aussi puissant que si je l'avais fais en C ou en assembleur, car j'utilise des bibliothèques bien optimisé, pour le calcule scientifique par exemple, je défis quoiqu'onques de faire un code plus performant que numpy (qui est fais en C).
    numpy est conçue par de brillant mathématiciens et ce depuis plus de 10ans , aucun développeur ne peut faire mieux dans le temps qui lui est impartis pour faire son projet, et même au delà, je connais très peu de personnes qui soient des génies en informatique et en mathématiques.

    - certains tours de passe-passe permettant de raccourcir le code
    C'est le gros défauts des langages de haut niveau, manipuler par les débutants.
    En php ou en python, on arrive a faire de ces trucs que parfois on se demande comment le langage peut accepter de telles ineptie.

  12. #12
    Invité
    Invité(e)
    Par défaut
    Hmm, j'entends bien, mais

    Quid de l'optimisation ? Car je peux très bien faire une analogie flagrante avec la paperasse administrative, plus il y en a et moins c'est rapide de les faire, et puis ça me donne un peu mal de tête quand je vois tous ces protocoles de communications dues à trop de questionnement à la chaine.

    Et cela rend la compréhension du code à la fois complexe et compliqué.

    Enfin perso je veux absolument jouer la carte de la transparence, c'est vraiment un but fondamental selon moi, plus que tout.

    Peut-être la solution est "d'optimiser" la fonction mère au lieu d'enfanter des fonctions sur fonctions

    Pour le php et python ? ^^ surement je ne l'ai ai jamais essayé, enfin ma première ligne du code était en python: 2 + 2

    Sinon il y a aussi le fait de warning/error qui empêche ces "hacks" ^^

  13. #13
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Citation Envoyé par shaynox Voir le message
    Hmm, je vois ce que tu veux dire, mais

    Quid de l'optimisation ? Car je peux très bien faire une analogie flagrante avec la paperasse administrative, plus il y en a et moins c'est rapide de les faire, et puis ça me donne un peu mal de tête quand je vois tous ces protocoles de communications dues à trop de questionnement à la chaine.

    Et cela rend la compréhension du code à la fois complexe et compliqué.

    Enfin perso je veux absolument jouer la carte de la transparence, c'est vraiment un but fondamental selon moi, plus que tout.
    Le truc, c'est le bon et le mauvais développeur. Réduire les dépendances, quand on est meilleur que lamoyenne, c'est une bonne chose. Quand on est nul, c'est se priver de la seule chance de faire illusion. La plupart d'entre nous sont plus souvent dans le camp des "nuls". Perso, si il s'agit de traiter un fichier comptable en masse, j'en ai tellement bouffé que je peut faire mieux que n'importe quel outils supposé me faciliter la vie(j'en ai usé quelques uns). Mais pour la plupart des tâches standard simples, envoyer un mail, afficher un bouton, si je n'ai pas de bibliothèque, je suis mort.

    Éliminer les dépendances, c'est bien gentil, mais encore faut-il avoir le niveau pour faire ça.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Enfaite le truc est qu'on n’apprend pas ce genre de pratique (donc c'est bien beau de parler des élites qui savent faire ce genre de truc en "claquant des doigts") et cela n'aide pas beaucoup de même que la com faite autour de ces bibliothèques qui sont légions agit de la même sorte.

    Enfin le principe est le même, toujours trouver le juste milieu


    Bon après je doute bien qu'on va me parler du temps nécessaire qui est bien trop long en entreprise, mais bon j'ai l'intime conviction que ce sont les dépendances en masse qui causent des soucis d'opti.
    Et je parle à tous les niveaux:
    - Transfert de fichiers
    - Chargement de page web qui n'est pas instantané
    Bref tous les petits tracas du quotidien avec un OS et ses logiciels.


    Après peut-être je me trompe, mais faire 50 (au hasard, si ce n'est plus) appelle de fonctions pour ne faire qu'une chose, ça en fait des appels et je n’imagine même pas ce que serrait le nombre pour les protocoles du web.

    Bref cela consiste à faire des séries de passages de paramètres (tout en respectant la convention d'appel + utilisation de la pile pour passer des param mais aussi sauvegarder les registres utiliser par la fonction), des call/ret
    De plus on ne dirait pas que c'est très vorace en instru comme ça (func(para#0, para#1)), mais ce protocole de communication pour fonctions utilise beaucoup de ligne de code asm, de même lors de la récupération de ces paramètres dans la fonction appelée.


    Après peut-être est-ce la faute aux concepteurs de l'OS qui n'ont pas fait l'effort de créer de belles et utiles fonctions à tout faire, va savoir


    NumPy ? je ne connaissait pas ^^ je vais y jeter un coup d'oeil
    Dernière modification par Invité ; 05/07/2015 à 15h37.

  15. #15
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Le truc, c'est le bon et le mauvais développeur. Réduire les dépendances, quand on est meilleur que lamoyenne, c'est une bonne chose. Quand on est nul, c'est se priver de la seule chance de faire illusion. La plupart d'entre nous sont plus souvent dans le camp des "nuls".
    Ils faut parfois des années pour faire une dépendances optimisé et stable, tu ne peut pas les recrée toi même, sa serait contre productif d'une part, et de plus certaine demande des connaissances dans d'autre que l'informatique pure, la compatibilité, la physique, l'électronique...


    Dans mon commentaire, je parlais de vrai bibliothèques/dépendances, j'ai pris l'exemple de numpy, car en l'occurrence personne ici (moi y compris) n'a le niveau pour faire une bibliothèque similaire.
    On peut être un fanatique de l'asm comme shaynox, sa ne change rien au problème, numpy a été développer par plusieurs mathématiciens et informaticiens, tous se savoir faire et le développement de tels algorithmes peut difficilement être acquis par 1 personnes.

  16. #16
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Citation Envoyé par sazearte
    (...) en l'occurrence personne ici (moi y compris) n'a le niveau pour faire une bibliothèque similaire. (...)
    Pas sûr.

    Mais je suis plutôt d'accord avec ce que tu dis dans ce fil.

    D'accord aussi avec el_slapper.

  17. #17
    Membre confirmé

    Homme Profil pro
    Mâle reproducteur chez Amazon
    Inscrit en
    Mars 2006
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Mâle reproducteur chez Amazon

    Informations forums :
    Inscription : Mars 2006
    Messages : 207
    Points : 490
    Points
    490
    Par défaut
    Citation Envoyé par martopioche Voir le message
    Est ce que quelqu'un a un lien vers un post de blog d'un ingénieur méca présentant le concept d'une "belle machine à laver" ? Ou un menuisier posant les fondation de ce qu'est une "belle scie sauteuse" ? Sérieux, quand on bosse dans l'IT on n'a tellement rien à dire qu'on ouvre un sujet sur la définition d'un "beau logiciel" ? Un logiciel est un outil, on s'intéresse réellement à la "beauté" d'un outil ? À la rigueur, ça se trouve dans les objets qui trônent dans notre salon (disons B&O) ou dans le bureau (un bureau avec un iMac a quand même plus la classe qu'avec une boite en plastic cheap :p ) mais un logiciel une fois qu'on ne s'en sert plus, on ne le voit plus... Enfin, je ne sais pas, certains le laissent peut être actif parce qu'il est Bô...
    +1
    Un jour, j'ai vu un trick génial dans un code J2SE. Mais c'est invisible pour l'utilisateur. Regardez le code de la page d'accueil Google. Vous voyez le moindre commentaire? Et puis, un code en assembleur sera beaucoup plus efficace qu'un code en Java. Mais l'assembleur, je trouve pas ça très beau... Enfin, après, les goûts et les couleurs....
    Pour vivre heureux, vivons cachés. Proverbe alien.

  18. #18
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 262
    Points : 634
    Points
    634
    Par défaut
    Ahh !
    Très rigolots ces pubs.
    On ne pourra jamais s'entendre sur ces choses là.
    La beauté c'est quelque chose de subjective, c'est comme le goût.
    Vous pouvez faire l'expérience, pour un même logiciel intérroger
    many users et vous verrai !
    Aujourd'hui apprenant, demain appreneur.
    N'accuse pas le puits d'être trop profond,
    c'est peut-être ta corde qui est trop courte

  19. #19
    Rédacteur
    Avatar de pcaboche
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    2 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Singapour

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 785
    Points : 9 716
    Points
    9 716
    Par défaut
    Citation Envoyé par Michael Guilloux Voir le message
    Qu’est-ce qu’un beau logiciel ? Quelle est la place de la technologie et la qualité du code dans la création d’un beau logiciel ?

    Citation Envoyé par ???
    Always code as if the person who ends up maintaining your code will be a violent psychopath who knows where you live.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  20. #20
    Membre confirmé
    Avatar de vinmar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 139
    Points : 516
    Points
    516
    Par défaut
    Citation Envoyé par martopioche Voir le message
    Est ce que quelqu'un a un lien vers un post de blog d'un ingénieur méca présentant le concept d'une "belle machine à laver" ? Ou un menuisier posant les fondation de ce qu'est une "belle scie sauteuse" ? Sérieux, quand on bosse dans l'IT on n'a tellement rien à dire qu'on ouvre un sujet sur la définition d'un "beau logiciel" ? Un logiciel est un outil, on s'intéresse réellement à la "beauté" d'un outil ? À la rigueur, ça se trouve dans les objets qui trônent dans notre salon (disons B&O) ou dans le bureau (un bureau avec un iMac a quand même plus la classe qu'avec une boite en plastic cheap :p ) mais un logiciel une fois qu'on ne s'en sert plus, on ne le voit plus... Enfin, je ne sais pas, certains le laissent peut être actif parce qu'il est Bô...
    C'est ce qu'on appelle le design :

    Le design est la création d’un projet en vue de la réalisation et de la production d’un objet (produit, espace, service) ou d’un système, qui se situe à la croisée de l’art, de la technique et de la société.
    Source : https://fr.wikipedia.org/wiki/Design

    Un logiciel est un outil, on s'intéresse réellement à la "beauté" d'un outil ?
    J'en vois des exemples tous les jours : une belle voiture (qui peut-être considérée comme un outil), une scie sauteuse avec une poignée ergonomique et une belle gueule, un stylo, un bleu de travail, etc. C'est ce qui te pousse à acheter telle ou telle marque.

    La beauté d'un logiciel se définie peut-être en fonction des yeux au travers desquels il est vu.

    Pour ma part, je suis développeur et j’exècre les logiciels moches au niveau de l'interface utilisateur même si le code est propre. Tu auras beau avoir un chassie de Porche, si tu a la carrosserie d'une Traban, ce ne sera pas beau.

    Qu’est-ce qu’un beau logiciel ? Quelle est la place de la technologie et la qualité du code dans la création d’un beau logiciel ?
    Un logiciel est beau lorsqu'il répond au besoin + accompagné d'un design [voir définition plus haut] qui apporte une vraie plus value + un code stable, solide et conforme aux règles utilisée par l'équipe qui le développe => comme ça tout le monde est content à son niveau.

    Et comme dit lankoande : "On ne pourra jamais s'entendre, c'est trop subjectif."
    M. Lebowski : Avez-vous un emploi, monsieur ?
    Le Duc : Un emploi ?
    M. Lebowski : Ne me dites pas que vous cherchez un emploi dans cette tenue un jour de semaine ?
    Le Duc : Un jour de… Quel jour on est ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/12/2010, 10h29
  2. faire un logiciel qui fait parsing d'un fichier xml existant sur le serveur
    Par wajdiisi2007 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/08/2007, 12h09
  3. je cherche un logiciel qui fait du reverse engeneering
    Par walid0577 dans le forum Autres
    Réponses: 2
    Dernier message: 29/03/2007, 00h16
  4. Réponses: 12
    Dernier message: 16/03/2004, 14h21

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