Se connecter

Informatique

Linux

Sujet : [Blabla] le /pub des barbus libres
Caletlog
Niveau 10
13 août 2014 à 18:08:10

Très franchement, j'ai aucune idée des raisons de ce choix, et clairement ça m'en tape une sans faire bouger l'autre :(

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) :(

Si je le pouvais je partirais pas de Rack et son merveilleux système de serveurs : le nom dans le gemfile et tout est terminé :content:

JamyGourmand
Niveau 8
13 août 2014 à 18:09:50

C'est juste le langage le plus rapide.

Les mecs qui utilisent python ou ruby pour faire du web c'est grave lent. Par contre nodejs à l'air de devenir de plus en plus populaire je connais pas ses performances, peut être que ça surpasse php.

debianthrax
Niveau 6
13 août 2014 à 18:25:22

Je viens de découvrir un truc sur firefox, appuyez sur "alt" :cool:

Caletlog
Niveau 10
13 août 2014 à 18:26:08

" C'est juste le langage le plus rapide. "

:d) Pas forcément. Php en lui-même est extrêmement rapide quand il est nu (et qui développe sérieusement en PHP nu ?), mais dès qu'on passe aux frameworks les plus populaires (Laravel, Symfony, CodeIgniter), c'est un vrai vaux, à peine plus rapide que les consorts Ruby/Python. Comparé à des langages compilés comme Haskell avec Snap/Yesod ou Scala avec Lift/Play, les résultats sont édifiants.

Enfin en l'occurrence la vitesse de traitement du serveur est très rarement le bottleneck des petites et moyennes applications, sauf cas très particuliers. Seules les webapps avec un trafic conséquent (donc pas un trafic qui tient sans broncher sur l'hébergement 2€/mois d'OVH) peuvent vraiment avoir besoin de performances de ce côté là (et encore, ça dépend de pas mal d'autres facteurs ; Reddit tourne en Python (et il se plante souvent, certes)). Dans beaucoup de cas, à moins de recevoir le traffic d'Amazon, les utilisateurs ne verront pas de différence entre un serveur sous PHP, Python ou C++.

Node c'est cool et c'est plutôt performant, mais comme pour PHP ou Rack, il faut différencier la plateforme nodejs 'nue' qui n'est qu'une couche serveur et est donc incroyablement rapide (mais trop bas niveau pour être utilisée efficacement sur pas mal de tâches), des surcouches/frameworks visant à ordonner un peu le développement (Express/Sails/Meteor par exemple) et qui, comme pour tous les autres langages, ralentissent considérablement le tout.
Après perso j'aime beaucoup le MEAN stack (Mongo Express Angular Node) mais à mon avis la bulle NoSQL de Mongo et ses consorts va vite exploser. Ça a admirablement bien porté Node ces dernières années mais l'utilisation qui en est faite est juste délirante parfois, le NoSQL a des domaines très spécifiques où il peut briller et quand on voit qu'il est de plus en plus utilisé pour des modèles qui crient 'RELATIONS !', ça fait peur :(

JamyGourmand
Niveau 8
13 août 2014 à 18:45:30

Pas vraiment, tu peux faire beaucoup de choses en web. Certaines choses demandent de la rapidité. Car il faut faire de grosses boucles.

Amazon n'a pas besoin de ça par exemple. Mais oui tant qu'on reste dans le très simple concept on a des données dans la BDD et on les ressorts telles quelle avec un peu de CSS y a aucune différence.

Par exemple sur notre base de gestion de membre (que j'ai codé en ruby avec Rails) j'ai besoin de parcourir tout l'arbre du LDAP pour retrouver les chambres des membres. Ca prends environ 4 secondes. C'est bien mais ça reste lent. On a une autre base de gestion faîte en python et cette fois ça prends 2 seconde. Donc avec PHP on tape dans les milliseconde :hap:

Sinon j'ai toujours fait du PHP sans framework et je connais personne qui utilise ces framework :ok:

[Xenio]
Niveau 11
13 août 2014 à 19:07:03

Merci JamyGourmand pour la page wiki, c'est vrai que c'est bien expliqué :)
Me fallait simplement créer un fichier texte nommé Xresources dans mon user folder

Caletlog
Niveau 10
13 août 2014 à 19:11:05

Oui, je dis pas que les performances brutes sont pas importantes, simplement pour beaucoup de cas et de petits sites, c'est pas ça qui est bloquant. Y'a souvent beaucoup plus de travail à faire du côté du chargement des assets, du rendering de la page et du code serveur en lui-même avant d'avoir réellement besoin de la performance brute.

"Par exemple sur notre base de gestion de membre (que j'ai codé en ruby avec Rails) j'ai besoin de parcourir tout l'arbre du LDAP pour retrouver les chambres des membres. Ca prends environ 4 secondes. C'est bien mais ça reste lent. On a une autre base de gestion faîte en python et cette fois ça prends 2 seconde. Donc avec PHP on tape dans les milliseconde"

:d) T'as géré ça manuellement ou avec un système d'authentification type Devise ? Ces systèmes sont généralement très optimisés et rigoureusement testés donc ça vaut le coup.
Je sais pas combien t'as d'entrées à parcourir, donc je peux pas te dire si la durée est normale. Tu parles de 'parcourir tout l'arbre...', mais t'utilise bien un index ? Le classique également, t'as pensé aux requêtes 'n + 1' qui sont un vrai fléau dans Rails ?

Pour la durée en elle-même, c'est pas comparable. D'une part, tu compares l'utilisation des ORMs fournis par Rails/Django (tu parles de Python, je présume par défaut que c'était Django ?) avec des requêtes SQL brutes en PHP. Les ORM sont une couche d'abstraction monumentale d'une part, surtout l'ActiveRecord de Rails (qui abstracte parfois un peu trop, même) (donc c'est pas gratuit à analyser), mais qui génèrent aussi les requêtes eux-même, pour les exécuter. Évidemment que ça va être plus lent que si tu fais tes requêtes à la main en pur SQL :o))
Mais ça c'est pas vraiment une question de performances, c'est un choix : l'abstraction qui simplifie l'accès à la DB ou la performance en SQL brut. T'aurais la même magnitude de performance dans à peu près n'importe quel framework en écrivant les requêtes à la main, sans intermédiaires.
Après oui l'ActiveRecord de Rails est monstrueusement lent et souvent pointé du doigt pour ça. En général y'a moyen de compenser avec quelques optimisations simples dans les 'requêtes', le caching poussé de Rails et si les calculs s'y prêtent, la mémoïsation (qui peut aussi être automatisée dans Rails avec quelques gems).

"Sinon j'ai toujours fait du PHP sans framework et je connais personne qui utilise ces framework "

:d) Je voulais dire professionnellement. Peu de groupes développent entièrement manuellement (sauf éventuellement pour des besoins de niches et du très gros traffic), maintenant soit les frameworks reconnus sont utilisés directement, soit les boîtes se montent leur propre framework pour réutiliser du code et se forcer à une organisation commune. Devoir réécrire chaque pièce d'un projet à chaque nouveau projet est bien trop contre-productif.
Tu le fais d'ailleurs peut-être implicitement, si tu suis, par exemple, un modèle MVC manuel et que tu sépares ton code en modules réutilisables.

JamyGourmand
Niveau 8
13 août 2014 à 19:30:22

J'utilise Rails comme un simple "générateur" c'est à dire que je fais mon code en Ruby et Rails me sert juste à récupèrer les données pour les afficher. C'est la manière la plus plausible d'utiliser LDAP. Du coup c'est surtout Ruby (et net-ldap) qui est lent, pareil pour Python avec son module ldap (qui est nettement plus rapide toute fois).

Sinon en mode MVC ( :hap: ) je trouve Rails complétement assisté, d'une part il fait tout lui même et d'une part tu peux pas faire tout ce que tu veux comme t'as envie. Ne parlons pas de la communautée assez honteuse.

Sinon c'est turbogears sur Python.

C'est Ruby et Python qui sont lents, les framework accentuent juste un peu cette lenteur.

Bah je fais pas trop de web en réalité non plus, je suis pas interessé par cet aspect là de l'informatique. Je suis interessé par la vraie science, la branche des mathématiques discrètes.

Donc même programmer je le fait que pour atteindre certains objectifs sinon c'est pas un kiff particulier :hap:

Caletlog
Niveau 10
13 août 2014 à 19:44:33

Ah d'accord, je comprends mieux :)

En passant, si tu te sens limité par Rails, tu peux regarder du côté de Sinatra. C'est à l'opposé de Rails, un framework ultra minimaliste qui est juste une abstraction supplémentaire au dessus de Rails, ni plus, ni moins. Et qui est aussi ultra populaire, donc c'est pas un truc obscure :o))

"d'une part il fait tout lui même"

:d) Tu dois parler des générateurs automatiques ? (ceux qui te génèrent un contrôleur, un modèle, ses vues et ses tests en même temps)
Généralement, le fait de tout automatiser n'est une mauvaise chose que si on perds quelque chose : performances, code clair, contrôle, ...
Si ça peut te rassurer, les générateurs de Rails font effectivement perdre toutes ces choses :hap:
Ils sont surtout utilisés pour du prototypage ou du bricolage quand on débute.
En production, ils sont très rarement utilisés, parce qu'ils génèrent du code assez peu lisible (mais ultra (trop) commenté), se glissent un peu de partout (quid du générateur de modèle qui écrase des propriétés CSS globales :doute: ) et qu'ils font du boilerplate massif rarement utile en son intégralité. Et puis même sans ces générateurs, Rails fournit assez de conventions pour générer très rapidement soi-même les mêmes bases, en plus efficace.

Pour la communauté, ça c'est plutôt vrai, mais c'est propre à tout ce qui a subi un buzz. Rails, Javascript, Python, PHP, Java, etc... ont tous plus ou moins une communauté dégueulasse, parce qu'ils ont une base d'utilisateurs phénoménale (et qu'étrangement, c'est souvent les connards qui sont attirés par ce qui subit le buzz juste pour le buzz :o)) ).
La seule communauté réellement sympa et ultra compétente sur laquelle je suis tombée, c'est celle du Haskell. Incroyable :-)

JamyGourmand
Niveau 8
13 août 2014 à 19:56:36

La communautée est très propre sur Python je trouve comparé à Rails. Sinon sur Ruby en soi j'ai rien à dire à propos de la communautée elle est également pas mal :oui:

Je connaissais pas Sinatra ça peut effectivement mieux convenir à mes besoin, je me renseignerais au besoin :oui:

Je peux concevoir que le buzz attire un peu tout et n'importe quoi :oui: Après c'est surtout que voilà les gens qui utilisent Rails veulent juste un site web fonctionnel quoi ils s'en battent les reins du background pourtant très important en informatique.

Je connais pas non plus Haskell, c'est quoi le principe? C'est quoi comme type de langage :question:

the_alone
Niveau 10
13 août 2014 à 20:01:17

Salut! :)
Ca va?

Caletlog
Niveau 10
13 août 2014 à 20:02:14

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 :o))

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.

JamyGourmand
Niveau 8
13 août 2014 à 20:08:35

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 :oui: Mais pour les concours c'est surtout du caml qu'on demande donc je sais pas mais je vais m'y intéresser :ok:

JamyGourmand
Niveau 8
13 août 2014 à 20:12:57

Intéressant ça m'a l'air d'être du caml en beaucoup plus friendly. Je note merci pour la référence :bave:

Google_Bot
Niveau 12
13 août 2014 à 20:28:14

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 :bave: » à ceux qui nous demanderont pourquoi on utilise Linux... :-(
(si tant est que ça s'appelle encore Linux d'ici là :hap: )

Runnymede
Niveau 10
13 août 2014 à 20:35:07

Ça sera poettringd :oui:

vava740
Niveau 10
13 août 2014 à 20:37:58

@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.

JamyGourmand
Niveau 8
13 août 2014 à 20:45:24

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...

[Xenio]
Niveau 11
13 août 2014 à 20:47:27

Je suis toujours autant pommé :noel:

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?

JamyGourmand
Niveau 8
13 août 2014 à 20:52:07

Utilise terminator plutôt :hap:

Sujet : [Blabla] le /pub des barbus libres
   Retour haut de page
Consulter la version web de cette page