CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Blabla] le /pub des barbus libres

IIIIIIIIIIIIIll
IIIIIIIIIIIIIll
Niveau 10
08 juin 2011 à 13:17:31

Well, tu as ton avis, tu aimes tes outils et je t'incite pas à les changer. En attendant, je me permets de me poser la question vis-à-vis de l'utilité de taper sur Ruby, alors que Python est vachement plus nocif. (Plus répandu, et vachement inférieur comme langage.)

En attendant, tu peux effacer les fameux messages ?

4223161584
4223161584
Niveau 10
08 juin 2011 à 13:50:18

Ce qui m'étonne toujours c'est cette haine contre le C++. C'est pourtant un langage de génie ! Tu peux tout faire avec, du procédural, du fonctionnel, de l'orienté objet, etc... Je crois que les gens sont tellement frustrés de pas comprendre les techniques avancées du genre, la métaprogrammation, la S(T)L et d'autres trucs très utiles, qu'ils n'ont qu'une envie c'est de rabaisser ce langage. Alors que c'est de loin le langage le plus riche et intéressant qui existe.

chris_27
chris_27
Niveau 10
08 juin 2011 à 13:55:42

4223161584: Tu ne connais manifestement pas ocaml toi… Non seulement tu peux en faire bien plus qu'en C++, mais en plus la théorie qui est derrière est bétonnée à bloc (entre autre, ocaml trouve les types tout seul, même en POO).

chris_27
chris_27
Niveau 10
08 juin 2011 à 14:02:54

IIIIIIIIIIIIIll: je ne vois pas l'intérêt de supprimer tes messages. Il n'y a rien de choquant, rien d'offensant, et ça ouvre une discussion (potentiellement) intéressante.

IIIIIIIIIIIIIll
IIIIIIIIIIIIIll
Niveau 10
08 juin 2011 à 15:44:05

C'est que j'ai dit pas mal de c*nneries, 0.7L de vodka dans le sang aidant (Oui, être bourré à 18h30, c'est lamentable, mais j'ai mes raisons. :hum: ). Bref, j'ai réagi au quart de tour zappant complètement le caractère volontairement trollesque des slides. Un comportement idiot, donc. :-(
(Je m'étais pourtant bien marré sur le chien dont on a rajouté des pattes. :gni: )

Au passage, Ruby n'est pas fonctionnel à proprement parler. C'est juste que la "Ruby way to do something" utilise des lambdas un peu partout (la librairie standard en fait un usage très intensif), qui fait qu'au final, tu fais plutôt du fonctionnel impur que de l'OO au sens classique genre Java.

4223161584 :d) C++ a ses problèmes aussi. Personnellement, ce me gêne principalement, c'est la gestion de la mémoire qui est pas toujours transparente : Y a-t-il une copie ou non ? Le destructeur appelé est-il le bon ? Toutes ces choses sont logiques, mais en pratique, y a pas mal d'erreurs qui viennent de là, et elles sont pas toujours triviales. (Typiquement, quand tu veux faire du polymorphisme et que le destructeur de la classe mère est le destructeur par défaut -> pas d'implémentation du destructeur par défaut dans la classe fille, et seg fault à l'exécution. Trouver l'origine d'une erreur pareille, c'est vraiment la misère, sachant que les linkers laissent passer ça. :peur: )
Ou encore l'héritage d'une classe template, qui est assez foireux. (Ah, OK, en plus d'hériter de la classe, il faut encore la déclarer comme amie... Mais comment ils ont trouvé cette solution, eux ?!?)
Ou encore les pointeurs de fonction qui ont un typage trop restrictif. (Dans le sens que tu dois surcharger n fois ta fonction, si tu veux pouvoir passer aussi des méthodes à ta fonction. C'est pa bô.)

gabriel_knight
gabriel_knight
Niveau 10
08 juin 2011 à 15:56:47

Chris>> Il y a beaucoup de différences entre le ocaml et le Caml light ( :malade: ) ?

chris_27
chris_27
Niveau 10
08 juin 2011 à 16:17:14

Moi, la seule chose que j'ai eu besoin de faire quand j'ai du migrer de caml light à caml, c'est découvrir ce qu'est un module (il faut faire List.hd au lieu de hd, etc.).

Après, tout dépend si tu veux t'attaquer au O ou pas. Si tu veux juste faire joujou avec le prompt, tu peux le faire sans soucis (autre que celui ci-dessus).

IIIIIIIIIIIIIll: spas grave de mordre au troll hein. Ça ne serait pas un troll sinon. :rire:
Quant au fonctionnel, ça s'applique pour moi dès que tu as des « lambdas » justement.

4223161584
4223161584
Niveau 10
08 juin 2011 à 17:31:43

IIIIIIIIIIIIIll: La gestion de la mémoire c'est le seul point technique que tu soulèves. Cependant il y a plein d'outils qui gèrent bien cela facilement. Et si jamais tu dois faire tes propres pool ou autre, c'est pas insurmontable non plus. Et les deux autres points, je trouve quand même que pour faire hériter une classe template, c'est une erreur de conception. Et en ce qui concerne les fonctions, je préfère utiliser des foncteurs.

Je ne suis pas un troll C++ > all.

XKCD
XKCD
Niveau 10
08 juin 2011 à 17:42:52

Pour répondre à la question sur les différences entre le OCamL et le CamL light :

- Comme l'a dit Chris, il faut appeller chaque fonction avec son petit nom de module (List.truc pour toutes les fonctions s'appliquant sur des listes, Array.bidule, etc.)
- Le code compilé est beaucoup plus rapide (un facteur variant entre 5 et 15 est généralement observé, je me souviens que des mecs avaient fait des tests pour Taupic)
- Les erreurs obtenues sont plus claires (je trouve)
- L'OCamL dispose de modules en plus (de fonctions par défaut dont ne dispose pas CamL light)
- Les entrées-sorties sont différentes (et je dirais, mais ça c'est personnel, que là enore c'est mieux foutu en OCamL, où ils ont repris le Printf du C)
- Pour certains modules ça change vraiment tout (je me rappelle que j'avais été un peu perdu les fois où j'avais dû utiliser le module qui fait des tas et celui qui fait des ensembles) m'enfin après une période d'adaptation ça passe.

En résumé, de mon point de vue, l'OCamL est utilisable dans la vie de tous les jours (c'est le langage vers lequel je me dirige dès que je dois coder de l'algorithmique), le CamL light non :noel:

À propos de la gestion de la mémoire, j'ai vraiment du mal à comprendre comment un langage comme le C++ dont la devise semble être "démerdez-vous" a autant de succès, et même on considère ça comme un avantage ! Le nombre de programmeurs capables d'écrire du code plus propre d'un point de vue gestion de la mémoire que celui généré automatiquement par OCamL, c'est quoi, 2% ?

chris_27
chris_27
Niveau 10
08 juin 2011 à 18:33:08

« Et les deux autres points, je trouve quand même que pour faire hériter une classe template, c'est une erreur de conception. » :d) non, ce sont les template de C++ qui sont une erreur de conception. Quand on compare aux foncteurs d'un langage fonctionnel digne de ce nom, on pleure quoi… :malade:

Un autre truc qui me rend malade, c'est de taper des :
   std::map< int, std::list<std::pair<int,bool> > >::const_iterator
dans mes boucles for. J'espère vraiment que le nouveau standard va mettre fin à ce calvaire quasi-quotidien, parce que devoir saisir des types pareils alors que le compilo a déjà toutes les infos, c'est la mort.

Enfin, le C++ est quelque chose d'extrêmement vaste. Et si les gens crachent dessus, c'est en grande partie parce beaucoup de développeurs l'exploite très mal.

XKCD: heu… et si tu compilais avec ocamlopt ? :hap:

Sinon, j'ignorais que caml light avait un module pour les ensembles. Effectivement, s'il en a un, c'est sûrement pas un foncteur comme dans la version de Ocaml. :-)

Enfin, je te rejoins sur ton résumé. Caml light c'est un outil purement pédagogique, mais Ocaml lui est un vrai langage utilisé en production.

4223161584
4223161584
Niveau 10
08 juin 2011 à 18:41:55

"std::map< int, std::list<std::pair<int,bool> > >::const_iterator"

Dans C++0x, c'est corrigé avec le mot clef auto.

XKCD
XKCD
Niveau 10
08 juin 2011 à 18:42:44

Heu, je compile déjà avec ocamlopt... J'ai jamais vraiment compris la différence avec ocamlc, d'ailleurs :(

Pour la comparaison de rapidité entre CamL Light et OCamL, je me basais sur cette source http://taupic.telecom-bretagne.eu/forum/viewtopic.php?f=4&amp;t=8#p62

chris_27
chris_27
Niveau 10
08 juin 2011 à 18:46:04

Oui, sauf que c'est c++1x et que ça n'a pas passé le cap de draft, que ce n'est donc pas supporter unanimement dans les compilateurs, et donc que je ne peux pas utiliser ça en production.

Quand je disais « J'espère », je pensais à une apparition rapide des choses actuellement proposées dans le c++1x dans les compilateurs de ma vraie vie. :-)))

4223161584
4223161584
Niveau 10
08 juin 2011 à 18:57:18

Beaucoup de compilateurs sont assez au point sur certains points clefs de C++0x :

http://wiki.apache.org/stdcxx/C++0xCompilerSupport

Sinon personnellement je trouve pas que la syntaxe soit un problème. Les erreurs renvoyés sont parfois assez bof avec les template, mais j'utilise stlfilt qui corrige tout donc bon.

chris_27
chris_27
Niveau 10
08 juin 2011 à 19:02:48

Non, pas assez pour passer en production. Les options -std=c++0x ça reste trop expérimental pour ce que je dois faire. :(

godrik
godrik
Niveau 30
08 juin 2011 à 19:37:19

4223161584, je fais du C++ toute la journee, et c'est pas un langage que je recommanderait pour un projet simple comme les projets de suckless. Suckless vise des binaires petits, ce qui est peu compatible avec l'utilisation de template. Suckless vise des outils cout et facil a comprendre, ce qui est assez peu compatible avec les constructeurs et les operateurs en C++. C'est parfois difficile pour moi de comprendre pourquoi tel code marche ou tel code ne marche pas. Et je fais du C++ depuis 99 et je pense que j'ai vraiment compris le langage depuis 2005.

Maintenant replace ca le contexte de suckless ou tu veux du code simple a comprendre par une large communaute de developpeurs et tu comprends que faire du C++ est une connerie.

Dargor
Dargor
Niveau 10
09 juin 2011 à 09:00:27

De toute façon le seul langage valable c'est le C.

gabriel_knight
gabriel_knight
Niveau 10
09 juin 2011 à 11:24:13

Merci pour les précisions sur le Ocaml, je vais le mettre sur ma todo list.
En attendant je reste sur le C++ et le Python, les deux langages les plus utilisés en maths financières... Tiens, je vais profiter du fait que je bosse chez moi aujourd'hui pour essayer le compilo Intel.

Shakaan
Shakaan
Niveau 10
09 juin 2011 à 13:50:24

l'ICC? On le trouve ou? Je suis allé voir sur le site d'intel et je crois que c'est payant..

gabriel_knight
gabriel_knight
Niveau 10
09 juin 2011 à 13:58:37

http://software.intel.com/en-us/articles/intel-software-evaluation-center/

30 jours d'évaluation.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment