Uma única linguagem simples, como o Clojure, pode substituir os applets Html + JavaScript + CSS + Flash + Java…? [fechadas]


8

Por favor, não descarte a idéia imediatamente. Eu sei que é difícil competir com uma abordagem convencional que já funciona (principalmente), então minha pergunta é parcialmente "acadêmica".

Também sei que o ClojureScript existe e é muito legal, mas é um patch para uma coisa feia existente, uma abstração útil.

Isenção de responsabilidade: sou programador, mas não desenvolvedor web, e é por isso que solicito o feedback de outras pessoas. Sendo um desenvolvedor e usando a web todos os dias, lendo sobre vários tópicos e visualizando a fonte html de uma página de tempos em tempos, acho que tenho alguma idéia sobre desenvolvimento na web.

De qualquer forma, os problemas como eu os vejo:

  • A web começou rápida, suja e fácil de usar, mas agora são necessárias muitas habilidades para criar uma boa página da web interativa moderna, e você só precisa ser bom nisso para ser competitivo hoje. Isso geralmente significa que "aprender a web em 21 dias", rápido e sujo, simplesmente não é suficiente.
  • O html começou rápido e sujo, como um protocolo fácil de usar. Atualmente está uma bagunça.
  • A linguagem JavaScript não está isenta de falhas, mas está bem.
  • CSS parece ser uma tentativa decente de limpar as coisas. Vale a pena manter, pelo menos a idéia - que você pode estilizar a aparência em um arquivo separado.
  • Juntando tudo - JavaScript + Html + CSS fica bastante sujo. Existem boas idéias / ferramentas que atenuam o problema, como: as bibliotecas AJAX abstraem os sabores específicos do JavaScript. Bibliotecas poderosas como JQuery, Node.js, etc. permitem fazer coisas legais em JavaScript tão imperfeitas quanto são. O Google Web Kit faz um excelente trabalho ao converter um design de GUI em uma página da web. Estruturas da Web MVC, como ASP.Net, RoR, Django, abstraem as coisas e fazem muito trabalho para você, NO ENTANTO , essas são abstrações em cima de uma base ruim.
  • A demanda pelo que a web poderia fazer hoje é sempre crescente; O ChromeBook do Google é uma manifestação disso. Você executa o navegador em tela cheia e tudo o que você pode querer fazer - interações teclado / mouse, som, vídeo, jogos, texto, imagens, apresentações em power point - tudo está acontecendo dentro dele. Obrigado pelos navegadores rápidos e computadores rápidos e "nuvem", mas poderia ser muito melhor!

Do ponto de vista gráfico, um navegador é apenas uma tela retangular na qual você pode pintar qualquer coisa. Atualmente, o executável do navegador pesa muitos megabytes porque precisa saber como analisar HTML, JavaScript, CSS e exibir tudo.

Se você começar do zero e perceber que é apenas uma tela a ser pintada, acho que o navegador pode ser muito menor e mais simples. O preço a pagar é ter que escrever um programa válido para tudo em uma sintaxe descolada, como Lisp ou Clojure, mesmo para as coisas mais simples, como exibir um rótulo. Essa costumava ser a parte legal do html - se você quisesse digitar o parágrafo, digitaria literalmente. Isso raramente acontece mais. Se tudo o que você deseja é digitar apenas o parágrafo do texto, você ainda precisa pensar em estilo inline ou CSS, posicionamento. O seguinte trecho de HTML (encontrado na primeira página deste site)

<a href="/software/tagged/programming-languages" class="post-tag" title="show questions tagged 'programming-languages'" rel="tag">programming-languages</a> <a href="/software/tagged/learning" class="post-tag" title="show questions tagged 'learning'" rel="tag">learning</a>

não é muito mais fácil criar do que alguma sintaxe alternativa do Lispy (e eu não pensei muito nisso):

(create-link :target "/questions/tagged/programming-languages" :class "post-tag" :title "show questions tagged 'programming-languages'" :rel "tag" :content (text "programming-languages"))

Isso pode não ser uma sintaxe válida do Clojure; Eu meio que inventei. Ele não precisa imitar o html - na verdade, esse é o ponto de começar do zero. A grande vantagem aqui seria essa (text ...)e (create-link ...)não faz parte da linguagem principal que um navegador precisaria entender. O navegador precisaria apenas entender um Clojure "seguro" (que não consiga limpar o disco rígido) e ser capaz de desenhar e tocar música, ouvir teclado e mouse e coisas semelhantes e tudo mais - desenhar texto, reproduzir um vídeo , exibir uma caixa de combinação e interagir com ela seria tudo feito em uma biblioteca cuidadosamente projetada.

Por que eu escolhi o Clojure? É uma linguagem minúscula que pode realizar muito, além da filosofia de criar programas complicados a partir de blocos simples de construção é muito atraente.

Eu acho que ser capaz de suportar uma única linguagem poderosa como o Clojure seria suficiente para realizar tudo o que o Html e o Html5 e o CSS e JavaScripts e o Silverlight e o Flash podem realizar.

Uma discussão tangencial - acho que o mesmo vale para o LaTeX - poderia ser refeita com o Clojure como uma linguagem subjacente, e um arquivo de origem seria um programa completo que exibe um PDF ou um ps durante a execução.

Entendo que começar do zero é MUITO DURO, porque um navegador moderno tem muitos e muitos recursos úteis. Começando com uma base limpa pode valer a pena.

O que você acha dessa idéia maluca? Percebo que as respostas provavelmente seriam subjetivas devido à natureza dessa pergunta, mas ainda estou curioso sobre o que você pensa disso.


2
Em teoria, você pode substituir o HTML por muitas coisas, mas não vejo como alguém poderia coagir (e essa é a palavra correta) todo mundo a se importar com o seu próprio padrão.
precisa saber é o seguinte

2
O Compojure faz parte do que você está descrevendo. Obviamente, ele fala "navegador", assim como todas as outras estruturas da web.
Robert Harvey


1
@ Martin, a Microsoft iniciou o WPF do zero. Não decolou tanto quanto alguns esperavam, porque é muito complicado, mas algo como o WPF poderia ter substituído o HTML. Isso não aconteceu. Além disso, a Apple lançou o padrão Thunderbolt, que eles começaram do zero e vai funcionar. Se a idéia é ótima, necessária e tem um impulso decente por trás, ela pode ter sucesso. Provavelmente não é esse o caso da minha proposta, mas acho que haverá uma demanda cada vez maior por navegadores muito rápidos.
Job

1
Não tenho certeza de como eu acabei neste post, mas: xkcd.com/927
MonkeyZeus

Respostas:


9

Os navegadores têm uma coisa para eles que praticamente supera todas as outras considerações.

Quota de mercado.

Em resumo, você não precisa instalá-los. Eles já estão na máquina do usuário. Não subestime esse benefício singular.

As coisas ficaram muito melhores com o HTML5; você pode escrever nele um cliente rico, se quiser, e há muitas estruturas disponíveis que facilitam esse processo.

Se você não gosta dos idiomas nativos do navegador, pode usar coisas como CoffeeScript e Less para limpá-los. Javascript é a nova linguagem de máquina de qualquer maneira. É isso que faz o ClojureScript funcionar.

Existem várias ferramentas, como o Websharper, que permitem o desenvolvimento da web em um único idioma.

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.