J'ai lu cet article, les parties de "IntelliSense" et "Code généré": P>
http://www.charlespetzold.com/etc/doesvisualstudiorotthemind.html < / p> blockQuote>
Pensez-vous que l'auteur est juste? strong> p>
Je ne suis pas d'accord pour dire que Intellisense est si mauvais pour les programmeurs. Vs pour c # utilise pour "masquer" les événements des commandes "dans un autre fichier, mais vous pouvez les trouver si vous en savez assez sur la langue et vous pouvez les modifier à la main. Et avec vs, je n'ai pas besoin de mémoriser toutes les classes .net que j'utilise. Je pense que peu importe si vous utilisez un IDE ou un bloc-notes, mais si ces outils radiens existent et sont libres ... pourquoi ne pas les utiliser? P>
21 Réponses :
Cela ne rend pas les gens intelligents dumber, mais cela rend que les gens stupides semblent plus intelligents p>
Je ne pourrais pas être plus d'accord. Dans les mains d'un programmeur intelligent, un outil est juste un outil. Dans les mains d'un muet, un outil peut devenir une béquille.
Non, les outils de programmation modernes et les langues aident le programmeur se concentrer moins sur les petites choses et plus encore sur la grande image. P>
L'objectif principal est de concevoir des logiciels solides. Si un programmeur n'a pas à s'inquiéter de la mémorisation de chaque méthode d'une classe, ils peuvent passer plus de temps à l'ingénierie du produit. P>
Oui, une grande image comme dans ce qui compte à l'entreprise finalement.
Ou une grande image comme dans ce que fait le programme finalement.
Notre profession de physique a toujours dit pourquoi mémoriser quelque chose que vous pouvez rechercher. Il a toujours répertorié les formules requises sur le tableau pendant les examens. Semble être IntelliSense est la même idée. Plutôt que de se souvenir si l'objet utilise un compte ou une propriété de longueur, laissez-le me dire. P>
Obtenez une copie de Richard Feynman's "Sûrement tu vas plaisanter, M. Feynman" et lisez le chapitre sur la carte d'un chat. Même principe exactement.
Je pense que vous avez peut-être eu la même profession de physique que moi. M. Kramer? Non? Oh, tous les professeurs de physique sont comme ça? Hmm..
@Jason: Evidemment, il s'agit d'un comportement courant pour les professeurs de physique. Mon professeur de physique du lycée était de la même manière. Il était également professeur d'université.
Non, cela nous permet de coder plus vite je pense. N'importe quoi pour rendre le processus de codage plus rapide, plus facile et plus simple est une étape dans la bonne direction à mon avis. P>
J'utilise IntelliSense et généré du code pour accélérer le développement, pas parce que je ne sais pas ce que je fais. Par conséquent, je ne peux pas accepter que l'utilisation de ceux-ci vous rend Dumber. P>
Je suis le genre de personne qui tentera d'apprendre autant d'une langue que possible avant de tenter d'utiliser les outils facilitant le développement dans cette langue. À cet égard, je suis d'accord avec le commentaire de Matthew Jones selon lequel "les outils ne rendent pas les gens dumber ... la paresse et le manque de conduite font." P>
Non, je suis vraiment en désaccord avec ce point. p>
Oui, je suis d'accord pour dire que IntelliSense me permet de maintenir moins d'objets de grand nombre de membres de ma tête. Je suis Dumber dans le sens où je sais souvent moins sur les détails complexes des projets où j'utilise fortement Intellisense. p>
Par exemple, je peux probablement rater tous les membres des types C ++ que j'utilise avec une grande précision. J'ai tendance à être un gars Vim uniquement pour mes projets C ++ et, par conséquent, n'utilisez pas vraiment IntelliSnsee. Dans les projets C # et VB.NET, même si je ne pouvais pas rater les membres avec la même précision que je comptons sur Intellisense plus souvent. p>
Mais il y a un compromis. Garder tous les membres de ma tête vient avec un coût. Lorsque vous écrivez le code, au lieu de se concentrer sur l'algorithme, je me concentre sur les membres. Je dois constamment réfléchir à la convention de dénomination d'un type particulier ou de la liste des paramètres, de ce qui est BYREF ou par Val, lors de la rédaction d'un algorithme en C ++. Dans c # / vb.net, je suis plus libre de penser à l'algorithme car l'IDE prend soin de trouver les membres pour moi. P>
Cela signifie-t-il que je suis dumber? Non, cela signifie simplement que je suis capable de me concentrer sur le problème que j'essaie réellement de résoudre. Je sens que cela me rend plus productif et donc plus intelligent pas plus bête. p>
La seule qualite avec IntelliSense que l'auteur semble avoir est l'autocomplete lorsque vous appuyez sur la barre d'espace, qui apparemment, il ne réalise pas que vous pouvez désactiver dans le menu Options. P>
Bien que, il affirme que le codage "est devenu une boîte de dialogue constante avec IntelliSense" ... ce qui n'a aucun sens parce que vous devez toujours choisir les méthodes correctes de la liste! Sans cela, vous devez simplement rechercher en ligne pour le nom de la méthode au lieu d'une recherche instantanée. P>
Il est intéressant de savoir comment l'auteur ignore que IntelliSense ne peut pas vous dire si vous souhaitez utiliser un stringbuilder code> ou une chaîne code>, etc., etc. p>
Je ne pense pas. P>
IntelliSense fait des choses comme une orthographe sensible à la casse. p>
est-ce myarray.count () ou myarray.Size () ou de la longueur (myarray) ...? Quel type de retour est une méthode particulière, encore une fois? Intellisense me sauve quelques minutes chaque jour sur Google pour des choses comme celle-ci. P>
Pas du tout. Lorsque la liste IntelliSense apparaît, un programmeur recherche-t-il à travers toute la liste à chaque fois pour trouver la fonction qu'ils recherchaient? Peut-être au début, mais normalement, vous continuez à taper jusqu'à ce que INTELLISENSense se rétrécisse la liste sur laquelle il est plus rapide d'utiliser les flèches haut / bas et l'onglet à compléter. P>
Sans IntelliSense, il faudrait un peu plus de temps à coder que vous avez connu avec les classes que vous utilisez et beaucoup plus longtemps que vous n'êtes pas. Il sert uniquement d'outil de vitesse et de documentation rapide de tout ce qui est disponible. P>
pas de dumber, cela nous rend plus vite :) p>
La programmation est tout simplement en avant pour rendre la vie plus facile pour le programmeur et le rendre plus productif. P>
Ce serait comme se plaindre que nous n'écrivions plus de code de montage ... il est important de connaître les grands concepts et les idées derrière cela, mais en travaillant avec elle serait bizarre (dans la plupart des cas). P>
Cela ne nous rend pas Dumber; C'est une nécessité. p>
De retour dans la journée (Mme Basic pour moi), il n'y avait pas besoin d'intellisense. La portée de la langue était suffisamment limitée pour qu'un programmeur se souvienne de tous les mots-clés et à tous les fonctions. p>
Aller à aujourd'hui, IntelliSense est une exigence absolue. Prendre .net par exemple. Il n'y a tout simplement aucun moyen de se rappeler ou de découvrir les nombreux milliers de types, propriétés et méthodes. Oh, sûr, pour un très petit projet, vous pouvez connaître un groupe (100 ans) d'articles. Mais soyons honnêtes - il n'ya aucun moyen d'exister un programmeur de travail moderne sans cela. P>
Memmorisation de détail n'est pas la compétence la plus importante du développement de logiciels. Il vaut mieux avoir des compétences en résolution de problèmes et la capacité de trouver les informations dont vous avez besoin. Si vous investissez plus de temps dans les détails que vous serez perdus lorsque la prochaine langue la plus grande naissance, mais les algorithmes et les modèles seront toujours pertinents. p>
Ajout de mes deux cents ici. P>
De ma propre expérience et comme mentionné dans la TFA, je dirais que le seul inconvénient que j'ai rencontré jusqu'à présent est que vous apprenez la langue que vous pourriez récupérer de mauvaises habitudes. Utilisation de ArrayListes au lieu de la liste uniquement parce que vous n'êtes pas au courant de la modification des clauses d'utilisation, Permet de vous donner un autre type de données. P>
L'auteur se plaint de savoir qu'il obtient les mauvais types de données lors de la saisie de certains types de données. Bien que certains d'entre vous obtiendront probablement une licence, une arme et commencez la chasse à l'homme, j'ai constaté que l'utilisation de conventions de nommage est un excellent moyen de forcer l'intellensense à travailler mon chemin, surtout lorsque vous travaillez dans des formes intensives d'interfértrice et truc. p>
La question est bien sûr .... IntelliSense fait-elle une programmation moins de profession qualifiée? P>
Je ne le pense pas. IntelliSense ne fait pas la logique.
Qui est mon point. IntelliSense fait juste que les choses un peu plus rapides et plus faciles. Cela ne fait aucun dumber.
Oui, je suis d'accord avec l'auteur. IntelliSense (et de nombreux autres éléments de studio visuels) sont effectivement «rendant-nous dumber» pour les raisons mentionnées dans l'article. P>
Ce n'est pas toujours une mauvaise chose. Parfois, il est plus souhaitable de être productif em> que de obtenir plus intelligent em>. Le défi consiste à frapper le bon équilibre. :) p>
Pas plus que des calculatrices faites pour les mathématiciens et physiciens les plus pauvres. Bien sûr, utiliser une règle de diapositive vous oblige à conserver un modèle mental de l'ordre de grandeur des choses, mais ce n'est vraiment qu'un outil ... et de meilleurs outils vous permettent de mieux travailler. P>
Ceci peut être résumé dans la question traditionnelle: p>
connaît davantage les détails de l'aide ou de la blessure? EM> P>
règle, ingénieurs expérimentés et artisan disent, aide em>. Mais sachant que les détails vous permettent également de savoir quand les détails ne comptent pas, quel est ce que Visual Studio / IntelliSense fournit. (Je suis sûr qu'il y a un proverbe pithy qui pourrait être dit ici, mais je ne me sens pas à la hauteur de penser à une destination). P>
question intéressante. Bien sûr, je trouve IntelliSense en quelque sorte facilite le travail, mais c'est un peu comme de l'argent. Plus vous en avez, plus vous dépensez, pas nécessairement des choses dont vous avez besoin. J'ai appris à programmer autour de 1962 et je m'entends d'une manière d'une part sans intellisense depuis très longtemps. Ce que Intellisseense fait pour moi maintenant est d'aider à me souvenir de nombreuses classes et membres qu'il y a 4 ans, je n'ai jamais su que j'avais besoin. P>
Il y a une tendance que j'ai vue dans des logiciels qui ne manque jamais. La nature abhère un vide. Les machines deviennent plus grandes, alors devinez quoi, le logiciel devient plus gros (mais pas toujours mieux). Les machines obtiennent plus vite, les logiciels deviennent donc plus lents. Maintenant, les gens peuvent obtenir de l'aide de taper des noms longs, de sorte que le code devient vraiment verbeux. Maintenant, les gens obtiennent de l'aide à se souvenir de nombreuses classes, alors devinez quoi, il y a beaucoup plus de cours à retenir. Cela contribue grandement à aider le logiciel à devenir plus grand et plus lent. P>
Je fais beaucoup de réglage de la performance et quelle est la cause dominante du ralentissement? Il s'agit de généralités galopantes causées par des excréments avec trop de structure de données, trop de classes et de trop de couches d'abstraction. En un mot, "BLOQUE". Voici un petit exemple. P>
Dumb & paresseux. p>
Je trouve les outils de Visual Studio propice à une autre expérimentation. Lorsque vous traitez avec l'API Win32 en C (par exemple), vous ne pouvez pas vraiment fouiller trop facilement. Lorsque vous travaillez avec C #, c'est un coup d'œil pour avoir un peu explorer une bibliothèque et apprendre ce qu'il fait sans rompre MSDN ou un désassembleur pour toute la soirée. P>
Si vous êtes un programmeur naturellement curieux, IntelliSense ne changera pas cela. Si vous n'êtes pas, IntelliSense ne changera pas cela non plus. Pour paraphraser l'un de mes collègues », je pense que c'est une perte de temps à la recherche d'énormes livres lorsque vous pouvez simplement prendre une implémentation sur le Web et passer à la prochaine chose à venir». P>
C'est un ancien argument de toute façon, pré-Intellisense. Est-ce que la base pourrir l'esprit où écrire en x86 ne le fait pas? Connaissez-vous un algorithme à l'intérieur de la pertinence lorsque chaque langue de programmation que vous allez utiliser dans votre rôle a une bibliothèque éprouvée? P>
Je trouve que ceux qui envisagent de programmer un passe-temps ou une compétence sont enclins à comprendre et à enquêter. Ceux qui considèrent cela le jour de la journée. Indépendamment de toute friture autour d'elle, il s'agit davantage de mentalité d'un programmeur que ce qui est mis à disposition. P>
Vous n'êtes que aussi muet que vous voulez être. Les outils ne font pas les gens plus bêtes. La paresse et le manque de conduite font.
Non - mais ça vous sauve de devoir apprendre des tonnes de merde par cœur! :)
Current, Marc_s, ce que vous appelez Crap est les détails qui composent le système. Ne le méprisez-vous, et vous i> écrivez un mauvais logiciel. Juste une pensée...
@Paul: Je ne pense pas non plus - si vous n'avez pas besoin d'emballer tous ces détails dans votre cerveau pour les connaître par cœur, vous êtes libéré des idées et des idées plus productives, je crois.
C'est la vieille discussion de l'IDE v. VI. Ou GUI vs. Invite de commande. Je serai toujours en face avec moins de travail accomplissant plus dans moins de temps.
@marc_s - Je suis avec vous sur celui-ci sur celui-ci - prenez standard 92 SQL - pas beaucoup de mots dans la langue, mais de l'utiliser, il faut beaucoup d'intelligence - avec SQL, vous devez utiliser votre esprit pour vous souvenir des modèles pas des listes d'objets . La même chose pourrait être vraie dans un environnement IntelliSense - Les bons utilisateurs se souviennent de schémas et d'algorithmes par opposition aux détails des objets.
Quelle est la différence dans vs ou éclipse? Ne fais-ils pas la même chose?