Le problème avec la commu Ruby, c'est que c'est un langage tellement souple qu'on peut faire tout et n'importe quoi et avoir un résultat. Sauf que y'a pas 36 façons d'avoir un résultat optimisé, et que du coup les conseils foireux sont légion ![]()
Ça et le nombrilisme
Le haskell, si t'es dans les maths, devrait te plaire ! C'est un langage _purement_ fonctionnel (je sais pas si t'as déjà utilisé un langage fonctionnel, mais si non, renseignes-toi dessus, c'est franchement un paradigme très intéressant et sans doute un futur probable de la prog), avec un typage statique et fort, mais avec inférence de type (en gros, les avantages d'un typage fort et statique avec la souplesse d'un typage dynamique et faible), évaluation fainéante, ... C'est assez tordu quand on vient d'un autre paradigme, surtout puisque c'est pur (aucun effet de bord dans les fonctions), mais on apprends énormément sur la programmation en général, les structures de données, les constructions abstraites, et les maths ![]()
C'est une très belle bête, un peu compliquée à aborder et en ce moment plutôt utilisée par des académiciens que des professionnels, mais ça a connu une hausse en popularité récemment.
Ouais en effet mais c'est ça la beauté du truc aussi, bon d'un côté même très optimisé c'est pas non plus super rapide. Les mecs qui veulent avoir un temps d'execution minimal ont plutôt intérêt à s'orienter vers le C par exemple.
Sinon j'ai pas trop abordé les langages fonctionnels, j'ai fait un peu d'Objective Caml mais sans plus. Je vais me renseigner: sur Haskell
Mais pour les concours c'est surtout du caml qu'on demande donc je sais pas mais je vais m'y intéresser ![]()
Intéressant ça m'a l'air d'être du caml en beaucoup plus friendly. Je note merci pour la référence ![]()
http://www.codekid.net/grafix/systemd_monster_small.gif
D'ici 2 ou 3 ans on pourra vraiment répondre « Parce que j'aime le caca
» à ceux qui nous demanderont pourquoi on utilise Linux... ![]()
(si tant est que ça s'appelle encore Linux d'ici là
)
Ça sera poettringd ![]()
@Caletlog https://www.jeuxvideo.com/forums/1-38-7665853-2071-0-1-0-0.htm#message_7818230
« Je comprends pas que PHP puisse être si populaire et avoir des serveurs si tentaculaires à configurer (et je parle même pas de Nginx qui, bien que génial, est un monstre de configuration)
»
La plupart des hébergements mutualisés (et y'a souvent une option sur les dédiés) viennent avec Apache/PHP d'installés et de préconfigurés donc la question de la configuration ne se pose souvent pas. Et ça, ça contribue à la popularité.
Après sous pas mal de distributions c'est juste histoire de $PACKAGE_MANAGER install apache2 php5 et basta, honnêtement y'a que sous FreeBSD (et probablement autres BSD, pas testé) où j'ai du me taper de la config dès le début pour avoir un serveur Apache/PHP fonctionnel.
En tout cas on doit pas configurer la même chose sur Apache et Nginx toi et moi, perso mes vhosts Apache prennent entre 10 et 20 lignes à tout casser. Ma config Nginx, c'est une dizaine de lignes générales, puis entre 5 et 15 lignes par serveur. Rien qui ressemble à « un monstre de configuration ».
---
Pour ce que tu dis à propos des communautés « Rails, Javascript, Python, PHP, Java, etc... », je ne suis pas d'accord. Dès qu'il y a une communauté y'a presque forcément des connards dedans, mais ça reste à toi de choisir les gens que tu fréquentes au sein d'une communauté. Alors je te l'accorde, quand la communauté est réduite (Haskell par rapport aux langages sus-cités, BSD par rapport à GNU/linux), ça se voit moins, et t'as plus de chances de tomber sur des gens compétents, mais le reste, faut « juste » utiliser son sens critique et savoir faire du tri.
J'aurais tendance à rajouter aussi « avoir un minmum d'intérêt dans la communauté et/ou le langage, et être un minimum ouvert », le gars qui ne jure que par le C et l'assembleur, qui en est pleinement satisfait, et qui n'a même pas une once de curiosité pour les langages plus haut niveau sera définitivement convaincu que « Rails, Javascript, Python, PHP, Java, etc... » sont des langages de merde et ont une communauté déguelasse, et tu ne pourras rien y faire.
En l'occurence VDD la communautée Rails est assez spéciale.
Sinon je comprends pas pourquoi on commence pas par enseigner des langages fonctionnels quand on débute l'info? Ca colle tellement plus à la logique que les gens ont toujours utilisé, l'année dernière on faisait du C++ c'était très facile mais beaucoup de personnes étaient complétement paumées...
Je suis toujours autant pommé
J'ai mon urxvt qui m'affiche un terminal blanc
Sauf que quand je fais xrdb -query -all
Je vois un urxvt.background #000000 ce qui montre que le background devrait être noir non?
Utilise terminator plutôt ![]()
" Ouais en effet mais c'est ça la beauté du truc aussi, bon d'un côté même très optimisé c'est pas non plus super rapide. Les mecs qui veulent avoir un temps d'execution minimal ont plutôt intérêt à s'orienter vers le C par exemple."
Oui, même du Ruby optimisé ça reste lent, mais l'objectif est pas d'être rapide. Par contre, je pense que y'a aussi beaucoup d'aprioris sur la lenteur du langage à cause de tous les snippets foireux qui circulent. Le langage est déjà lent, certes, mais y'a moyen de le charcuter encore plus, super facilement si on fait pas attention et c'est regrettable.
Un exemple tout bête (bon, qui n'est pas propre au ruby, certes, mais en Ruby on a vraiment un facteur 1000 de différence), c'est la concaténation de longs et/ou nombreux strings au lieu d'utiliser un tableau. Le nombre de fois où je vois ça dans des projets ou conseillé à tout bout de champ... C'est le genre de comportement qui est encouragé par la syntaxe souple et les tutoriels pour débutant, mais c'est juste horrible en terme de performances...
vava > non mais pour la config Apache c'est moi qui grognait parce que j'ai perdu du temps à chercher ces configs, mais j'y touche pas assez pour vraiment juger.
Pour la communauté, bien sûr qu'il y a de tout partout. Mais d'une manière générale, y'a quand même des traits, des groupes qui ressortent quand tu passe du temps sur des ircs ou des forums du langage, c'est indéniable.
"faut « juste » utiliser son sens critique et savoir faire du tri. "
Oui. Ce qu'un débutant n'a pas forcément quand il vient dans une nouvelle communauté.
"Sinon je comprends pas pourquoi on commence pas par enseigner des langages fonctionnels quand on débute l'info? Ca colle tellement plus à la logique que les gens ont toujours utilisé, l'année dernière on faisait du C++ c'était très facile mais beaucoup de personnes étaient complétement paumées... "
Certains le font (ça se fait beaucoup aux États-Unis, de ce que j'ai pu comprendre, notamment avec le Haskell). J'ai un frère en prépa maths et ils ont commencé et touché quasiment exclusive au Caml et un peu de python (mais sans dériver sur l'objet).
Je trouve ça aussi un peu dommage, parce qu'effectivement ça correspond à ce qu'on a appris en maths dans le plus gros de la scolarité. Et j'ai l'impression que ça ouvre un peu l'esprit à des concepts nouveaux ; je dis peut-être ça parce que je suis un peu plus habitué à l'impératif, mais en apprenant du fonctionnel y'a des tas de concepts, lois, théories, structures, ... dont je n'avais jamais entendu parler qui apparaissent. C'est super intéressant pour la culture informatique en général, je trouve.
Après faut mettre aussi un grain de pragmatisme dans tout ça. Les formations qui enseignent les langages fonctionnels sont plus généralement des formations longues et théoriques (ou centrées sur des domaines pas directement liés à l'informatique), parce que concrètement, en France et à l'heure actuelle, y'a peu de chances que ce soit le caml, le haskell ou le clojure qui permettent d'avoir un emploi.
L'impératif et l'objet est en vogue depuis des années et c'est ce que le marché demande, donc forcément, c'est ce que les formations proposent.
Oui en MP ils ont info obligatoire où l'on fait exclusivement du python et une option info où c'est du pur théorique avec Ocaml et très rarement Pascal.
Par exemple moi j'étais en TS l'année dernière et je voulais faire des études des physiques, j'suis entrée à P11 dans une première année générale (Maths/Info/Physique) donc en sois toutes les personnes ne sont pas destinés à faire de l'info par ex. Et beh pourtant la première UE c'était "Introduction à l'informatique" exclusivement en C++, au deuxième semestre "Programmation Impérative" en C++ également avec un pseudo-language (dégeulasse
). Bref l'enseignement en info à la fac est bidon en licence tout du moins (p-ê L3 c'est tranquille), c'est pour ça que je suis allé dans une fillière renforcée Maths/Info là j'espère retrouver un peu l'esprit de la prépa niveau info.
J'ai installé NetBSD sur un vieil ordi, c'est génial
Y'a pas moyen d'avoir le même système d'init sous Linux ?
des études de physique* ![]()
entré*
D'ailleurs heureusement que c'était une année générale pck j'ai fini avec 5 de moyenne à l'année en Physique ![]()
"La communautée est très propre sur Python je trouve comparé à Rails."
+100
Je dirais même comparé à la communauté Ruby tout court.
Et c'est bien beau les langages "purement fonctionnel", mais je pense que la programmation fonctionnel c'est plus un style de code qu'autre chose.
Rien ne m'empêche en python de faire des fonctions qui n'ont aucun side-effect, et de faire comme si tout les structures de données étaient immutable.
Surtout en python avec les lambdas, les generateurs et 2-3 autres trucs qui sont vraiment orienté programmation fonctionnel, je vois difficilement c'est quoi l'avantage d'Haskell (à part sont typesystem qui n'a rien avoir avec celui de python.
) pour faire de vrai chose.
Et à mon avis Clojure et Haskell vise pas du tout le même public cible. Déjà en commencant clojure est basé sur la jvm, donc tout les librairies java du monde sont utilisable directement dessus. Juste avec ça, c'est un avantage immense pour les compagnies car beaucoup ont basé leur trucs sur java.
C'était mon pavé de la journée. ![]()
Runnymede Voir le profil de Runnymede
Posté le 13 août 2014 à 21:46:34 Avertir un administrateur
J'ai installé NetBSD sur un vieil ordi, c'est génial
Y'a pas moyen d'avoir le même système d'init sous Linux ?
C'est une blague ? ![]()
Mr. Le Hap, je te sors le même chose avec ocaML qui fait du fonctionnel et de l'impératif.
Je vais faire très court, mais le truc avec le fonctionnel, c'est que tu te concentres plus à prouver que ton résultat est vrai plutôt qu'à comprendre comment tu as eu ce résultat, ce qui fait que tu fais des trucs ridiculement complexes en une ligne et que tu merdes à faire une concatenation.
G_B : J'aime ce gif. ![]()
L'un des gros avantages du Haskell, c'est aussi qu'une fois qu'on est capable de tenir une discussion sur les monades, les monoïdes, les lentilles et le catamorphisme, on peut cumuler les avantages de la vie d'ermite ET du confort de la société moderne
C'est encore plus efficace que la fausse carte de malentendant, il paraît.
Disons que les langages fonctionnels ne visent pas du tout le même public comme tu l'as dis.
Rien que pour comprendre les concepts je pense que les langages fonctionnels sont préférables car c'est vraiment toi qui dicte qui est quoi
Après les langages fonctionnels sont plus efficaces dans certains domaines (tout ce qui se rapproche le plus des mathématiques discrètes surtout dans sa formulation la plus simple). Les limitations du langages fonctionnels imposent à l'utilisateur de penser différement, et au final l'efficacité est supérieure.
Après je n'ai que très peu de connaissances sur les langages fonctionnels, j'entame ma véritable année d'études en informatique que le mois prochain donc j'aurais sûrement les idées plus claires l'année prochaine ![]()
sous-chienne > juste parce que je peux pas te laisser sciemment encenser Python sans encenser Ruby : en Ruby, tu peux avoir une évaluation fainéante, comme en Haskell, avec la méthode .lazy depuis Ruby 2.0
Python sait faire ça ? Hein ? Hein ? ![]()
Je vous en prie, vous pouvez m'appelez Richard.
"c'est aussi qu'une fois qu'on est capable de tenir une discussion sur les monades"
Bonne chance. ![]()