Ich frage mich, ob es sich lohnt, Sprachspezifikationen / Standarddokumente (z. B. die Java-Sprachspezifikation ) zu lesen, wenn Sie keinen Compiler / Interpreter für die Sprache oder ähnliches schreiben werden. Ich verstehe, dass das Lesen eines solchen Buches nicht das erste Mal sein sollte, dass jemand mit der Sprache in Berührung kommt, aber es könnte eine großartige Möglichkeit sein, die feineren Details davon zu lernen.
Haben Sie jemals gestört, und sollten andere?
Antworten:
Es kommt im Grunde genommen auf eine ziemlich einfache Frage an: Wollen Sie maßgebliche, detaillierte Kenntnisse der Sprache, oder sind Sie froh, dass Sie diese gut genug kennen, um sie zu verwenden, und stellen Sie fest, dass es wahrscheinlich Teile gibt, die Sie nicht gut kennen, und möglicherweise auch andere Teile, die Sie gar nicht kennen?
Grundsätzlich gibt es einige Leute, die beinahe als "Sprachanwälte" geboren zu sein scheinen - sie werden sich nicht ausruhen (können), solange es in der Sprache noch ein paar Ecken und Kanten gibt, die sie nicht kennen und / oder oder verstehen. Viele von ihnen tendieren zu relativ einfachen Sprachen, nur weil das Erlernen komplexerer Sprachen auf dieser Detailebene für eine Person oft so gut wie unmöglich ist.
Für die meisten Programmierer wäre das eine reine Zeitverschwendung - sie sind sehr glücklich und produktiv, wenn sie genug über die Sprache wissen, um sie (angemessen) gut verwenden zu können. Darüber hinaus ist es ihnen einfach egal. Die Sprache ist ein Werkzeug, und solange sie es gut genug für ihre Zwecke einsetzen können, ist die Tatsache, dass es andere Dinge gibt, die sie nicht kennen, größtenteils irrelevant.
quelle
noch nie
Man sollte niemals eine Sprachspezifikation lesen.
Es ist eine totale Zeitverschwendung.
Großartige Programmierer sind in der Lage, zufälligen Code einzugeben, Fragen zum Stapelüberlauf zu stellen und mithilfe der IDE schließlich Code zu schreiben, der nicht sehr oft abstürzt.
Verschwenden Sie keine Zeit damit, die Sprache zu verstehen. Finden Sie einfach eine großartige IDE mit guter Autovervollständigung. Stellen Sie viele SO-Fragen. Es ist alles, was jemand braucht.
quelle
Für Java soll die Sprachspezifikation eine eindeutige Antwort auf alle Fragen zur Bedeutung eines bestimmten Quellkonstrukts geben. Es wird nicht empfohlen, es als Lerner zu lesen - stattdessen zeigt ein guter Lehrer Ihnen alle Fallen und was sie tatsächlich bedeuten.
Für einen erfahrenen Entwickler sind die Java Puzzlers wirklich gut, um Ihr Verständnis für die dunklen Eckfälle zu trainieren.
quelle
Die allgemeine Antwort lautet: Ja, es lohnt sich.
Wenn Sie portablen Code schreiben möchten, ist dieser obligatorisch.
Für einige Sprachen ist dies nur unvermeidlich, zB Ada oder Perl.
Wenn Sie nicht nur Code schreiben, sondern auch Code von anderen lesen, müssen Sie sich schließlich auf die Spezifikation beziehen.
quelle
Vielleicht bin es nur ich, aber diese Frage macht keinen Sinn. Das Verständnis der von Ihnen verwendeten Werkzeuge ist das Markenzeichen eines Profis. Je tiefer das Verständnis, desto besser ist Ihre Fähigkeit, das Tool zu verwenden. Für mich ist es die Wahl zwischen einem Dilettanten oder einem Profi.
Wann immer ich eine neue Sprache lerne, suche ich zuerst die Spezifikation.
Ich habe Spezifikationen für ANSI C, C ++, Java, Schema, Python und Javascript gelesen. Ich habe die meisten Details zu C, C ++ und Java vergessen, nur weil ich diese Sprachen nicht oft verwende. Nachdem ich die technischen Daten gelesen hatte, war ich ein besserer Programmierer, weil ich wusste, wie man die Sprache besser verwendet.
quelle
Im Allgemeinen kann es hilfreich sein, bestimmte schwierige Momente zu verstehen, denen Sie gelegentlich begegnen.
Aber im Ernst, wenn Sie eine Sprache beherrschen müssen, um sich mit ihren detaillierten Spezifikationen vertraut zu machen, dann ist die Sprache vielleicht eine unglückliche. Ähnlich wie im allgemeinen Sprichwort: Wenn Sie eine Dokumentation für Ihre Anwendung benötigen, ist diese schlecht gestaltet.
quelle
Ich finde es nützlich, wenn du in einen Moment hineinläufst, aber ich finde es schwierig, eine klare Lesart beizubehalten. Wenn ich jedoch etwas verwendet habe, das ich nicht verstanden habe, hat es mein Wissen immer sehr erweitert.
quelle
Wenn Sie ein Hardcore-Programmierer in dieser Sprache sind und in der Lage sein müssen, jede subtile Nuance daraus herauszuholen, ja. In diesem Fall rechnen sich Ihre Zeitinvestitionen eindeutig .
Ansonsten nein. Wenn Sie das Wissen nicht nutzen, wird es sich bestimmt nicht an Sie halten. Bei den Sprachspezifikationen handelt es sich um das Langweiligste, was man sich vorstellen kann.
quelle
Normalerweise lege ich nicht viel Wert in den Standard. Die einfache Tatsache ist, dass der Standard Sie nicht auffordert, Ausnahmen nicht als Kontrollfluss zu verwenden. Es wird Ihnen nicht sagen, Singletons nicht zu verwenden. Sie erfahren nicht, wie Sie eine wartbare Klassenschnittstelle entwerfen. Es wird Ihnen nicht sagen, warum Ihre Anwendung abstürzt, wenn Sie nicht wissen, warum. Sie können das wohl definierte Programm der Welt haben und es wird immer noch schrecklich sein.
Meiner Meinung nach ist die einfache Tatsache, dass die überwiegende Mehrheit der Programmierprobleme nicht darin besteht, die Sprache zu tun, was Sie wollen, sondern zu wissen, was das Richtige ist. Solange Sie die grundlegenden Sprachfunktionen kennen, ist es wichtig, wie Sie sie verwenden.
quelle
Es lohnt sich auf jeden Fall, es zu lesen. Einige Sprachen wie C ++, Java und Python sind so komplex, dass Sie beim Lesen der Sprachspezifikation viel über diese Sprachen und all ihre ausgefallenen Syntax- / Semantiktricks lernen.
Ich habe die Sprachspezifikation für Schema R5RS auf der Busfahrt zum College gelesen, weil sie kurz und kompakt war und ich die gesamte Syntax und alle verfügbaren Grundfunktionen gelernt habe.
quelle
Der Teil von doc.python.org mit der Bezeichnung "Sprachreferenz" ist äußerst nützlich. Insbesondere das Kapitel "Datenmodell".
quelle
Ich denke, wenn das Programmieren in dieser Sprache Ihre Aufgabe ist und Sie Ihre Aufgabe ernst nehmen möchten, sollten Sie die Sprachspezifikation lesen, insbesondere wenn sie relativ einfach und schnell zu lesen und zu verstehen ist, wie die Java-Sprachspezifikation, obwohl sie
recently
viel verloren hat Es ist einfach mit Generika.Aber auch wenn Sie vorhaben, eine neue Sprache zu lernen und zu beherrschen, die Sie noch nicht kennen, kann es sehr aufschlussreich sein, die Spezifikation dieser Sprache zu lesen, bevor Sie Ihre Zeit damit verschwenden. Ich bin mir sicher, wenn mehr C ++ - Entwickler das C ++ Annotated Reference Manual gelesen und versucht hätten, es zu verstehen, bevor sie es in Betrieb genommen hätten, wären viele verängstigt davongekommen.
quelle