a) (les substitutions sont de moi pour les besoins de la démonstration)
Après :
* "{le ramasse-miettes} n'a pas d'intérêt parce que ça ne me dérange pas d'écrire vingt lignes de plus"
* "bon ça a un intérêt mais {le ramasse-miettes} c'est un truc de chercheurs en décalage avec le monde réel"
Voici :
* "bon ça a un intérêt mais pas pour l'info de gestion"
* "de toute façon on s'en fout parce que c'est l'utilisateur qui compte". Parce que l'utilisateur se fiche bien de payer deux fois plus cher pour un logiciel bogué sous prétexte que l'équipe aime bien faire la gestion mémoire à la main parce que ça ne les dérange pas d'écrire vingt lignes de plus et parce que le ramasse-miettes est un truc de chercheurs déconnectés du monde réel sans intérêt pour l'info de gestion.
Cela dit, non, le GC n'est pas adapté à tout. Mais je parie qu'il est parfaitement adapté à tous les projets sur lesquels tu bosses de janvier à décembre.
b) Le typage dynamique n'est pas adapté aux gros et moyens projets et l'eau mouille. Quoiqu'en disent les adorateurs du typage dynamique et du dieu Pluie. Après je reconnais que la formulation était malheureuse : il y a aussi de petits projets dans nos entreprises, y compris chez Google.
Accessoirement le fait que je me ferais descendre sur le forum Python pour ces propos ne veut rien dire : ce serait le cas pour toute critique à l'encontre de tout langage de programmation, club de foot, parti politique ou religion. Je peux seulement espérer que les programmeurs sont moins prompts que les autres à vouloir égorger ces infidèles de Marseillais.
c) Le C# n'est tout simplement pas fait pour la programmation bas niveau, il a été fait pour les 90% de projets restants et c'est ce qui fait sa force.
Donc oui les pointeurs sont une blague en C# puisque tu ne peux avoir de pointeur que vers les rares types valeurs situés sur la pile ou dans un tableau préalablement épinglé (pinned). Les pointeurs ne servent peu ou prou qu'à l'interopérabilité avec le code natif.
Cela dit, non, le GC ne compacte que les pages managées. Si C# appelle une fonction C qui effectue un malloc, l'adresse fournie sera dans une page gérée par la biblio C et non par C#.
d) Eiffel est bien plus verbeux que Java, et un peu plus qu'Ada qui a échoué en dépit du soutien du gouvernement américain. Par ailleurs tout langage verbeux devrait aujourd'hui être à destination de la programmation robuste, ce qui nécessite bien davantage qu'une syntaxe verbeuse.
e) Je ne connais aucun langage miraculeux, il n'y en a jamais eu. En revanche je peux citer une dizaine de besoins avec pour chacun le ou les langages les mieux adaptés en 2015. Ce serait une liste restreinte mais sans surprise, sur laquelle ne figureraient ni Cobol ni Pascal, mais où l'on trouverait encore du C++, du Java, du C# et même cette daube de php, entre autres, mâtinés de solutions plus modernes (Chapel, Rust, Clojure par ex). Et j'ai bon espoir que d'ici dix ans plusieurs langages auront disparu de cette liste.
Plus intéressant, je sais quelles fonctionnalités deviennent indispensables, quelles approches deviennent obsolètes et quels nouveaux besoins apparaissent.
Partager