Tes prix sont comparables aux miens (cote d'azur).
F3, c'est 3 pièces, 2 chambres plus salon (cuisine/salle de bain/WC ne sont pas compté).
A Antibes, le m² varie de 5000 à 10000€/m² en front de mer, soit le 100m² de 500k€ à 1M€. Pour les villas sur le cap d'Antibes, je ne te dis pas :) (le coin de Paul Allen)
Je parle du 06, à Paris, et les villes qui touche Paris, c'est encore plus chère (je crois que la valeur médian, c'est 7k€/m²).
Tu as bien plus que l'absence de cout de l'appel de fonction (tu as de la simplification en +) ! Dans un gros code, avec des appels dans tous les sens, tu as très peu de probabilité que ta fonction utilitaire soit dans le cache, alors que les prefetch locaux font que tu as toutes les chances que le code de ta fonction en cours, y soit.
Non, tu te trompes lourdement. Il y a plein de cas ou l'inlining est plus petit. Un getter/setter inliné peut réduire le code de la fonction appelante, alors qu'un call prend 2 instructions. C'est vrai pour chaque fonction appelante.
Tu as aussi les cas à plusieurs branches, où la simplification s’arrête faute d'information, si la propagation de constante continue, une partie entière de code disparait.
J'ai aussi le cas de constante composé à coup de "PLOP | PLIP" qui ne font que changer une constante de code, au lieu d'un appel de fonction, avec sauvegarde des registres.
Ton postulat faux de base est que l'inline ajoute toujours du code, et que dans le bilan il faut retirer le code d'appel et tenir compte du code de la fonction elle-même. Mais dans les faits, pour certaine fonctions, cela simplifie tellement le code appelant, que pour chaque inline, la fonction appelante est réduite.
J'ai un énorme doute sur les prix dont tu parles. Combien pour un F3 de 70m² dans ton coin ? (sachant qu'un américain m'avait dit qu'un appartement de moins de 100m² F4, cela n'existait pas dans sa ville); Combien pour une maison de F5 de 120m² avec 800m² de terrain ?
Un F3 bien dans ma région c'est 300k€. La maison, c'est plutôt 600/700k€.
Une relecture fait par soi-même, ce n'est pas une relecture.
Ensuite, est-ce que vous avez fait des fiches de relecture ? Genre une série de point à vérifier (ex: est-ce que le coding standard est respecté ? Est-ce qu'il peut y avoir des divisions par zéro ?, est-ce que des exceptions peuvent remonter sans être pris en charge ? etc…)
" il y a le fait que ça augmente la taille du code et met donc plus de pressions sur le(s) cache(s) et au final peut ralentir l'exécution d'un programme complexe (ce qui ne se verra pas forcément dans un micro benchmark)."
Il faut arreter avec ce genre d'argument tarte à la crème. La vrai réponse est "cela dépend".
Quand le code est inliné, il y a toutes les passes de simplification qui repassent dessus et le code peut être plus petit. En gros, un peu d'inlining réduit la taille du code, jusqu'à un certain point, ou il faut arreter d'inliner.
De mon coté, j'ai dit que je quitterais l'informatique, lorsque l'informatique quantique aura remplacé l'informatique classique. Il faut totalement repenser la manière d'écrire un algorithme, et penser complètement différement.
C'est vrai que dans mon dernier programme ocaml, dans lequel je parse un paquet de fichier (milliers), une partie de la lenteur provenait des string utilisés pour les conversions, or il n'est pas possible de réutiliser la mémoire utilisé par un string, sachant que les fichiers étaient utilisé l'un après l'autre. Cela aurait été trivial en C, par exemple.
Sinon, llvm peut aider pour la génération de code, mais ce qui accélère vraiment est de plus haut niveau.
Ocaml est très bon, par rapport au peu d'effort sur sa compilation. Mais il pourrait faire bien mieux, justement parce que le langage comporte plus d'info pour le compilo. Il pourrait faire bien plus de spécialisation et d'inlining.
Les codes purement calculatoires ne sont pas connu pour être très rapide en ocaml, car le boxing fait souvent mal.
Le code généré passe trop souvent par la mémoire, au lieu d'utiliser les registres plus rapides. On dirait qu'il n'y a pas de scheduling statique des instructions pour éloigner les dépendances read-after-write, ou de déroulage de boucle, pour que le code soit encore plus parallélisable (gcc déroule les boucles 16 fois, 4 fois permet souvent d'utiliser uniquement les registres, tout en restant compacte).
Non certainement pas pour un ingénieur logiciel. J'ai le cas très précis d'un voisin parti à Boston.
Le seul désagrément sont les 3 semaines de congé au lieu de 5 (les grosses boites font cadeau d'une semaine en général). Son salaire net est quasiment double. Pour le prix d'un F3, il a une maison de 200m² avec jardin. Tous les prix de la vie quotidienne sont moins chère qu'en France (en gros 1$ = 1€). Sa boite lui paye son assurance, qui est au niveau des meilleurs mutuelles françaises (+sécu).
Il a 2 enfants, et ne semble pas du tout pressé de partir.
Mais pour une boite, les salaires R&D français sont peu élevés. Un PDG d'une boite japonaise disait que la France était le Maroc de la R&D…
Le problème de la duplication de code de C++ venait des compilateurs qui créait une fonction à chaque instance paramétrique. Dans les faits, il y a seulement une poignée de types différents utilisés pour un template donné. Un code spécialisé est tout de même beaucoup plus rapide qu'un code universel comme le génère ocaml, en tout cas pour des objets simples.
A mon avis, il font du VOIP mais avec leur propre algo de crypto. Donc soit, tout est fait en soft, et c'est un peu lent, et consommateur d'énergie. Soit, ils ont fait une puce dédiée, et cela coute chère.
Les plus gros salaire de dev sont pourtant dans la banque et assurance (en java, en tout cas, il y a quelques années). Le problème des boites qui vivent du soft est que le dev fait parti de la grosse masse de salaire, alors qu'un dev en banque fait parti d'un pool beaucoup plus petit en proportion, il coute donc moins chère à la banque de faire plaisir à ses dev.
Je pense que l'impression d'être moins bon ou efficace, vient du fait que lorsque tu maitrises un sujet, et que tu dois passer à une techno plus récent, tu ne te sens plus expert du domaine, ta productivité tombe et tu as l'impression de décliner.
[^] # Re: qui sait
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 2.
Tes prix sont comparables aux miens (cote d'azur).
F3, c'est 3 pièces, 2 chambres plus salon (cuisine/salle de bain/WC ne sont pas compté).
A Antibes, le m² varie de 5000 à 10000€/m² en front de mer, soit le 100m² de 500k€ à 1M€. Pour les villas sur le cap d'Antibes, je ne te dis pas :) (le coin de Paul Allen)
Je parle du 06, à Paris, et les villes qui touche Paris, c'est encore plus chère (je crois que la valeur médian, c'est 7k€/m²).
"La première sécurité est la liberté"
[^] # Re: la performance par l'inlining
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 3.
Tu as bien plus que l'absence de cout de l'appel de fonction (tu as de la simplification en +) ! Dans un gros code, avec des appels dans tous les sens, tu as très peu de probabilité que ta fonction utilitaire soit dans le cache, alors que les prefetch locaux font que tu as toutes les chances que le code de ta fonction en cours, y soit.
"La première sécurité est la liberté"
[^] # Re: la performance par l'inlining
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 2.
Les autres optims dont je parle est, bien sur, la propagation de constante et l'élimination de code mort.
"La première sécurité est la liberté"
[^] # Re: la performance par l'inlining
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 2.
Non, tu te trompes lourdement. Il y a plein de cas ou l'inlining est plus petit. Un getter/setter inliné peut réduire le code de la fonction appelante, alors qu'un call prend 2 instructions. C'est vrai pour chaque fonction appelante.
Tu as aussi les cas à plusieurs branches, où la simplification s’arrête faute d'information, si la propagation de constante continue, une partie entière de code disparait.
J'ai aussi le cas de constante composé à coup de "PLOP | PLIP" qui ne font que changer une constante de code, au lieu d'un appel de fonction, avec sauvegarde des registres.
Ton postulat faux de base est que l'inline ajoute toujours du code, et que dans le bilan il faut retirer le code d'appel et tenir compte du code de la fonction elle-même. Mais dans les faits, pour certaine fonctions, cela simplifie tellement le code appelant, que pour chaque inline, la fonction appelante est réduite.
"La première sécurité est la liberté"
[^] # Re: qui sait
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 2.
J'ai un énorme doute sur les prix dont tu parles. Combien pour un F3 de 70m² dans ton coin ? (sachant qu'un américain m'avait dit qu'un appartement de moins de 100m² F4, cela n'existait pas dans sa ville); Combien pour une maison de F5 de 120m² avec 800m² de terrain ?
Un F3 bien dans ma région c'est 300k€. La maison, c'est plutôt 600/700k€.
"La première sécurité est la liberté"
[^] # Re: qui sait
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 2.
On m'a dis que pour comparer le niveau de vie France/US, il fallait prendre 1€=1$ pour les prix de la vie de tous les jours.
"La première sécurité est la liberté"
[^] # Re: qui sait
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 2.
par an, je voulais écrire :)
"La première sécurité est la liberté"
[^] # Re: hint: PHP
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 4.
Une relecture fait par soi-même, ce n'est pas une relecture.
Ensuite, est-ce que vous avez fait des fiches de relecture ? Genre une série de point à vérifier (ex: est-ce que le coding standard est respecté ? Est-ce qu'il peut y avoir des divisions par zéro ?, est-ce que des exceptions peuvent remonter sans être pris en charge ? etc…)
"La première sécurité est la liberté"
# Sauver des postes de profs ?
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche Au secours du BTS IRIS (Informatique et Réseaux pour l'industrie et les Services). Évalué à 1.
Comment ça ? Vous refusez de faire disparaitre un diplôme ayant de la valeur, pour sauver les postes de quelques professeurs ?
Mauvais élèves, va !
"La première sécurité est la liberté"
[^] # Re: Il serait peut-être temps d'utiliser des langages modernes
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 2.
Il faudrait que je me replonge dans mon code pour revoir le problème.
"La première sécurité est la liberté"
[^] # Re: qui sait
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 3.
En même temps, un salaire de plus de 100k€/mois pour une personne technique, c'est de la SF en France.
"La première sécurité est la liberté"
[^] # Re: Il serait peut-être temps d'utiliser des langages modernes
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 2.
Le problème sont les fonctions de conversion qui n'existe que pour string. Unix.read est sans doute un moyen a étudier.
"La première sécurité est la liberté"
[^] # Re: la performance par l'inlining
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 5.
" il y a le fait que ça augmente la taille du code et met donc plus de pressions sur le(s) cache(s) et au final peut ralentir l'exécution d'un programme complexe (ce qui ne se verra pas forcément dans un micro benchmark)."
Il faut arreter avec ce genre d'argument tarte à la crème. La vrai réponse est "cela dépend".
Quand le code est inliné, il y a toutes les passes de simplification qui repassent dessus et le code peut être plus petit. En gros, un peu d'inlining réduit la taille du code, jusqu'à un certain point, ou il faut arreter d'inliner.
"La première sécurité est la liberté"
[^] # Re: Précisions nécessaires
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 2.
De mon coté, j'ai dit que je quitterais l'informatique, lorsque l'informatique quantique aura remplacé l'informatique classique. Il faut totalement repenser la manière d'écrire un algorithme, et penser complètement différement.
"La première sécurité est la liberté"
[^] # Re: Il serait peut-être temps d'utiliser des langages modernes
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 2.
C'est vrai que dans mon dernier programme ocaml, dans lequel je parse un paquet de fichier (milliers), une partie de la lenteur provenait des string utilisés pour les conversions, or il n'est pas possible de réutiliser la mémoire utilisé par un string, sachant que les fichiers étaient utilisé l'un après l'autre. Cela aurait été trivial en C, par exemple.
Sinon, llvm peut aider pour la génération de code, mais ce qui accélère vraiment est de plus haut niveau.
"La première sécurité est la liberté"
[^] # Re: Il serait peut-être temps d'utiliser des langages modernes
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 1.
Ocaml est très bon, par rapport au peu d'effort sur sa compilation. Mais il pourrait faire bien mieux, justement parce que le langage comporte plus d'info pour le compilo. Il pourrait faire bien plus de spécialisation et d'inlining.
Les codes purement calculatoires ne sont pas connu pour être très rapide en ocaml, car le boxing fait souvent mal.
Le code généré passe trop souvent par la mémoire, au lieu d'utiliser les registres plus rapides. On dirait qu'il n'y a pas de scheduling statique des instructions pour éloigner les dépendances read-after-write, ou de déroulage de boucle, pour que le code soit encore plus parallélisable (gcc déroule les boucles 16 fois, 4 fois permet souvent d'utiliser uniquement les registres, tout en restant compacte).
"La première sécurité est la liberté"
[^] # Re: qui sait
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 4.
Non certainement pas pour un ingénieur logiciel. J'ai le cas très précis d'un voisin parti à Boston.
Le seul désagrément sont les 3 semaines de congé au lieu de 5 (les grosses boites font cadeau d'une semaine en général). Son salaire net est quasiment double. Pour le prix d'un F3, il a une maison de 200m² avec jardin. Tous les prix de la vie quotidienne sont moins chère qu'en France (en gros 1$ = 1€). Sa boite lui paye son assurance, qui est au niveau des meilleurs mutuelles françaises (+sécu).
Il a 2 enfants, et ne semble pas du tout pressé de partir.
Mais pour une boite, les salaires R&D français sont peu élevés. Un PDG d'une boite japonaise disait que la France était le Maroc de la R&D…
"La première sécurité est la liberté"
[^] # Re: Il serait peut-être temps d'utiliser des langages modernes
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Si si, le C++ peut parfois être plus rapide que le C. Évalué à 6.
Le problème de la duplication de code de C++ venait des compilateurs qui créait une fonction à chaque instance paramétrique. Dans les faits, il y a seulement une poignée de types différents utilisés pour un template donné. Un code spécialisé est tout de même beaucoup plus rapide qu'un code universel comme le génère ocaml, en tout cas pour des objets simples.
"La première sécurité est la liberté"
[^] # Re: et les réactions des intéressés ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Les mails des eurodéputés ont été piratés par un hacker. Évalué à 2.
A mon avis, il font du VOIP mais avec leur propre algo de crypto. Donc soit, tout est fait en soft, et c'est un peu lent, et consommateur d'énergie. Soit, ils ont fait une puce dédiée, et cela coute chère.
"La première sécurité est la liberté"
[^] # Re: et les réactions des intéressés ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Les mails des eurodéputés ont été piratés par un hacker. Évalué à 2.
Oui sauf que la spec de base est merdique. Ils ont oublié la partie "doit être presque aussi fonctionnel qu'un téléphone du commerce".
"La première sécurité est la liberté"
[^] # Re: Choisis le plus sympa.
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 3.
Les plus gros salaire de dev sont pourtant dans la banque et assurance (en java, en tout cas, il y a quelques années). Le problème des boites qui vivent du soft est que le dev fait parti de la grosse masse de salaire, alors qu'un dev en banque fait parti d'un pool beaucoup plus petit en proportion, il coute donc moins chère à la banque de faire plaisir à ses dev.
"La première sécurité est la liberté"
[^] # Re: Précisions nécessaires
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 7.
Je pense que l'impression d'être moins bon ou efficace, vient du fait que lorsque tu maitrises un sujet, et que tu dois passer à une techno plus récent, tu ne te sens plus expert du domaine, ta productivité tombe et tu as l'impression de décliner.
"La première sécurité est la liberté"
[^] # Re: qui sait
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 2.
"le monde nous déroule le tapis rouge. Pour je ne sais quelle raison…"
Parce que le niveau mondial est encore pire ! (sauf peut être dans les pays de l'est) Et le salaire est bien moindre pour un français qu'un américain.
"La première sécurité est la liberté"
[^] # Re: hint: PHP
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Développeur, ou comment sur-évaluer ses compétences. Évalué à 2.
Tu fais du 100% en taux de couverture instruction, branch, MCDC, MCDC avec couverture d'instance ou exhaustif ?
"La première sécurité est la liberté"
[^] # Re: et les réactions des intéressés ?
Posté par Nicolas Boulay (site web personnel) . En réponse au journal Les mails des eurodéputés ont été piratés par un hacker. Évalué à 0.
Ils les font fabriqué là-bas. Mais je pensais surtout à leur compétence logiciel.
"La première sécurité est la liberté"