Qual é o estado atual da linguagem de programação Dart do Google? [fechadas]

15

O Dart está fora há muito tempo (nos anos da Internet), mas, a julgar pelo Google Trends , não recebeu muita publicidade, e o fato de funcionar apenas no Chrome também não ajuda. No entanto, o Chrome está ganhando participação de mercado todos os dias, o que se presta a uma visão melhor do Dart.

Qual é o quadro geral agora? Em que estado está o idioma? As pessoas consideram altamente isso? Quota de mercado? Vitrine de aplicativos da Web? Algumas implementações de recursos que fazem você ir "Eu tenho que usá-lo"?

Mihalis Bagos
fonte
2
Essa questão pode ser julgada como localizada demais no tempo e não se sabe como torná-la menos localizada sem pedir opinião sobre o próprio idioma.
Matthieu
1
@ Matthieu: Muito localizado? Seriamente?
Jim G.
1
@JimG. : Para um idioma que está na versão 0.06 e é atualizado todos os meses , acho justo dizer que esse idioma pode não ser o mesmo nos próximos 6 meses e que qualquer julgamento aprovado hoje será inútil.
Matthieu
1
O Dart funciona em navegadores modernos, compilando-o em JavaScript.
Seth Ladd
2
Eu realmente não entendo o motivo disso ter sido fechado. Requer fatos (participação / uso do mercado), referências (exemplos on-line, etc.), o estado em que o idioma está (visualização técnica conforme indicado nas respostas), implementações de recursos (fato / referência / conhecimento específico). O post ainda fornece algumas informações semelhantes às que ele espera, o que é claro e conciso e
direto

Respostas:

27

A resposta curta para "Qual é o estado de Dart?" é: está na visualização de tecnologia. Essa é uma maneira especial de dizer: "lançamos cedo para que possamos abrir tudo de código-fonte e trabalhar ao ar livre". "Visualização da tecnologia" também significa "ainda não estamos no Alpha, temos muito trabalho a fazer, mas há o suficiente para você brincar e dar feedback".

O tempo na Internet pode funcionar para notícias ou iterações de produtos de consumo, mas provavelmente não para algo tão ambicioso e amplo quanto o esforço da Dart. Lembre-se, o Dart é mais do que apenas um idioma. É também um conjunto de bibliotecas, uma melhor interface DOM, uma máquina virtual, um Editor e integração com o Chrome. A equipe está trabalhando muito em vários threads paralelos, mas eu pessoalmente espero que levem seis meses até que tenhamos a maioria das peças no lugar.

Não é verdade que o Dart funcione apenas no Chrome. O Dart compila para JavaScript e tem como alvo navegadores modernos. Certamente, o Chrome será o primeiro a lançar com suporte nativo ao Dart, mas garantir que o Dart seja compilado para obter um desempenho e um JavaScript efetivo é uma restrição e um recurso principal do projeto.

O panorama geral é que o Dart se tornará um ambiente de desenvolvimento "inclui baterias" para aplicativos da web modernos. O objetivo principal da Dart é ajudar a garantir que a Web continue sendo uma plataforma produtiva e agradável para o desenvolvimento e a implantação de aplicativos. Isso significa que muitas partes precisam se encaixar: idioma, bibliotecas, editores, máquinas virtuais e integração com o navegador. Em conjunto, acreditamos que o Dart será uma opção atraente para desenvolvedores de aplicativos da web modernos.

A grande grande imagem é que queremos trazer desenvolvedores de aplicativos para a Web e queremos que desenvolvedores de aplicativos escrevam aplicativos da Web mais complexos. Se eles usam Dart, isso é ótimo. Mas no final do dia, o idioma não importa. A única coisa que importa é que aplicativos da Web complexos, do lado do cliente, alta fidelidade, baixa latência e modernos estejam sendo construídos.

A linguagem está em um estado de desenvolvimento. Vemos novos lançamentos para as especificações aproximadamente uma vez por mês. Faltam recursos importantes, como reflexão, mas continuamos iterando. Acabamos de adicionar o suporte map () ao Collection, por exemplo. Gilad Bracha, um cara que conhece suas línguas (que criou o NewSpeak e trabalhou no Java Lang Spec) e Josh Bloch, um cara que conhece suas bibliotecas (que escreveu Java eficaz e trabalhou nas bibliotecas Java Collection) estão trabalhando na linguagem e bibliotecas, junto com a equipe maior.

As pessoas consideram altamente o Dart difícil de generalizar, e provavelmente não importa muito para você. Você deve tirar suas próprias conclusões depois de jogar com o Dart. Minha experiência é que desenvolvedores de aplicativos de outras plataformas, como Java, C # ou Flex, acham o Dart atraente e familiar. Minha experiência com desenvolvedores de JavaScript é dividida. Se esse desenvolvedor JavaScript também criou aplicativos em outras plataformas, ele está cautelosamente otimista em relação ao Dart (ou, pelo menos, à solução que está tentando fornecer). Se esse desenvolvedor JavaScript cresceu em JavaScript e só programou em JavaScript, há mais hesitação. Isso pode ser uma preocupação fundamental sobre o idioma, ou hesitação em sair de uma zona de conforto ou simplesmente não encontrar casos extremos com JavaScript. Isso é apenas generalização, mas eu

Quanto à participação de mercado, é extremamente cedo no jogo. Provavelmente não é a pergunta certa a ser feita, pois o Dart nem está enviando. Uma pergunta mais interessante seria: "Qual é a participação de mercado de aplicativos na web?" e depois descobrir como podemos resolver isso.

Quanto a uma vitrine de aplicativos da Web, a equipe do Dart construiu o Swarm, um ótimo leitor de notícias. Infelizmente, só o temos no código fonte no momento: http://www.dartlang.org/samples/index.html

Quanto a alguns recursos "matadores", eu diria que existem alguns muito interessantes:

  • tipos opcionais são lisos, adicionam anotações e documentações para humanos e máquinas.
  • O isolado é uma ótima maneira de obter simultaneidade de maneira segura.
  • Bibliotecas (modularidade) são extremamente necessárias para a pilha da Web, e o Dart possui bibliotecas e classes.
  • Os instantâneos permitirão uma inicialização extremamente rápida
  • As bibliotecas incluídas (como coleções, cronômetro etc.) unificarão as bases de código e reduzirão o código de envio
  • Nova e agradável interface DOM, que torna o trabalho com o DOM muito mais agradável. Parece código nativo do Dart.

Espero ter respondido suas perguntas. Acho que a única pergunta que importa é: "Minha linguagem me ajuda a criar aplicativos da Web complexos, de alta fidelidade, baixa latência, modulares e modernos?" O estado final de tudo isso é simplesmente ajudar mais desenvolvedores de aplicativos a oferecer aplicativos mais bem-sucedidos para a web moderna.

Seth Ladd
fonte
chegou a este tópico enquanto assistia ao seu vídeo Introduction to Dart. Pronto para um pouco de prática no Dart. :)
SachinGutte
8

Você não pode medir a idade da linguagem de programação em "anos da Internet". De fato, você não pode medir nenhuma tecnologia real nos anos da Internet. Tudo o que você realmente pode medir nos anos da internet são hipopótamos, mas eles não refletem a realidade.

Dart é público há 3 meses. Compare isso com os técnicos "frescos" e "quentes" no campo, como CoffeeScript ou Node.js, que são públicos há 2 anos e quase 3 anos, respectivamente. Também vale a pena notar que ambos são passos relativamente pequenos em comparação com o Dart. Basicamente, o CoffeeScript significava conectar um gerador de JavaScript a um analisador baseado em Ruby e Node.js significava vincular E / S sem bloqueio ao Google V8.

O Dart é uma tentativa de redesenhar a programação da web de front-end em todos os níveis, como sintaxe, recursos de linguagem, ambiente de tempo de execução e APIs. Comparar o Dart ao CoffeeScript, por exemplo, é como comparar um protótipo de uma aeronave pessoal, pilotada automaticamente por energia solar, com um Shelby GT de 1968. Claro, o primeiro tem muito mais potencial, mas investir nele, muito menos embarcar, requer muita audácia. O último tem muitas deficiências conhecidas, mas são conhecidas, o que torna tudo previsível e confiável.

Claro que isso é apenas especulação, mas acho que o Dart é um beco sem saída, que será recuperado para avançar o JavaScript ou outras soluções. Se você deseja uma linguagem dinâmica, o CoffeeScript e o Parenscript já fazem o que o Dart promete. Se você preferir uma linguagem de tipo estaticamente, o haXe e o Opa farão o truque. Todos os quatro têm vantagem em Dart. E todos eles foram projetados para serem compilados no JavaScript como padrão, não apenas como substituto.

back2dos
fonte
3
Acho que, embora o Dart seja novo como idioma, não vi nada particularmente inovador nele. Até onde eu sei, é composta principalmente de recursos de idiomas mais antigos. Portanto, realmente não é muito parecido com um "protótipo de um avião pessoal movido a energia solar, pilotado automaticamente".
Tikhon Jelvis
@ back2dos +1 "Não é possível medir a idade da linguagem de programação em" anos na Internet ". Na verdade, não é possível medir nenhuma tecnologia real nos anos na Internet." Isso abriu uma nova visão para eu pensar. Por que não pode e como a tecnologia pode ser medida nas épocas pré e pós-Internet?
Ubermensch
@TikhonJelvis: A comparação foi mais sobre a maturidade. Ainda assim, a energia solar, a pilotagem automática e a aviação existem, portanto o veículo que descrevi é similar ao Dart, "apenas" uma recombinação das idéias existentes. O desafio da engenharia não é recombinar, mas fazê-la voar;)
back2dos
A comparação do Dart com outros idiomas está fora desta discussão e, tanto quanto posso imaginar em qualquer discussão, uma vez que são coisas diferentes de qualquer maneira. O Dart é mais do que um pré-processador e certamente não é orientado para o servidor. Mas eu concordo com as especulações sobre o futuro do dardo, e essa é uma das coisas que eu estava ansioso para responder
Mihalis Bagos
@MihalisBagos: Bem, como o Dart pode ser compilado para JS, você já pode executá-lo no Node.js, para que possa ser usado no servidor. Além disso, é difícil medir o tempo de maneira significativa, para entender como o Dart pode chegar a que horas, uma comparação com um determinado idioma em um estágio posterior com um número compreensível de recursos é praticamente o melhor quadro de referência que você pode obter.
back2dos
5

O dardo ainda está em pré-visualização técnica. No momento em que a especificação de idioma possui a versão 0.0.6, é esperado um 0.0.7 em algum lugar nesta semana. Está longe de ser "completo". Existem vários exemplos no repositório: http://www.dartlang.org/samples/index.html

Aqui está uma visão sobre o que é melhor em termos de sintaxe do que em JavaScript: http://www.grobmeier.de/10-reasons-why-dart-is-cooler-than-javascript-03012012.html Isenção de responsabilidade: este é meu post . Preciso dizer que aqui eu gosto de JavaScript, mas em alguns momentos ele tem peculiaridades, das quais não gosto muito.

Há também uma comunidade crescente ao seu redor: http://www.dartosphere.org

Algumas pessoas conseguiram portar o Box2D para o Dart, outro cara conectado ao CouchDB. De qualquer forma, não há nada que você deva usar na produção.

Antes de um tempo, Josh Blochua se juntou à equipe para trabalhar na refatoração da API. Você pode esperar algumas alterações, mesmo na API principal.

Suporte ao navegador: você pode transcompilar o Dart para JavaScript, de preferência com o Frog (não o DartC, ele compila com enormes arquivos javascript). O Dartium é um dos navegadores que suporta o Dart nativo, uma controvérsia discutida no ramo Webkit.

Minha expectativa pessoal é obter algo mais concreto no meio do próximo ano. Pela minha experiência, os desenvolvedores do Google estão fazendo muito para tornar a linguagem adequada e boa, emprestando não apenas o Java, mas também o Erlang e o JavaScript.

Aqui está um exemplo, um jogo portado do JavaScript: http://blog.sethladd.com/2011/12/10-lessons-from-porting-javascript-to.html

Pode-se esperar que o Dart chegue ao Android, talvez até como um "idioma principal". As pessoas estão dizendo que chegará ao AppEngine.

Pessoalmente, acho que o Dart é muito elegante e já é bastante legal. Além disso, acho que terá uma participação no mercado assim que estiver concluída.

Você encontrará muitas das suas perguntas respondidas nesta FAQ: http://www.dartlang.org/support/faq.html#compare-to-coffeescript

cristão
fonte
Obrigado pela resposta prática, links muito interessantes!
Mihalis Bagos
0

O dardo está fora há muito tempo (em anos na internet)

Nem sequer é usado extensivamente e é imaturo. As tecnologias prontas para produção existem há mais de 10 a 15 anos ... para a Dart, você nem pode dizer que é um pré-alfa. As novas tecnologias sempre parecem boas, no papel, quando ninguém as usa.

não recebeu muito hype

Eu acho o contrário. É uma pena que uma linguagem tão ruim e atrasada tenha críticas tão positivas. Ele está voltando do belo Ecma / Java Script OOP com herança parasita, fechamentos e retornos de chamada para algum OOP de madeira de uma década, retirado do Java com todas as práticas horríveis de programação que o Java vem.

Algumas implementações de recursos que fazem você ir "Eu tenho que usá-lo"?

Nenhum. Se você conhece java e tem intolerância ao conhecimento para aprender Ecma / JavaScript corretamente, o Dart é provavelmente a única coisa que funcionará para você.

Você sabe como o google funciona. Eles usam muito o Java; provavelmente é por isso que produziram uma linguagem tão horrível ... eles estão acostumados a isso.

Além de fragmentar ainda mais a web, espero que o Mozilla e o Opera nunca implementem isso (porque o MS não adicionará suporte a alguns idiomas como o google java, com certeza). Além de todo o conceito estar DATED, devemos nos livrar de linguagens como C ++ ou Java, pelo menos ao codificar UIs, porque elas são muito ineficazes. É como substituir o C ++ pelo Assembler, porque os codificadores com mais de 50 anos se recusam a aprender coisas novas.

Slawek
fonte
2
Você pode diminuir um pouco a tendência do seu idioma; seu primeiro parágrafo faz um bom resumo e você termina com uma boa observação, mas esses se perdem em todos os "horríveis".
Patrick Hughes
+1 na redução, o c ++ ainda está muito ativo (como o montador) para aplicativos específicos. Pode não ser a melhor ferramenta para todos os trabalhos, mas em muitas circunstâncias é incrível. Assembler é, por exemplo, usado em mecanismos de jogos, acredito.
Paul Hiemstra
Eu não disse que Java ou C ++ é ruim ... ambos são ruins para interfaces de usuário, que é o que JS é usado (principalmente) para programar. Ambos são bons em outras áreas. O Dart é apenas uma abordagem ingênua para as pessoas que apenas programam em Java, então provavelmente pensam que Java é bom para tudo. Ao lado eu trabalhei com MFC e Java em UIs então eu acho im direito de dizê-lo :) É como dizer Assembler é mais avançado do que C, porque ASM é tudo o que você sabe :)
Slawek
Eu trabalhei com Java e JavaScript e posso dizer que sua postagem é horrível e ingênua. Linguagens de programação não são religião, e o Dart tem uma abordagem bastante boa. Eu não acho que podemos ou devemos nos livrar de linguagens como Java. Isso é apenas discurso de hackers, sem qualquer justificativa.
Christian
Raciocínio? Você pode fazer a mesma coisa em JS que em Java ... apenas algumas vezes mais rápido + o código é muito mais fácil de gerenciar e alterar, se estivermos falando sobre UIs. Tempo = dinheiro. Já era ruim o suficiente quando tínhamos o VBScript e o ECma juntos nos navegadores ... por que voltar aos anos 90? JS é uma linguagem específica para casos muito específicos. Por que substituí-lo por algo geral e ruim?
Slawek
0

Dart é um conceito defeituoso que segue os passos do Javascript. O Google deve colaborar na criação de um tempo de execução padrão para navegadores da Web (como um HTML 6). Semelhante ao código de java byte ou IL da Microsoft.

Não devemos padronizar em idiomas específicos, mas em tempos de execução. O "navegador é um sistema operacional". Certo? WTF google? Siga sua própria visão !!!

Lord Tydus
fonte
2
Bytecode Java é uma linguagem específica. Como é o CIL.
Jörg W Mittag