Le problème est que cela tue les perfs à cause de la gestion calamiteuse des caches que cela impose.
Tu aurais plus de détails sur cette phrase jetée à même le sol ?
Sinon, il n'y a pas de threads en Erlang, uniquement des processus qui s'échangent des messages. (thead -> mémoire partagée)
C'est pas bien de critiquer le PHP !
Regarde, quelle puissance ! :
<?php
if (FALSE == "0")
{
$a = "b";
if (0 == "abc")
$bb = 42;
function b() { return "b"; }
}
echo ${str_repeat($a(), 2)};
?>
Affiche bien sur "42" ;)
(Je ne sais pas pourquoi la balise code ne préserve pas les espaces d'indentation)
Ce que tu décris comme étant 'SCOOP' (apparemment, d'après Wikipedia lié à Eiffel) est exactement le fonctionnement d'Erlang.
Mais c'est vrai qu'il existe plusieurs monde de l'OO, en Smalltalk on parle de passages de messages alors qu'un C++ on parlera d'appels, le fonctionnement étant assez différent.
Dans ma réponse je pensais évidemment à l'OO "classic" (et simpliste?) à la C++/Java/C# et cie..
Personnellement j'aime bien l'Erlang et son approche orienté agent -> http://en.wikipedia.org/wiki/Software_agent (ça change de l'OO).
Je me suis amusé comme loisir à réaliser un petit web-chat[1] qui tourne justement sur Yaws, mentionné dans un commentaire précédent.
Euh, les "green threads" de Ruby sont quand même préemptibles, de ce fait je pense bien que des serveurs comme Webrick peuvent gérer plusieurs requêtes simultanément.
Par contre il est vrai qu'il ne tirera pas forcément partie d'un système multi-core ce qui ne m'incommode pas trop.
J'ai utilisé Webrick car il est preconfiguré avec Redmine et qu'il me suffit amplement. Je n'ai pas envie d'installer Apache juste pour ça...
Et si je peux me permettre, Rails ça a peut-être plein d'avantages mais ça reste relativement lent même avec Apache.
Par contre j'utilise Webrick sur le site dont j'ai posté le lien et je n'ai jamais eu besoin de le redémarrer, aucun problème de stabilité. Il est vrai que c'est plutôt lourd (il me prend environ 100Mo de mémoire vive) et moyennement réactif. J'avoue ne pas avoir cherché à le configurer.
Au boulot on utilise Mantis et Bugzilla. Je préfère de loin Redmine bien que le projet soit un poil jeune... mais très dynamique ;)
Points positifs (en vrac, j'en oublie surement plein)
- intégration d'une navigation SVN/git/Mercury (je n'ai testé que SVN et elle convient très bien)
- Wiki avec la syntaxe Textile, très puissant
- Workflow du statut d'une demande personnalisable par rôle
- Forum intégré
- Planification : gant et cie.
- Repporting : chaque dev peut dire combien de temps il a passé sur une tâche
- Gestion des versions avec roadmap
- Base de données à choix, pour moi c'est du PostgreSQL
- Multiprojet
- etc.
Points négatifs :
- On ne peut pas finement attribuer des droits, par exemple on voudrait que les clients ne voient que leurs demandes et que certains champs.. Ca va venir en partie avec la 0.8 (demandes privées).
Au niveau d'une langue est-ce que c'est l'académie française qui détient la vérité absolue ? Pas sûr, une langue est toujours en évolution, en mouvement, des termes se font et se défont.
Je ne voulais pas dire que la majorité fait la vérité mais dans le cas du terme "librairie", bien que ce soit une francisation du terme anglais, je ne vois pas en quoi il dérange et même au contraire c'est plutôt bien car ça crée un nouveau terme au lieu d'utiliser "bibliothèque" qui a déjà plusieurs sémantiques.
Ce même pote me rappel de temps en temps : "AWT ça pue, c'est dépendant de la plateforme" sous entendu qu'un code Java utilisant AWT qui a été compilé pour une plateforme ne sera pas portable mais devra être recompilé pour chaque plateforme.
Le "Compile once, run everywhere" de Java en prend un coup.
Un pote ne jure que par NetBeans, je ne connais pas, d'ailleurs je ne fais pas de Java. Quels sont les différences dans les grandes lignes avec Eclipse ?
On y parle principalement de programmation concurrente, des méthodes classiques existantes (lock (mutex, semaphore et cie), STM, etc.) ainsi que de l'approche de Clojure.
Même si vous ne vous intéressez pas particulièrement à ce langage je vous conseille d'y jeter un oeil.
Personnellement dans le même registre que Grails je me tournerai plutôt vers Lift : http://www.liftweb.net qui vise également la platforme Java. Lift utilise le langage Scala qui à l'aire vraiment très prometteur (fonctionnel, objet, acteur, etc.).
Malheureusement il n'est pas encore très abouti mais son développement est, par contre, très actif.
... mais aussi fortement déprimant. J'ai eu l'occasion de le voir, il est passé sur la TSR2 (chaîne suisse) il y a un peu plus d'un mois, et je peux vous dire que c'est assez choquant de constater ce que des grosses multinationale sont prêtes à faire uniquement pour le pognon... parce qu'au final, je ne vois pas ce qu'elles en retirent d'autre...
Je conseil fortement ce documentaire d'investigation !
Franchement je me demande à quoi ça sert... pour moi le cycle de maintenance d'un site web serait plutôt ça (cas pour un seul développeur) :
1. Modifications sur le poste de développement.
2. Tests des modifs par le développeur.
3. Commit des modifs sur le repo (par exemple SVN).
4. Mise en pré-production (automatisée par des scripts bien sur)
5. Validation par le client, si pas ok on revient en 1.
6. Finalement, mise en production (toujours automatisée).
Quels sont les avantages à se taper un éditeur web (tout pourri?) pour modifier un site en production ?
En fait il y a deux manières de traiter les chaines de caractères en Erlang : soit par une liste d'entier¹ (32 ou 64bits suivant la platforme) ce qui est la représentation par défaut et ce qui se révèle pratique mais peu performant dans certains cas ou par des binaires² (bit-string) où la gestion est faite à l'octet (caractère pour de l'iso-8859-1) prêt.
Je pense que l'article de Wikipedia fait référence à la première représentation et j'imagine que Ejabberd traite plutôt les chaines avec des bit-strings.
# Un bon complément
Posté par Ummon . En réponse au journal Sortie du livre Real World Haskell. Évalué à 3.
C'est très bien fait et plutôt plaisant à lire.
[^] # Re: citations
Posté par Ummon . En réponse à la dépêche Un nouveau framabook sur LaTeX. Évalué à 3.
Lorsqu'un homme a un écoulement sortant de son corps, cet écoulement est impur.
Le Lévitique Lv 15 2.
:D
[^] # Re: Beamer
Posté par Ummon . En réponse au journal Faire une présentation pour une conférence ?. Évalué à 1.
Je me suis (re)mis à LaTeX et je cherche justement des exemples sous Beamer.
[^] # Re: Pourquoi ce langage?
Posté par Ummon . En réponse au journal Erlang Planet. Évalué à 2.
Tu aurais plus de détails sur cette phrase jetée à même le sol ?
Sinon, il n'y a pas de threads en Erlang, uniquement des processus qui s'échangent des messages. (thead -> mémoire partagée)
[^] # Re: Pourquoi ce langage?
Posté par Ummon . En réponse au journal Erlang Planet. Évalué à 2.
Regarde, quelle puissance ! :
<?php
if (FALSE == "0")
{
$a = "b";
if (0 == "abc")
$bb = 42;
function b() { return "b"; }
}
echo ${str_repeat($a(), 2)};
?>
Affiche bien sur "42" ;)
(Je ne sais pas pourquoi la balise code ne préserve pas les espaces d'indentation)
[^] # Re: Agrégateur Erlang
Posté par Ummon . En réponse au journal Erlang Planet. Évalué à 1.
Mais c'est vrai qu'il existe plusieurs monde de l'OO, en Smalltalk on parle de passages de messages alors qu'un C++ on parlera d'appels, le fonctionnement étant assez différent.
Dans ma réponse je pensais évidemment à l'OO "classic" (et simpliste?) à la C++/Java/C# et cie..
[^] # Pour réponde à la question
Posté par Ummon . En réponse au journal Erlang Planet. Évalué à 1.
* http://yarivsblog.com/
* http://steve.vinoski.net/blog/
* http://armstrongonsoftware.blogspot.com/ (moyennement actif)
# Agrégateur Erlang
Posté par Ummon . En réponse au journal Erlang Planet. Évalué à 1.
Personnellement j'aime bien l'Erlang et son approche orienté agent -> http://en.wikipedia.org/wiki/Software_agent (ça change de l'OO).
Je me suis amusé comme loisir à réaliser un petit web-chat[1] qui tourne justement sur Yaws, mentionné dans un commentaire précédent.
[1] : http://www.euphorik.ch:8090/ (serveur de pré-production, vous pouvez écrire n'importe quoi).
[^] # Re: et sinon
Posté par Ummon . En réponse au journal [HS] Les russes se foutent de nous ?. Évalué à 3.
char* dasso;
le type est bien 'char*'
[^] # Re: Redmine
Posté par Ummon . En réponse au journal Quel bug tracker utiliser ?. Évalué à 1.
Par contre il est vrai qu'il ne tirera pas forcément partie d'un système multi-core ce qui ne m'incommode pas trop.
J'ai utilisé Webrick car il est preconfiguré avec Redmine et qu'il me suffit amplement. Je n'ai pas envie d'installer Apache juste pour ça...
Et si je peux me permettre, Rails ça a peut-être plein d'avantages mais ça reste relativement lent même avec Apache.
[^] # Re: Redmine
Posté par Ummon . En réponse au journal Quel bug tracker utiliser ?. Évalué à 1.
Par contre j'utilise Webrick sur le site dont j'ai posté le lien et je n'ai jamais eu besoin de le redémarrer, aucun problème de stabilité. Il est vrai que c'est plutôt lourd (il me prend environ 100Mo de mémoire vive) et moyennement réactif. J'avoue ne pas avoir cherché à le configurer.
[^] # Re: Redmine
Posté par Ummon . En réponse au journal Quel bug tracker utiliser ?. Évalué à 2.
Je l'utilise actuellement pour un petit projet perso : http://dev.euphorik.ch/projects/show/euk
Au boulot on utilise Mantis et Bugzilla. Je préfère de loin Redmine bien que le projet soit un poil jeune... mais très dynamique ;)
Points positifs (en vrac, j'en oublie surement plein)
- intégration d'une navigation SVN/git/Mercury (je n'ai testé que SVN et elle convient très bien)
- Wiki avec la syntaxe Textile, très puissant
- Workflow du statut d'une demande personnalisable par rôle
- Forum intégré
- Planification : gant et cie.
- Repporting : chaque dev peut dire combien de temps il a passé sur une tâche
- Gestion des versions avec roadmap
- Base de données à choix, pour moi c'est du PostgreSQL
- Multiprojet
- etc.
Points négatifs :
- On ne peut pas finement attribuer des droits, par exemple on voudrait que les clients ne voient que leurs demandes et que certains champs.. Ca va venir en partie avec la 0.8 (demandes privées).
[^] # Re: Je doute que cela existe
Posté par Ummon . En réponse au journal Les jeux libres, mode d'emploi. Évalué à 1.
Je ne voulais pas dire que la majorité fait la vérité mais dans le cas du terme "librairie", bien que ce soit une francisation du terme anglais, je ne vois pas en quoi il dérange et même au contraire c'est plutôt bien car ça crée un nouveau terme au lieu d'utiliser "bibliothèque" qui a déjà plusieurs sémantiques.
[^] # Re: Je doute que cela existe
Posté par Ummon . En réponse au journal Les jeux libres, mode d'emploi. Évalué à -1.
http://fr.wikipedia.org/wiki/Biblioth%C3%A8que_logicielle
# Un très bon bouquin
Posté par Ummon . En réponse au journal Les jeux libres, mode d'emploi. Évalué à 2.
http://www.peachpit.com/store/product.aspx?isbn=0131020099
Une version online traine ici :
http://www.tar.hu/gamealgorithms/index.html
(je ne sais pas si c'est très légal par contre)
[^] # Re: Eclipse vs la concurrence
Posté par Ummon . En réponse à la dépêche Sortie de Eclipse 3.4 - Ganymede. Évalué à 2.
[^] # Re: Eclipse vs la concurrence
Posté par Ummon . En réponse à la dépêche Sortie de Eclipse 3.4 - Ganymede. Évalué à 1.
Ce même pote me rappel de temps en temps : "AWT ça pue, c'est dépendant de la plateforme" sous entendu qu'un code Java utilisant AWT qui a été compilé pour une plateforme ne sera pas portable mais devra être recompilé pour chaque plateforme.
Le "Compile once, run everywhere" de Java en prend un coup.
Est-ce un argument justifié ?
[^] # Re: Eclipse vs la concurrence
Posté par Ummon . En réponse à la dépêche Sortie de Eclipse 3.4 - Ganymede. Évalué à 2.
[^] # Re: gnu/linux
Posté par Ummon . En réponse au journal Sur la philosophie de M. Stallman. Évalué à 6.
[^] # Re: Perl et autre
Posté par Ummon . En réponse au journal Lisaac plus rapide que le C !. Évalué à 3.
Le "permalink" de la présentation dont je parlais : http://blip.tv/file/812787
Elle est disponible en mp4 ici : http://blip.tv/file/get/Richhickey-ClojureConcurrency730.mp4
Les slides et le code présenté sont disponibles sur le premier lien.
(J'espère qu'on pourra une fois un jour peut-être éditer les messages)
[^] # Re: Perl et autre
Posté par Ummon . En réponse au journal Lisaac plus rapide que le C !. Évalué à 3.
On y parle principalement de programmation concurrente, des méthodes classiques existantes (lock (mutex, semaphore et cie), STM, etc.) ainsi que de l'approche de Clojure.
Même si vous ne vous intéressez pas particulièrement à ce langage je vous conseille d'y jeter un oeil.
[^] # Re: zend framework
Posté par Ummon . En réponse au journal <Mode grognon ON> Marre de Rails .... Évalué à 1.
Personnellement dans le même registre que Grails je me tournerai plutôt vers Lift : http://www.liftweb.net qui vise également la platforme Java. Lift utilise le langage Scala qui à l'aire vraiment très prometteur (fonctionnel, objet, acteur, etc.).
Malheureusement il n'est pas encore très abouti mais son développement est, par contre, très actif.
# Très intéressant...
Posté par Ummon . En réponse au journal HS: MONSANTO: le film. Évalué à 8.
Je conseil fortement ce documentaire d'investigation !
[^] # Re: ça existe déjà ... en mieux
Posté par Ummon . En réponse au journal Impressionné par Heroku (Ruby on Rails). Évalué à 4.
Franchement je me demande à quoi ça sert... pour moi le cycle de maintenance d'un site web serait plutôt ça (cas pour un seul développeur) :
1. Modifications sur le poste de développement.
2. Tests des modifs par le développeur.
3. Commit des modifs sur le repo (par exemple SVN).
4. Mise en pré-production (automatisée par des scripts bien sur)
5. Validation par le client, si pas ok on revient en 1.
6. Finalement, mise en production (toujours automatisée).
Quels sont les avantages à se taper un éditeur web (tout pourri?) pour modifier un site en production ?
[^] # Re: Erlang et les regexp
Posté par Ummon . En réponse à la dépêche Le serveur XMPP libre ejabberd en version 2.0. Évalué à 3.
Je pense que l'article de Wikipedia fait référence à la première représentation et j'imagine que Ejabberd traite plutôt les chaines avec des bit-strings.
[1] http://erlang.org/doc/reference_manual/data_types.html#2.11
[2] http://erlang.org/doc/reference_manual/data_types.html#2.4