Developpez.com - Rubrique Qt

Le Club des Développeurs et IT Pro

Les lots sont enfin annoncés

Tenterez-vous de remporter le N900 ?

Le 2009-11-22 22:01:04, par dourouc05, Responsable Qt & Livres
Envoyé par yan
Après des mois d'attente insupportable et une notation totalement indiscutable (utilisation de dés, escalier et autres méthodes reconnues ), voici enfin les résultats :

  1. bobti89 - 42.50
  2. CameleonTH - 37.37
  3. Z3vil - 35.50
  4. khayyam90 - 34.33
  5. knopix77 - 33.58
  6. LittleWhite - 30.54
  7. 0x4e84 - 29.44
  8. Amnell - 22.50



MAJ 10 mai 2010

Un grand bravo à bobti89 !
Le tout première vainqueur des défis Qt


Vous trouverez le détails des notes et commentaires ici: http://qt.developpez.com/defis/01-bu...rot/resultats/
Le juge 2 n'ayant pue tout noter, seules les notes des juges 1, 4, 5 et 6 sont comptabilisées pour la note finale.
Les sources : http://qt.developpez.com/defis/01-bu...abrot/defis.7z

Bien sûre si vous avez des questions, des remarques, un besoin de précision et autre joyeuseté, n'hésitez pas à nous demander

Enfin, un tout grand merci (de la part de toute l'équipe) à tous les participants pour leur participation et leur enthousiasme durant ce défi !
Nous sommes heureux que ce tout premier défi vous ait plus.

Bonjour,

Depuis longtemps, vous languissez à l'attente de leur lancement. C'est maintenant chose faite. Mais ne traînons pas plus en vains bavardages, passons aux choses sérieuses.

Quel est le sujet de ce premier défi ? Une petite image pour vous mettre sur la piste ?



Version plus grande
Version haute qualité

Reconnaissez-vous ce chef-d'oeuvre ? Il s'agit du Buddhabrot. Non, il ne s'agira pas de devoir l'implémenter : tel n'est pas le but. Vous devrez simplement l'afficher (ceci n'est que la base du défi : libre à vous d'ensuite continuer sur cette piste !), nous vous en fournissons une implémentation simpliste : voici la deuxième partie du défi, utiliser toute la puissance de Qt (multithreading, par exemple) pour l'optimiser. Seuls Qt et le C++ sont autorisés.

Le défi s'ouvre ce lundi 30 novembre 2009 et s'achèvera le dimanche 28 février 2010 à minuit.

Un nouveau forum est à votre disposition pour présenter votre solution au défi : les défis Qt. Aussi, les lots à remporter sont annoncés !

La page d'accueil des défis Qt
Les règles
Dépôt des projets
Le forum du défi

Le défi du Buddhabrot

N'hésitez pas à poster ci-après toute questions relative aux défis, à leurs règles, etc. ! Pour des questions plus techniques, non relatives directement au défi, utilisez le forum Qt ou le forum multithreading avec Qt, selon la nature de votre question.

Envisagez-vous de participer à ce défi ? Connaîtriez-vous des gens qui seraient intéressés par ce défi ?
  Discussion forum
224 commentaires
  • dourouc05
    Responsable Qt & Livres
    Bonjour,

    Apparemment, l'interdiction du C en choque certains. Voici plus de détails sur ce point.

    C et C++ ont une origine commune, c'est vrai. Mais c'est il y a quelques années. Depuis lors, les deux langages ont évolué différemment. Des incompatibilités sont apparues. Autoriser le C, ce serait ne pas l'autoriser entièrement.

    Le C++ est réputé pour être un langage de haut-niveau, le C pour un langage de bas-niveau. De nos jours, il est nettement moins important de se préoccuper du bas-niveau : on préfère développer "plus haut", comme Qt. Autoriser le C, c'est aussi revenir en arrière à ce niveau.

    Le C++ est nativement multiparadigmes. Le C, biparadigmes : impératif et objet (ce dernier en jouant très fort sur le langage, l'amenant dans ses extrémités - comme GTK+). Le C++ : impératif, objet (principalement), mais aussi fonctionnel et bien d'autres (même s'il n'est pas prévu pour ceux-là). Le C++ est donc plus permissif à ce niveau que le C.

    On voit donc aisément que le C n'est pas le C++. Si on autorise le C parce qu'il ressemble au C++, on devra aussi pouvoir supporter des pléthores d'autres langages : le Java, qui ressemble beaucoup au C++ ; le C#, proche du Java ; l'Objective-C ; le D ; le PHP ; et bien d'autres !

    Aussi, l'ancêtre C with Classes et autres préversions du C++ ne sont pas autorisées pour les mêmes raisons. De plus, il s'agit de standards plus que dépassés, qui n'apportent pas grand chose à la programmation. Ce standard est aussi très différent du C++ de nos jours : beaucoup de nouveautés qui permettent de rendre un code plus lisible ne sont pas encore arrivées, le "C++ moderne" n'était pas encore dans le jeu.

    Il existe quand même une exception : l'ECMAScript. En effet, il est supporté par Qt depuis longtemps (dès l'arrivée du module QtScript dans Qt 4.3, et bien avant avec QSA).

    De même, C++ for CUDA n'est pas autorisé (la question du C for CUDA et du Fortran for CUDA est déjà soulevée), même s'il utilise le C++ : personne ne s'est à présent opposé contre l'interdiction de librairies externes, et CUDA en est une.

    Aussi, il est possible d'obtenir de meilleures performances grâce au GPGPU : serait-il juste de devoir mieux noter un programme qui tire parti du GPGPU qu'un autre, qui se contente du CPU, alors que le programme sur CPU a subi des optimisations plus profondes ?

    J'espère avoir ainsi répondu à ces interrogations sur ces interdits.
  • Est-ce qu'il y a des chances à ceux que le prochain défi débarquent début âout ? Qu'est-ce que je suis impatient...
  • dourouc05
    Responsable Qt & Livres
    Tiens, un déterrage de topic pour deux raisons :
    - la première, suite à l'arrivée d'emblèmes pour le forum http://www.developpez.net/forums/d10...eveloppez-com/ et notamment de trophées, que bobti89 aura l'honneur d'avoir un trophée pour avoir triomphé avec brio de ce premier défi !
    - la deuxième : il y aura à nouveau de l'activité dans ce coin des forums Qt, même que ça va débuter le 1e juin .
  • dourouc05
    Responsable Qt & Livres
    Lights étant finie, on passe à l'annonce : http://www.developpez.net/forums/sho....php?t=1088439. (Pour les connaisseurs : évidemment, le morceau était lancé un peu avant le message précédent !).

    Veuillez donc aller troller dans ce nouveau topic ! (Note : aussi valable pour moi ).
  • LittleWhite
    Responsable 2D/3D/Jeux
    WOuah, on a trois mois pour ça... ( ne s'imagine pas encore la taille du boulot ).

    Bon bah j'espère que je vais dégagé du temps pour ce défi là.

    Merci tout l'équipe Qt du forum de nous avoir proposé ce défi
    ( Lira les règles un peu plus tard )
  • yan
    Rédacteur
    Envoyé par LittleWhite
    WOuah, on a trois mois pour ça... ( ne s'imagine pas encore la taille du boulot ).
    Avec les vacances qui arrive, 3 mois, c'est bien. Ca laisse le temps de peaufiner les idées et de coder sans stresse

    alors qui va participer?
  • LittleWhite
    Responsable 2D/3D/Jeux
    Moi o/ ( quand j'aurais lu les règles )
  • JulienDuSud
    Membre confirmé
    Je viens de faire un petit test: tout se calcul et s'affiche bien, barre de progression (mais pas de progression de l'image en temps réel), toussa...

    Ca m'a pris une demi heure tout au plus, j'imagine que les 3 mois c'est vraiment pour peaufiner tout ça (logiciel complet de génération de fractales optimisé).

    Par contre, étant plutôt nul en math (de ce niveau), je vois pas trop comment appréhender la partie génération de fractales, mais j'avoue ne pas m'être documenté .

    À titre d'exemple, le générateur fournit me calcule le Budhabrot en 2 minutes et 10 secondes sur un E8400 (3.0Ghz) sur 1 thread.

    Je crois que c'est celui qui prend le plus de temps, et je trouve vraiment ça énorme, d'où la nécessité d'une optimisation.
  • manudwarf
    Membre éclairé
    Je vais peut-être participer (comprendre : sûrement oui). À titre d'information, je compte reprendre l'idée pour montrer l'intérêt du calcul distribué (OpenCL, tout ça) pour un de mes projets de BTS (je dois en faire cinq et le jour de l'oral le jury en choisit un pour m'interroger).

    Question idiote : pourquoi interdire le C alors que le programme sera fait en C++ ?
  • yan
    Rédacteur
    Envoyé par manudwarf
    Question idiote : pourquoi interdire le C alors que le programme sera fait en C++ ?
    Parceque Qt est en C++ et C++ ce n'est pas du C.
    Après faut comprendre ce que l'on entend par du C.
    * Si tu fait des pointeur pour les widget c'est normale. Là y as pas trop le choix.
    * Si tu fait des char* au lieu de std::string ou QString, c'est du C.
    * Si tu fait int *t =new int[10] au lieu de std::vector ou QVector ou autre, c'est du C
    * Si tu fait des pointeurs de tous les côtés, au lieu d'utiliser des pointeurs intelligent, c'est plutôt du C.
    * ...
    C'est dans ce sens là. Je sais pas si c'est claire...