↓ Ir para o conteúdo principal

← todas as notas

📎 Webclip

JavaScript: A Menos Entendida Linguagem de Programação do Globo!

Douglas Crockford diz que JavaScript é muito popular por causa da Web, mas é pouco entendido. O texto tenta desfazer essa imagem ao mostrar que a linguagem é dinâmica, orientada a objetos e útil também fora do navegador.

Fichamento
#

  • O nome JavaScript sugere uma ligação com Java que não existe; a linguagem é diferente e foi criada pela Netscape.
  • O sufixo “Script” também ajuda a gerar a impressão de que a linguagem seria menos séria do que outras linguagens de programação.
  • A sintaxe lembra C, mas a estrutura se aproxima mais de Lisp ou Scheme, com funções como valores de primeira classe, closures e lambdas.
  • O sucesso no navegador levou a necessidade de typecasting e mostrou que a linguagem também serve para aplicações fora da Web.
  • As primeiras versões eram fracas e não tinham exceção, funções privadas nem herança.
  • Há problemas na linguagem, como o uso de “+” para adição e concatenação, o uso de “with”, regras rígidas para palavras reservadas e a inserção automática de ponto e vírgula.
  • O lint é apresentado como forma de reduzir parte desses problemas.
  • As primeiras aplicações de JavaScript eram mal feitas e os navegadores também eram instáveis, o que prejudicou a reputação da linguagem.
  • Muitos livros sobre JavaScript são ruins, com erros e más práticas, embora David Flanagan seja apontado como exceção.
  • A especificação da ECMA é descrita como difícil de ler e pouco útil, o que também afeta a qualidade da documentação sobre a linguagem.
  • O texto afirma que muita gente que programa em JavaScript não tem formação nem disciplina de programação.
  • JavaScript é descrito como orientado a objetos porque tem objetos, construtores, herança por protótipo e modelos de reuso por herança e agregação.
  • A ausência de classes e de um mecanismo simples de privacidade é reconhecida, mas o texto diz que objetos podem ter membros privados e que JavaScript também suporta herança e outros padrões de reuso.