Мне интересно, стоит ли читать спецификации языка / стандартные документы (например, спецификацию языка Java ), если вы не собираетесь писать компилятор / интерпретатор для языка или что-то подобное? Я понимаю, что чтение такой книги не должно быть первым знакомством с языком, но это может быть отличным способом узнать более мелкие детали этого.
Вы когда-нибудь беспокоились, и должны ли другие?
Ответы:
По сути, все сводится к одному довольно простому вопросу: хотите ли вы авторитетного, детального знания языка или вы счастливы, зная его достаточно хорошо, чтобы использовать его, понимая, что, вероятно, есть части, которые вы не знаете хорошо, и, возможно, другие части вы вообще не знаете?
По сути, есть некоторые люди, которые, кажется, почти рождены, чтобы быть «языковыми адвокатами» - они не будут (не могут) отдыхать, пока есть даже несколько закоулков на языке, который они не знают и / или понять. Многие из них тяготеют к относительно простым языкам просто потому, что изучение более сложных языков на этом уровне детализации практически невозможно для любого человека.
Для большинства программистов это было бы пустой тратой времени - они вполне счастливы и продуктивны, зная достаточно языка, чтобы иметь возможность использовать его (разумно) хорошо. Кроме того, им просто все равно. Язык является инструментом, и пока они могут использовать его достаточно хорошо для своих целей, тот факт, что есть другие вещи, которые они не знают, в значительной степени не имеет значения.
источник
Никогда
Никогда не следует читать спецификацию языка.
Это пустая трата времени.
Хорошие программисты могут набирать произвольный код, задавать вопросы о переполнении стека и использовать IDE для написания кода, который не очень часто падает.
Не тратьте время на понимание языка. Просто найдите отличную IDE с хорошим автозаполнением. Задайте много ТАК вопросов. Это все, что нужно.
источник
Для Java языковая спецификация предназначена для того, чтобы дать определенный ответ на любой вопрос о значении данной исходной конструкции. Читать его как ученика не рекомендуется - вместо этого хороший учитель показывает вам все ловушки и что они на самом деле значат.
Для опытного разработчика Java Puzzlers действительно хорош для тренировки понимания темных случаев.
источник
Общий ответ: да, это стоит.
Если вы хотите написать переносимый код, это обязательно.
Для некоторых языков это просто неизбежно, например, Ada или Perl.
Более того, если вы не только пишете код, но и читаете код других, вам в конечном итоге придется обратиться к спецификации.
источник
Возможно, это только я, но этот вопрос не имеет смысла. Понимание используемых вами инструментов является отличительной чертой профессионала. Чем глубже понимание, тем лучше ваша способность использовать инструмент. Для меня это выбор между дилетантом или профессионалом.
Всякий раз, когда я изучаю новый язык, первое, что я ищу, - это спецификация.
Я прочитал спецификации для ANSI C, C ++, Java, Scheme, Python и Javascript. Я забыл большинство деталей C, C ++ и Java только потому, что я не часто использую эти языки. Прочитав спецификации, я стал лучшим программистом, потому что знал, как лучше использовать язык.
источник
В целом может быть полезно понять некоторые сложные моменты, с которыми вы сталкиваетесь время от времени.
А если серьезно, если для овладения языком требуется, чтобы вы ознакомились с его подробной спецификацией, то, возможно, язык неудачный. Подобно общему высказыванию, если вам нужна документация для вашего приложения, то она плохо спроектирована.
источник
Я нахожу это полезным, когда вы сталкиваетесь с тем, какой момент, но мне трудно сохранить это как простое чтение. Однако, когда я использовал после того, как я ничего не понял, это всегда сильно способствовало моим знаниям.
источник
Если вы программист на этом языке, и вам нужно уметь извлекать из него все тонкие нюансы, да. Есть четкие доходы от инвестиций времени в этом случае .
В противном случае нет. Если вы не собираетесь использовать знания, они, конечно же, не останутся с вами. Спецификации языка - самая скучная вещь, которую только можно себе представить.
источник
Я обычно не помещаю большой запас в Стандарт. Простой факт заключается в том, что Стандарт не скажет вам не использовать исключения в качестве потока управления. Это не скажет вам не использовать Singletons. Он не расскажет вам, как разработать поддерживаемый интерфейс класса. Он не скажет вам, почему ваше приложение падает, если вы не знаете, почему. У вас может быть самая четко определенная программа в мире, и она все равно будет ужасной.
На мой взгляд, простой факт заключается в том, что подавляющее большинство задач программирования заключается не в том, чтобы заставить язык делать то, что вы хотите, а в том, чтобы знать, что правильно. До тех пор, пока вы знаете основные языковые функции, важно знать, как их использовать.
источник
Это определенно стоит прочитать. Некоторые языки, такие как C ++, Java и Python, достаточно сложны, так что, прочитав спецификацию языка, вы узнаете много нового об этих языках и обо всех изощренных синтаксических / семантических приемах, которые у них есть.
Я читал спецификацию языка Scheme R5RS на автобусе до колледжа, потому что он был коротким и компактным, и я изучил весь синтаксис и все основные функции, доступные.
источник
Часть doc.python.org, помеченная как «справочник по языку», чрезвычайно полезна. Глава "Модель данных" особенно так.
источник
Я думаю, если программирование на этом языке - ваша работа, и вы хотите серьезно относиться к своей работе, вам следует прочитать спецификацию языка, особенно когда ее относительно легко и быстро читать и понимать, как в спецификации языка Java, хотя она
recently
потеряла много это простота с дженериками.Но также, если вы планируете изучать и в конечном итоге освоить новый язык, который вы еще не знаете, может быть очень полезно прочитать спецификацию этого языка, прежде чем тратить на него свое время. Я уверен, что если бы больше разработчиков C ++ читали и пытались понять аннотированное справочное руководство C ++ до того, как начали его использовать, многие бы испугались этого.
источник