Je me demande s'il vaut la peine de lire les spécifications du langage / les documents standard (par exemple, la spécification du langage Java ) si vous n'écrivez pas un compilateur / interprète pour le langage ou quelque chose de similaire? Je comprends que la lecture d'un tel livre ne devrait pas être la première exposition de quiconque à la langue, mais cela pourrait être un excellent moyen d'en apprendre les moindres détails.
Avez-vous déjà dérangé, et devriez-vous en avoir d'autres?
Réponses:
Cela se résume à une question assez simple: voulez-vous une connaissance approfondie et faisant autorité de la langue, ou êtes-vous heureux de la connaître assez bien pour l'utiliser, sachant qu'il y a probablement des parties que vous ne connaissez pas bien, et très probablement d'autres des pièces que vous ne connaissez pas du tout?
Fondamentalement, il y a des gens qui semblent presque nés pour être des "juristes de la langue" - ils ne pourront (ne pourront) pas se reposer tant qu'il y aura même quelques coins ou recoins dans la langue qu'ils ne connaissent pas et / ou comprendre. Beaucoup d'entre eux se tournent vers des langues relativement simples simplement parce que l'apprentissage de langues plus complexes à ce niveau de détail est souvent presque impossible pour une seule personne.
Pour la plupart des programmeurs, ce serait une perte de temps totale - ils sont assez heureux et productifs connaissant suffisamment la langue pour pouvoir l'utiliser (raisonnablement) bien. Au-delà de cela, ils s'en moquent tout simplement. La langue est un outil, et tant qu'ils peuvent utiliser l'outil suffisamment bien pour leurs fins, le fait qu'il y ait d'autres choses qu'ils ne connaissent pas est largement hors de propos.
la source
Jamais
Il ne faut jamais lire une spécification de langue.
C'est une perte de temps totale.
Les grands programmeurs sont capables de taper du code aléatoire, de poser des questions sur Stack Overflow et d'utiliser l'IDE pour éventuellement écrire du code qui ne plante pas très souvent.
Ne perdez pas de temps à comprendre la langue. Trouvez simplement un excellent IDE avec une bonne saisie semi-automatique. Posez beaucoup de questions SO. C'est tout ce dont tout le monde a besoin.
la source
Pour Java, la spécification du langage est destinée à donner une réponse définitive à toute question sur la signification d'une construction source donnée. Il n'est pas recommandé de le lire en tant qu'apprenant - au lieu de cela, un bon enseignant vous montre tous les pièges et ce qu'ils signifient réellement.
Pour un développeur expérimenté, le Java Puzzlers est vraiment bon pour former votre compréhension des cas de coin sombre.
la source
La réponse générale est: oui, cela en vaut la peine.
Si vous voulez écrire du code portable, c'est obligatoire.
Pour certaines langues, c'est juste inévitable, par exemple, Ada ou perl.
De plus, si vous n'écrivez pas seulement du code mais lisez également le code des autres, vous devrez éventuellement vous référer à la spécification.
la source
C'est peut-être juste moi, mais cette question n'a aucun sens. Comprendre les outils que vous utilisez est la marque d'un professionnel. Plus la compréhension est profonde, meilleure est votre capacité à utiliser l'outil. Pour moi, c'est un choix entre être dilettante ou professionnelle.
Chaque fois que j'apprends une nouvelle langue, la première chose que je recherche est la spécification.
J'ai lu les spécifications pour ANSI C, C ++, Java, Scheme, Python et Javascript. J'ai oublié la plupart des détails C, C ++ et Java juste parce que je n'utilise pas souvent ces langages. Après avoir lu les spécifications, j'étais un meilleur programmeur car je savais mieux utiliser le langage.
la source
En général, il peut être utile de comprendre certains moments difficiles que vous rencontrez de temps en temps.
Mais sérieusement, si la maîtrise d'une langue nécessite que vous vous familiarisiez avec ses spécifications détaillées, alors la langue est peut-être malheureuse. Comme pour le dicton courant, si vous avez besoin d'une documentation pour votre application, elle est mal conçue.
la source
Je trouve cela utile lorsque vous rencontrez un moment donné, mais j'ai du mal à conserver une lecture directe. Cependant, lorsque j'ai utilisé après que je n'ai pas compris quelque chose, cela a toujours beaucoup amélioré mes connaissances.
la source
Si vous êtes un programmeur noyau dur dans cette langue et que vous devez pouvoir en tirer toutes les nuances subtiles, oui. Il y a des retours clairs sur votre investissement de temps dans ce cas .
Sinon, non. Si vous n'allez pas utiliser les connaissances, cela ne va certainement pas rester avec vous. Les spécifications linguistiques sont la chose la plus ennuyeuse imaginable à lire.
la source
Je ne mets normalement pas beaucoup de stock dans la norme. Le simple fait est que la norme ne vous dira pas de ne pas utiliser d'exceptions comme flux de contrôle. Il ne vous dira pas de ne pas utiliser de singletons. Il ne vous dira pas comment concevoir une interface de classe maintenable. Il ne vous dira pas pourquoi votre application se bloque lorsque vous ne savez pas pourquoi. Vous pouvez avoir le programme le plus bien défini au monde et ce sera toujours horrible.
À mon avis, le simple fait est que la grande majorité des défis de programmation ne consistent pas à faire faire au langage ce que vous voulez, mais à savoir ce qui est juste. Tant que vous connaissez les fonctionnalités de base du langage, ce sera la façon de les utiliser qui compte.
la source
Cela vaut vraiment la peine de le lire. Certains langages tels que C ++ et Java et Python sont suffisamment complexes pour qu'en lisant les spécifications du langage, vous en apprendrez beaucoup sur ces langages et sur toutes les astuces syntaxiques / sémantiques qu'ils ont.
J'avais l'habitude de lire la spécification du langage Scheme R5RS pendant le trajet en bus vers le collège car elle était courte et compacte et j'ai appris toute la syntaxe et toutes les fonctions de base disponibles.
la source
La partie de doc.python.org intitulée "référence de langage" est extrêmement utile. Le chapitre "modèle de données" en particulier.
la source
Je pense que si la programmation dans ce langage est votre travail et que vous voulez prendre votre travail au sérieux, vous devriez lire la spécification du langage, surtout quand elle est relativement facile et rapide à lire et à comprendre comme la spécification du langage Java bien qu'elle ait
recently
perdu beaucoup de c'est la simplicité avec les génériques.Mais aussi si vous prévoyez d'apprendre et éventuellement de maîtriser une nouvelle langue que vous ne connaissez pas encore, il peut être très judicieux de lire les spécifications de cette langue avant de perdre votre temps avec. Je suis sûr que si plus de développeurs C ++ avaient lu et essayé de comprendre le manuel de référence annoté C ++ avant de commencer à l'utiliser, beaucoup s'en seraient effrayés.
la source