Por que coffeescript em vez de javascript? [fechadas]

24

Eu acho que, de alguma forma, construir uma linguagem que é compilada para outra linguagem parece uma má ideia desde o início, em vez de aprender javascript corretamente desde o início. Olhe para Douglas Crockfords Good Parts e então você está viciado. E o javascript não é difícil - escrever um bom código é difícil, independentemente do idioma! Se você escrever código de baixa qualidade em javascript, provavelmente escreverá código de baixa qualidade em coffeescript ou lattescript ou qual será o sabor do dia. E dizer que a sintaxe do café é bonita me passa. Eu gosto do meu aparelho cacheado e sintaxe C - e preferencialmente funcionaria em uma linguagem assim (desculpe, VB!). E mais brinquedos, linguagens e estruturas para fazer a mesma coisa novamente não parecem mais um progresso para mim!

marko
fonte
5
Então, compilar Java para bytecode e C #, VB.NET e outras linguagens .NET compilando para IL também são más idéias?
Oded
10
A diferença é que as pessoas geralmente não programam diretamente em bytecode e IL (a menos que eu esteja enganado), enquanto a programação em Javascript é comum, daí a sua surpresa / pergunta.
wildpeaks 12/10
14
esta "pergunta" contém três pontos de exclamação e há pontos de interrogação
azheglov
Se você gosta de codificar em IL, então eu estou errado. Só estou pensando que o javascript é suficiente. E quando passar para o ECMAScript 5 e o modo estrito for implementado nos navegadores, será ainda melhor. Mas não estou dizendo que fazer outra coisa seja completamente errada. Eu quero uma discussão dos prós e contras, de por que você prefere algo mais do que js.
Marko
3
___ é péssimo, estou certo?
TRiG 23/10/12

Respostas:

21

O CoffeeScript é principalmente uma sintaxe diferente sobre JavaScript.

Se você entende JavaScript e realmente entende JavaScript, pode usar o CoffeeScript, se preferir, prefere espaços em branco e ->

Considero que a diferença entre JS e CS é a mesma que discutir sobre

if (thing)
{
  // code
}

if (thing) {
  // code
}

(o último é melhor. Quem faz o primeiro deve levar um tiro).

De qualquer forma, o principal problema do coffeescript é fazer com que as pessoas entrem nele (principalmente dos trilhos) e depois escrevam o coffeescript sem conhecer o javascript.

Portanto, o coffeescript possui todas as mesmas falhas do jQuery. Eles são apenas mais pontos de entrada para programadores ruins escreverem mais JavaScript ruim. Nós realmente precisamos resolver a qualidade do código de alguma forma.

Raynos
fonte
8
offopic : the latter is better. Anyone who does the former should get shot- isso depende da linguagem - i como primeiro estilo, mas a sua não compatível com JS, que é a principal linguagem;)
C69
11
it depends on the language.Eu acho que ele quis dizer com relação ao JavaScript.
Vardhaman Deshpande
11
Também há coisas que você simplesmente não pode fazer no CoffeeScript. Você tem um controle consideravelmente menos granular sobre a criação de objetos e similares.
Erik Reppen
Apenas adicionando ao comentário do c69, a formatação da primeira maneira pode levar a problemas reais: encosia.com/…
Buzzology
11
(o último é melhor. Quem faz o primeiro deve levar um tiro) - Prove! O extremismo é simplesmente ruim, não importa quem, quando, onde.
precisa saber é o seguinte
13

Há um equívoco de JavaScript como uma linguagem de "brinquedo". Isso leva as pessoas a considerá-lo como algo a ser brincado, em vez de usado para algo substancial. Adicione isso à baixa barreira de entrada (ou seja, você já possui um navegador e um editor de texto para poder começar a escrever JavaScript) e acaba tendo um monte de pessoas que não entendem o idioma que escreve quantidades de código em massa, e manchar o nome "JavaScript".

Não é uma maior quantidade (absoluta) de JS ruins do que outras línguas por causa de que o aumento da visibilidade. Os maus hábitos se tornam comuns à medida que o código incorreto se propaga pela Web e as pessoas veem a fonte em páginas que não foram examinadas por precisão ou boas práticas, e o JavaScript acaba com um nome ruim por causa disso.

Por esses motivos, as pessoas sentem a necessidade de criar linguagens mais familiares (mais "reais") que sejam transpiladas para JavaScript. Eles querem o conforto do OO clássico, digitação estática e outros recursos que aparecem em outros idiomas. Eles vêem as monstruosidades criadas por programadores inexperientes usando JS, e pensam que deve ser o resultado das "falhas fundamentais" (para citar o Google) no idioma.

</rant>

De qualquer forma, use o que quiser. Vou ficar com meus literais de objeto, digitação dinâmica e OO prototípica, obrigado.

Ryan Kinal
fonte
2
Ei, mas o dardo não vai resolver todo o nosso problema! (</sarcasm>)
Raynos
Amém a isso! (Não comentário dardo!)
Marko
É 2018 e o JavaScript sucumbiu à pressão de class: - /
ankush981
4

Eu acho que o benefício (aviso: eu não usei o CoffeeScript além de brincar com o exemplo no site) é que ele torna o JavaScript um pouco mais intuitivo para o público que atende: ou seja, o pessoal do Ruby / Python.

Pessoalmente, não vejo necessidade do CoffeeScript, pois gosto da sintaxe do JavaScript. No entanto, vejo como isso poderia ser útil.

Wayne Molina
fonte
11
Sim, acho que a sintaxe do ruby ​​/ python parece suspeita para mim, porque eu tenho codificado principalmente em linguagens no estilo C como Javascript, C #, PHP, actionscript e java.
Marko
4
Parece bom para mim principalmente (exceto a sintaxe ->e =>), já que usei um pouco de Ruby / Python, mas acho que não devemos tentar esconder o JavaScript devido à sua onipresença. Sim, algumas delas são desajeitadas, mas a aprendizagem de JavaScript "puro" é IMO, um melhor retorno do investimento devido à proliferação de JavaScript "puro" na natureza.
Wayne Molina
0

Se você gosta ou não da sintaxe, é subjetivo, no entanto, o fato é que o CofeeScript cuida de algumas verrugas irritantes do JavaScript. Obviamente, ainda não está claro se vale a pena introduzir um novo idioma e lidar com a etapa de compilação.

Nemanja Trifunovic
fonte
6
"irritantes irritações de javascript" O CoffeeScript não fornece, apenas fornece açúcar e sintaxe. Eu posso evitar as verrugas, e eu faço.
Raynos 12/10