Gostaria de saber se vale a pena ler as especificações da linguagem / documentos padrão (por exemplo, The Java Language Specification ) se você não for escrever um compilador / intérprete para a linguagem ou algo semelhante? Entendo que a leitura de um livro desse tipo não deve ser a primeira exposição de ninguém ao idioma, mas pode ser uma ótima maneira de aprender os detalhes mais delicados.
Você já se incomodou e deveria ter outros?
Respostas:
Basicamente, resume-se a uma pergunta bastante simples: você deseja um conhecimento detalhado e autoritário do idioma ou está feliz em conhecê-lo suficientemente bem para usá-lo, percebendo que provavelmente existem partes que você não conhece bem e possivelmente outras partes que você não conhece?
Basicamente, existem pessoas que parecem quase nascidas como "juristas de idiomas" - elas não descansam (não podem) enquanto houver até alguns cantos ou recantos no idioma que não conhecem e / ou entender. Muitos desses gravitam em direção a linguagens relativamente simples, simplesmente porque aprender línguas mais complexas nesse nível de detalhe é quase impossível para qualquer pessoa.
Para a maioria dos programadores, isso seria um total desperdício de tempo - eles são bastante felizes e produtivos, sabendo o suficiente da linguagem para poder usá-la (razoavelmente) bem. Além disso, eles simplesmente não se importam. A linguagem é uma ferramenta e, desde que eles possam usá-la suficientemente bem para seus propósitos, o fato de que há outras coisas que eles não sabem é em grande parte irrelevante.
fonte
Nunca
Nunca se deve ler uma especificação de linguagem.
É uma total perda de tempo.
Os grandes programadores são capazes de digitar código aleatório, fazer perguntas no Stack Overflow e usar o IDE para eventualmente escrever código que não falha com muita frequência.
Não perca tempo entendendo o idioma. Basta encontrar um ótimo IDE com bom preenchimento automático. Faça muitas perguntas SO. É tudo o que alguém precisa.
fonte
Para Java, a especificação da linguagem visa dar uma resposta definitiva a qualquer pergunta sobre o significado de uma determinada construção de origem. Não é recomendável lê-lo como aluno - em vez disso, um bom professor mostra todas as armadilhas e o que elas realmente significam.
Para um desenvolvedor experiente, o Java Puzzlers é realmente bom para treinar sua compreensão dos casos do canto escuro.
fonte
A resposta geral é: Sim, vale a pena.
Se você deseja escrever um código portátil, é obrigatório.
Para alguns idiomas, isso é inevitável, por exemplo, Ada ou perl.
Além disso, se você não apenas escreve código, mas também lê código de outras pessoas, eventualmente precisará consultar a especificação.
fonte
Talvez seja só eu, mas esta pergunta não faz sentido. Compreender as ferramentas que você usa é a marca de um profissional. Quanto mais profundo o entendimento, melhor a sua capacidade de usar a ferramenta. Para mim, é uma escolha entre ser um diletante ou um profissional.
Sempre que estou aprendendo um novo idioma, a primeira coisa que procuro é a especificação.
Eu li especificações para ANSI C, C ++, Java, Scheme, Python e Javascript. Esqueci a maioria dos detalhes em C, C ++ e Java apenas porque não uso essas linguagens com frequência. Depois de ler as especificações, eu era um programador melhor porque sabia como usar melhor a linguagem.
fonte
Em geral, pode ser útil entender certos momentos difíceis que você encontra de vez em quando.
Mas, falando sério, se o domínio de um idioma exige que você se familiarize com suas especificações detalhadas, talvez o idioma seja lamentável. Da mesma forma que o ditado comum, se você precisar de uma documentação para seu aplicativo, ele será mal projetado.
fonte
Acho útil quando você se depara com o que é o momento, mas acho difícil reter como uma leitura direta. No entanto, quando eu usei depois de não entender algo, isso sempre aumentou muito meu conhecimento.
fonte
Se você é um programador essencial nessa linguagem e precisa ser capaz de extrair todas as nuances sutis, sim. Há retornos claros no seu investimento de tempo nesse caso .
Caso contrário, não. Se você não usar o conhecimento, certamente não ficará com você. As especificações de idioma são a coisa mais chata que se pode imaginar.
fonte
Normalmente, não coloco muito estoque no Padrão. O fato simples é que o Padrão não solicitará que você não use exceções como fluxo de controle. Não lhe dirá para não usar Singletons. Não mostrará como criar uma interface de classe sustentável. Ele não informa por que seu aplicativo está travando quando você não sabe o porquê. Você pode ter o programa mais bem definido do mundo e ainda será horrível.
Na minha opinião, o simples fato é que a grande maioria dos desafios de programação não é fazer a linguagem fazer o que você quer, é saber qual é a coisa certa. Contanto que você conheça os recursos básicos da linguagem, será como usá-los que conta.
fonte
Definitivamente, vale a pena lê-lo. Algumas linguagens como C ++, Java e Python são complexas o suficiente para que, lendo as especificações da linguagem, você aprenda muito sobre essas linguagens e todos os truques sofisticados de sintaxe / semântica que eles possuem.
Eu costumava ler a especificação da linguagem do Scheme R5RS na viagem de ônibus para a faculdade porque era curta e compacta e aprendi toda a sintaxe e todas as funções básicas disponíveis.
fonte
A parte do doc.python.org denominada "referência da linguagem" é extremamente útil. O capítulo "modelo de dados" é particularmente importante.
fonte
Eu acho que se a programação nessa linguagem é o seu trabalho e você quer levar o trabalho a sério, deve ler a especificação da linguagem, especialmente quando é relativamente fácil e rápido de ler e compreender como a especificação da linguagem Java, embora tenha
recently
perdido muito é simplicidade com genéricos.Mas também se você planeja aprender e, eventualmente, dominar um novo idioma que você ainda não conhece, pode ser muito esclarecedor ler as especificações desse idioma antes de desperdiçar seu tempo com ele. Tenho certeza de que se mais desenvolvedores de C ++ tivessem lido e tentado compreender o Manual de Referência Anotada de C ++ antes de começarem a usá-lo, muitos teriam fugido assustados dele.
fonte