Sou um programador razoavelmente experiente, tentando aprender o desenvolvimento da web. Estou tentando desenvolver um aplicativo Web do lado do cliente que usa svg ou canvas para gráficos. Decidi que gostaria de escrever o código do aplicativo no Coffeescript. Eu não sei Javascript ou Coffeescript.
Quão necessário é conhecer o Javascript para o desenvolvimento web do Coffeescript? É provável que eu encontre algum problema genérico que exija que eu entenda o Javascript? Posso trabalhar com APIs Javascript do Coffeescript?
Edit : Eu poderia facilmente aprender o básico do Javascript em uma semana. Estou mais preocupado que o Javascript pareça ter muitas arestas afiadas ocultas. Na questão de recurso de idioma mais estranha do StackOverflow, o Javascript é um dos idiomas mais comuns. Possui um objeto incomum e modelo de classe. Possui regras de escopo de nome não óbvias. Acho que leva mais de uma semana para eu realmente conhecer um idioma.
Vou trabalhar em um pequeno projeto simples para aprender o desenvolvimento da web. Seria melhor usar Javascript ou Coffeescript? Acho que, a longo prazo, prefiro o Coffeescript, mas estou disposto a começar com o Javascript, se precisar de um entendimento completo do Javascript para usar o Coffeescript.
class
palavra - chave no CS não faz nada de mágico; simplesmente usa mecanismos nativos de herança prototípica JavaScripts. Por esse motivo, eu recomendaria ter pelo menos um conhecimento auxiliar de alguns dos "recursos" JavaScripts mais obscuros.Respostas:
Acho que não seria absolutamente necessário, mas você enfrentaria obstáculos a longo prazo se não o fizesse.
Você precisa entender o que está acontecendo sob o capô e o que o compilador CoffeeScript transcreve, pois é para isso que os navegadores (assumindo que estamos falando sobre o uso do CoffeeScript em um ambiente de navegador) precisarão interpretar. O que significa que também é o que você precisará depurar , especialmente considerando que o CoffeeScript é bastante recente e ainda podemos encontrar algumas arestas e erros no mecanismo de transcrição. Além disso, se você não estiver usando nenhuma ferramenta de depuração personalizada para depuração, precisará percorrer o código JavaScript gerado para depurar usando o Firebug ou o Chrome Dev Tools ou o console JS de sua escolha. Em alguns casos, você poderá ver como o erro JS está diretamente relacionado à instrução CoffeeScript de origem. Em outros, como a transcrição não é trivial,
Faça o seguinte: você pode muito bem desenvolver software em Java e C # sem nunca ter feito nenhum desenvolvimento de baixo nível. No entanto, é muito difícil entender o que está acontecendo e por que você enfrenta gargalos de desempenho e problemas de memória, se você não tem idéia e não consegue adivinhar o que o tempo de execução desses idiomas precisa fazer por você em segundo plano, e que parte da suposição eles podem estragar, porque simplesmente não conseguem fazer milagres.
Além disso, se você aprender JavaScript, perceberá como é incrivelmente mais difícil do que parece originalmente e apreciará o CoffeeScript por sua sintaxe clara e concisa ainda mais :)
fonte
Você pergunta:
Eu posso dizer, inequivocamente, sim. Em geral, se você estiver fazendo algo interessante, em algum momento precisará pelo menos entender o que está acontecendo nos níveis abaixo de você. (Às vezes, o Google + cortar + colar pode salvar você, mas você não quer ser esse cara.)
Qualquer "programador razoavelmente experiente" que escolha um novo idioma não deve demorar muito. JavaScript é uma linguagem bastante simples. Qualquer coisa difícil vem do ambiente em que está sendo executado: a saber, vários navegadores da Web diferentes, com idéias diferentes de como fazer as coisas.
Muitas das informações "como fazer" que você encontrará na Web serão escritas com o JavaScript em mente, portanto você provavelmente terá mais facilidade se aprender a ler o JavaScript e traduzi-lo para o equivalente CoffeeScript.
Honestamente, a menos que você tente deliberadamente permanecer ignorante, provavelmente aprenderá JavaScript como um efeito colateral de trabalhar no CoffeeScript. Então, basta começar.
fonte
Como " A regra de ouro do CoffeeScript é: 'É apenas JavaScript' ", recomendo pelo menos uma familiaridade básica com o JavaScript. Em particular, dê uma olhada no livrinho de Douglas Crockford , JavaScript: The Good Parts . Você também pode assistir à excelente apresentação introdutória de Crockford sobre o assunto.
O CoffeeScript basicamente agrupa as partes boas do JavaScript em um pacote diferente: "O CoffeeScript é um experimento simples para imaginar uma linguagem que expõe uma sintaxe mínima para o belo modelo de objeto subjacente ao JavaScript " . Você não precisa conhecer todos os detalhes, apenas o suficiente para entender que o JavaScript, por si só, não é uma linguagem orientada a objetos baseada em classe. Não tem aulas. Em vez disso, ele usa " protótipos " e isso faz algumas diferenças em relação a outras linguagens OO. Jeremy Ashkenas limpou algumas das partes ruins da sintaxe do JavaScript, adicionou alguns aprimoramentos e o tornou um pouco mais de Python .
O JavaScript tem algumas "dicas" conhecidas a serem observadas. Caso contrário, é uma ótima linguagem e é muito usada atualmente. Não teríamos AJAX ou jQuery sem ele, entre outras coisas.
Boa sorte com o seu CoffeeScript!
fonte
Sim. Não é o fim do mundo, se não, mas sim.
Por quê? Bem, primeiro, o JavaScript é realmente fácil de aprender. Levei literalmente 4 dias para aprender (bem, a maioria). Além disso, acredito que seja mais valioso que o CoffeeScript. Realmente acho que você nem precisa do CoffeScript. Mas ainda é uma boa ferramenta.
fonte
Depende.
Se o CoffeeScript abstrair o JavaScript o suficiente, para que você não precise conhecê-lo (como C # abstraindo a Linguagem Intermediária), sim, você poderá fazer o que quiser no CoffeeScript sem aprender JavaScript.
Mas minha experiência me diz que, por mais que eu tente fugir do JavaScript, quando se trata de cliente, às vezes eu realmente preciso sujar as mãos e escrever JavaScript puro.
Sim você está certo. embora a sintaxe do JavaScript seja fácil e você possa aprendê-la de maneira fraca, mas você leva anos para dominar.
IMHO, como eu vejo o CoffeeScript, não é maduro o suficiente para envolver totalmente todos os meandros do JavaScript. Portanto, não corro o risco de não aprender ou trabalhar diretamente com JavaScript.
fonte
A documentação coffeescript define coffescript em termos de javascript equivalente. Se você não entender o javascript, também não entenderá o coffeescript.
fonte