Qual é a motivação por trás do TypeScript?


21

Tínhamos JavaScript, Flash, Flashlight e HTML5 e todos.

Então, qual é a motivação por trás do TypeScript? Quais problemas serão resolvidos e quais melhorias obteremos com o TypeScript?

http://www.typescriptlang.org/


15
Por que você acha que o HTML5 "deve" o JavaScript?
Bergi

1
No sentido de que todos tinham que concordar com algumas coisas para encontrar um ponto em comum => tecnologia e desenvolvimento parado.
Gero

3
Por que você mencionou Dart?
Robert Harvey

Dart, TypeScript ou Coffeescript podem ser compilados para JavaScript. E Dart também é novo.
Gero

Dê uma olhada neste artigo "Pensamentos sobre TypeScript", de Nicholas C. Zakas: nczonline.net/blog/2012/10/04/thoughts-on-typescript
Czarek Tomczak

Respostas:


35

Parece-me que é uma linguagem estaticamente tipada e baseada em classe que compila até JavaScript. É uma boa ideia e que outras pessoas também tiveram.

As vantagens devem ser óbvias para quem foi desenvolvido em ambas as linguagens, estaticamente tipadas e baseadas em classes, e em JavaScript:

  • Primeiro e acima de tudo, um compilador. Ser capaz de verificar problemas óbvios de correção causados ​​por erros de digitação ou descuido antes da implantação é algo que a maioria dos desenvolvedores dá como certo até que eles tenham que fazer o desenvolvimento da Web e, de repente, é arrancado de debaixo deles. Os navegadores são projetados para tornar a experiência de navegação agradável às custas dos recursos adequados de teste e depuração, e a solução padrão, JSLint, não substitui um compilador real, pois perde alguns problemas óbvios de correção e mistura várias queixas do verificador de estilo em com seus relatórios. Ter um compilador real é um grande passo em frente.
  • E em linhas semelhantes, um sistema de tipos . Os sistemas de tipos melhoram seu código, facilitando a leitura (você sabe exatamente o que está sendo passado para uma função e o que pode fazer, apenas olhando a lista de parâmetros, por exemplo) e impondo um certo grau de correção na compilação Tempo. (Se você está esperando um tipo de objeto específico, passar um número inteiro é um erro. O JavaScript permitirá que você faça isso e depois explode quando você tenta executá-lo; um compilador com um sistema de tipos o captura e relata um erro para vocês.)

Então, como vemos, a idéia básica é muito boa. Dito isto, não posso dizer nada sobre o idioma em si, porque não tenho experiência com ele. Mas eu usei o Smart (vinculado acima) e achei uma ferramenta incrivelmente poderosa e útil para o desenvolvimento da web.


7
É mais um superconjunto de JavaScript do que uma nova linguagem que se compila até ela.
Daniel Little

2
Sim, a digitação forte facilita os programadores.
Edwin Yip

13
O TypeScript é digitado estaticamente, não fortemente.
Fenton

15

Existem algumas boas razões para usar o TypeScript, até onde posso ver. Em primeiro lugar, como disse Mason Wheeler, um compilador . Ou melhor, toda a verificação que um compilador faz. JSLint e outras ferramentas são úteis, mas perdem alguns problemas e às vezes estão completamente errados. Eu certamente saúdo essa "inovação".

Depois, existe um sistema de tipos reais , melhorando a legibilidade e aplicando os tipos corretos. Afinal, isso aumenta a velocidade de desenvolvimento.

Para mim, uma das grandes coisas é o suporte de ferramentas . Provavelmente esse é um efeito colateral do sistema de tipos, mas, no entanto, ótimo. E realmente necessário, pois o suporte a ferramentas JavaScript atual é além de útil.

O TypeScript tenta estender o JavaScript . O compilador gera um JavaScript muito bom. Além disso, segue as propostas do ECMAScript 6 . (Por exemplo , sintaxe da função da seta , valores padrão dos parâmetros , módulos e assim por diante.

Isso facilita o trabalho com módulos e classes . Na verdade, é possível e bastante comum trabalhar com classes e módulos em JavaScript, mas requer uma certa quantidade de código padrão. E não é realmente fácil de ser lido. O TypeScript permite escrever instruções de classe, interface e módulo, como em Java ou C #, o que é muito mais fácil se você me perguntar.

Mas, afinal, ainda é apenas JavaScript . Não há necessidade de aprender um novo idioma ou sintaxe. A única coisa que acrescenta é o sistema de tipos opcional (que é excelente e atrasado).

Depois, há a "biblioteca de definições" , o que significa que posso usar todas as minhas bibliotecas JavaScript sem reescrevê-las ou mesmo corrigi-las. No entanto, eu tenho o sistema de tipos adicionais agora.

Definitivamente vou tentar!

Uma última coisa, não há competição entre HTML5 e TypeScript. Mas isso é outra história.


5

Tínhamos JavaScript, Flash, Flashlight e HTML5 e todos.

Isso simplesmente não é verdade . O HTML5 não os possui, apresenta novas marcações que simplificam o uso de multimídia e explora as vantagens dos navegadores da nova era (como usar a aceleração de hardware ao renderizar html).

Então, qual é a motivação por trás do TypeScript?

As motivações podem ser motivadas por razões para usá-lo. Todos os recursos do TypeScript, como: verificação estática, navegação baseada em símbolos, conclusão de instruções e refatoração de código, são razões muito fortes para considerá-lo.

Além disso, oferece classes, módulos e interfaces para ajudá-lo a construir componentes robustos. Esses recursos estão disponíveis no momento do desenvolvimento para o desenvolvimento de aplicativos de alta confiança, mas são compilados em JavaScript simples.


O HTML 5 não é um pré-requisito para a aceleração de hardware. A maioria dos navegadores estão fazendo isso com ou sem HTML5 marcação
Neil N

minha declaração indica que a aceleração de hardware é um recurso que o navegador não fornece html5.
EL Yusubov 02/10/12

3

Ele pode ser tratado como uma ferramenta para gerenciar o desenvolvimento de javascript, em vez de uma nova linguagem totalmente compilada para JS. Ele não deseja ser uma linguagem de desenvolvimento no servidor, como o Dart, e não ter uma sintaxe diferente, como o CoffeeScript. Ele não queria pegar uma linguagem popular (e é a biblioteca principal) e compilá-la em JS como GWT ou script #. O TypeScript ainda segue a mesma sintaxe de "classe" proposta para a próxima versão do JS.

Eu acho que a maior parte do desenvolvimento da web é feita hoje em dia, usando javascript real, apenas no lado do cliente. Idiomas ou estruturas como Dart, GWT não são adequados para isso. Se você optar pelo coffeescript, uma nova sintaxe será exibida. E você precisa entender o coffeescript e o JS. Enquanto o TypeScript está apenas adicionando alguns recursos extras orientados ao tipo, mesclados no JS, que salvam os desenvolvedores de erros específicos de tipo (que é uma grande parte dos erros de JS) e fornecem às ferramentas de desenvolvimento mais informações sobre a intenção dos desenvolvedores.

Essa abordagem não é nova. Vá para a seção "Digitação estática" em

Este artigo aborda sua consulta http://www.eweek.com/developer/microsoft-delivers-typescript-a-better-javascript-for-big-apps/


0

Acho que é um esforço transformar uma porcaria compartilhada e não confiável (javascript) em uma linguagem proprietária que pode realmente ser usada para projetos substanciais.

Ele deve ser comparado ao GWT, que possui um conjunto de objetivos semelhantes, mas adotou uma abordagem mais limpa, tornando o javascript não parte da linguagem; e com applets Java ou Flash, que adotam uma abordagem muito clara de definir um ambiente de tempo de execução completo, independente do navegador.

Sua opinião pode variar, mas acho que está condenada, desde que dependa dos navegadores que fornecem nativamente as implementações de javascript (variadas e inconsistentes) e os modelos DOM.


5
Em primeiro lugar, não é proprietário, já é um padrão aberto. Em segundo lugar, é mais parecido com o Dart do que com o GWT / ScriptSharp (embora semelhante).
Daniel Little

1
Provavelmente não há maneira de ganhar neste - se a Microsoft não controlá-lo torna-se outra língua bastarda com muitas variantes, e ainda é dependente das areias movediças de javascript e DOM
ddyer

1
Você parece alguém que pode ser um pouco amargo com suas habilidades em Flash e / ou Java, tornando-se consideravelmente menos relevantes pela atual pilha HTML5 / JS popular.
Graham

3
-1 Então você não gosta de JavaScript. Essa é a sua afirmação, basicamente.
Bruno Schäpper

2
Justo, e como é a base do texto datilografado, acho que acho que o texto datilografado se baseia em uma base ruim. Não é necessariamente fatal, mas é um mundo de mágoa.
Ddyer 02/10/12
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.