Como o JavaScript se tornou popular?

27

Na história antiga, Brendan Eich tinha um design de linguagem e, no mundo de hoje, o JavaScript é uma linguagem popular implementada e usada em muitos lugares diferentes.

O que fez com que o idioma se tornasse popular? A sintaxe do tipo C era familiar aos programadores anteriores? A Netscape tinha controle suficiente do mercado para forçá-lo a ser usado? Ou existe alguma razão mais profunda de que o JavaScript é popular e outras línguas não?

Particularmente, se você tivesse que tornar uma linguagem tão popular quanto o JavaScript, que condições iniciais você precisaria para recriar seu crescimento em popularidade?

Mathnerd314
fonte
2
O JavaScript estava quase morto (+ - 2005) até o Google o ressuscitar com o Google maps.
Todd Moses
1
@ToddMoses Fui argumentar, mas algumas pesquisas mostraram que você está certo: o AJAX tornou o Javascript popular novamente, inspirado no Gmail (2004) e no Google Maps (2005). No entanto (e isso também se relaciona à pergunta acima), o javascript nunca desapareceu: o Actionscript (usado no Flash) apareceu por volta de 2000 e é basicamente o mesmo idioma. Durante os anos de guerra dos navegadores, o Flash / Actionscript estava sendo usado para as mesmas coisas que Javascript / AJAX é a tecnologia mais usada no momento. Peguei minhas habilidades JavaScript para Actionscript em 2000, e trouxe-os de volta para o Javascript em 2008 :-)
Darren Cozinhe
2
O Ajax é importante, mas é supercrédito, IMO. A semi-conformidade generalizada do navegador com a API DOM e CSS2 foi o que ajudou a tornar o JS uma ferramenta poderosa no lado do cliente. Isso começou mais por volta do 2002RC IIRC. Depois que tínhamos as ferramentas adequadas para mexer com o HTML, a implementação rápida de recursos complexos da interface do usuário era um jogo totalmente novo. Pode não ter sido até por volta de 2005 que todo mundo começou a realmente perceber. Eu diria também que foi apenas por volta de 2005 que uma massa crítica estava começando a entender que o JS é na verdade uma linguagem geral bastante durona.
precisa

Respostas:

31

Eu estava comentando sobre uma resposta anterior , mas estava ficando grande, então pensei em explicar isso.

Qualquer nova linguagem só pode ter sucesso se capitalizar em uma fronteira emergente na computação.

Exemplos anteriores:

  • C para Unix
  • Objective-C para iOS
  • Perl e PHP para back-end Web 1.0
  • Python e Ruby para back-end Web 2.0
  • Java para a empresa de back-end habilitada para Internet

Para responder à sua pergunta, o JavaScript era o idioma do Netscape Navigator quando este era o navegador dominante. Especificamente, era o idioma para o desenvolvimento dinâmico de front-end.

A próxima grande linguagem terá que resolver outra fronteira. Ainda parece haver uma disputa de terras no espaço de desenvolvimento da web de back-end. Além disso, a computação móvel não está totalmente resolvida, apesar do domínio atual da Apple. Além disso, há o surgimento da computação em vários núcleos e na nuvem, algo que muitas linguagens estão tentando capitalizar (como linguagens simultâneas como Erlang e Go ou linguagens funcionais como Haskell e OCaml).

Os empresários têm uma expressão semelhante à de "encontrar alguém em chamas e vender-lhe uma mangueira de incêndio". Então, se você deseja introduzir um novo idioma, de quem você está apagando? Toda nova fronteira na computação traz uma série de dores de cabeça; então forneça aspirina e você ficará dourado.

chrisaycock
fonte
4
Eu quase concordo, mas não consigo descobrir como a plataforma .NET se tornou tão popular?
Tomasz Nurkiewicz 13/03/11
5
@Tomasz Microsoft empurrou .NET como a nova plataforma para Windows (que ainda tem a grande maioria das instalações de desktop) e foi tão longe como para interromper VB 6.
chrisaycock
1
Nem Perl nem Python realmente devem sua popularidade inicial à web; eles foram projetados como idiomas para a construção rápida de ferramentas para sys-admins ou serviços de sistema operacional (respectivamente) e tiveram enorme sucesso nesses domínios antes de ganharem ainda mais força com o desenvolvimento da web.
SingleNegationElimination
1
@TokenMacGuy: Esses domínios (incluindo CAD / CAE) eram relativamente pequenos até a Web 1.0 decolar. Foi quando as prateleiras das livrarias começaram a transbordar de livros nessas línguas.
hotpaw2
2
@ hotpaw2: O Perl era extremamente popular para scripts no UNIX alguns anos antes do acesso à Internet em casa ser bastante comum.
Kevin cline # 8/13
38

É bem simples: o Netscape usou um mecanismo JavaScript no navegador. Se você queria fazer scripting na web, JavaScript foi ele . O Internet Explorer tinha (e ainda possui) JavaScript e VBScript, mas, obviamente, se você deseja trabalhar em mais do que apenas o IE, não tem escolha a não ser usar o JavaScript.

O JavaScript é uma excelente linguagem por si só, mas não seria tão popular hoje em dia se não fosse o único idioma que você pode usar para criar HTML.

Dean Harding
fonte
3
Então, pegando carona em um software (popular) existente que precisava de uma linguagem de nível superior?
Mathnerd314
7
@ Mathnerd314: Não é bem assim. O JavaScript (obrigado, Sr. CRT: p) nunca foi separado do navegador: foi desenvolvido pela Netscape especificamente para uso em seu navegador; portanto, não é uma decisão consciente de "pegar carona" na popularidade do Netscape para fazer com que o linguagem popular.
Dean Harding
2
@ Mathnerd314 Não se trata tanto de pegar carona, como era a única linguagem real para uma nova fronteira da computação , assim como C era para o Unix. Qualquer pessoa que desejasse um front-end dinâmico precisava usar JavaScript.
chrisaycock
4
Para recriar o sucesso, preciso encontrar uma fronteira totalmente nova da computação e tornar o novo idioma obrigatório. Eu entendo ... #
21410 Mathnerd314
2
@ Mathnerd314 As atuais fronteiras emergentes incluem computação em múltiplos núcleos e em nuvem. De fato, isso é algo que uma linguagem como Erlang poderia capitalizar. (Outro exemplo é o surgimento de Objective-C por causa do surgimento dos smartphones, já que a Apple é um grande jogador tão naquele espaço.)
chrisaycock
7

Vou adicionar uma atualização a isso porque acho que o surgimento de JS na Web do lado do cliente foi mal interpretado em alguns pontos-chave ao longo dos anos.

Não era o Ajax

Não estou dizendo que o Ajax não era importante para a evolução do entendimento do JS como uma linguagem, mas a luta pelo domínio do navegador do cliente acabou muito antes do termo Ajax ser cunhado.

Não foi porque era o único jogo na cidade

Havia Java Applets, Flash e VBScript. Ouvi dizer que havia outras opções de script nos anos 90 (mas eram necessários os plug-ins IIRC). Java é muito popular, mas os applets foram uma falha sombria. Eles eram feios e, com frequência, queijo suíço de segurança, mas o mais importante é que não acho que o Java se encaixava bem por razões que abordarei mais adiante. O Flash era muito popular e tinha uma forte presença por vários anos, mas mesmo quando o Flash finalmente tinha opções de SEO, elas não eram normalmente usadas, tornando muito difícil descobrir exclusivamente sites em Flash. Mesmo agora, a maioria de nós atualiza regularmente o Flash para poder ver filmes, mas esse é o verdadeiro calcanhar de Aquiles. A tecnologia proprietária nos navegadores é irritante. E, claro, o VB, que só funcionaria com o IE, então não.

O lugar certo na hora certa é relevante, mas não é a resposta completa

Sim, sem a onda da web, talvez nunca tenhamos visto o JavaScript ou um idioma em uso popular assim como vimos. Ou talvez tivéssemos ...

Acabou sendo a ferramenta perfeita para o domínio do problema

Eu diria que, por volta de 2000, tivemos os seguintes problemas:

  • O IE e a Netscape acabaram de concordar em começar a jogar bem, atendendo aos mesmos padrões de API e CSS DOM e tivemos que lidar com uma tonelada de problemas legados em vários navegadores JS desde então, que estão apenas começando a se tornar gerenciáveis sem o auxílio de ferramentas de normalização JS DOM, como jQuery post IE8
  • Havia toda uma nova geração de desenvolvedores / designers da web que não eram todos necessariamente pesados ​​como programadores que procuram melhorar seu jogo após a explosão de bolhas .com quando pararam de entregar a você um salário decente por aparecer na porta sem nada mais do que conhecimentos básicos de HTML e algumas habilidades em Photoshop.
  • Havia um novo garoto de CSS na cidade que oferecia possibilidades intrigantes para o que seria chamado de DHTML, (mais apropriadamente) DOM Script, (agora inapropriadamente) HTML5 (zomghtml5!).

Então, precisávamos de uma linguagem que fosse profunda, oferecendo a capacidade de realmente estruturar e arquitetar um aplicativo mais avançado com componentes portáteis / reutilizáveis ​​no lado do cliente, mas também acessível a pessoas que não sabiam muito e precisavam apenas de coisas para aparecer / reaparecer quando você clicou em um botão.

Além disso, o MS sendo a fera desagradável / incompetente e / ou dominadora por meio de práticas anti-competitivas que às vezes são, não conseguiu realmente tocar sua implementação de API DOM não compatível por uma boa década, embora eles conseguissem adicione algo ocasional como o objeto XHR original e querySelectors no IE8.

O importante a ser observado é que, por volta de 2005, tínhamos conseguido enterrar tão completamente a complexidade envolvida no tratamento de problemas entre navegadores que não era mais um problema sério na frente do JavaScript. A falha no suporte adequado ao CSS2 pelo tempo que causou causou consideravelmente mais dor. Para ter uma idéia do grande volume e profundidade dos problemas, recomendo consultar o site quirksmode.org . Eu não acho que esse seja um feito que poderia ter sido alcançado com a mesma facilidade e em tantas bibliotecas em Java, certamente não no VB e definitivamente não com nenhuma estratégia de plug-in cujo objetivo seja contornar o problema inteiro, tornando-se um novo. tipo de incômodo.

Outros recursos de idioma que fazem muito sentido para a interface do usuário:

  • Funções de primeira classe: Na minha experiência, nada se presta melhor ao processamento assíncrono e aos paradigmas orientados a eventos do que uma linguagem que torna suas funções de primeira classe. Ambas as preocupações são abordadas regularmente no trabalho da interface do usuário.

  • Tipos dinâmicos: a transmissão e a verificação de tipos são uma necessidade muito rara em JavaScript, o que ajudou a manter o código conciso e enxuto. As preocupações da interface do usuário podem se tornar complexas e complicadas muito rapidamente. Manter o código rígido e ser absolutamente claro sobre o fluxo de dados é fundamental para entender e modificar / manter.

  • Não é protecionista: há muitos anos que alguém está pregando que você precisa se proteger de seus próprios erros e das coisas idiotas que o outro cara pode fazer com seu código, tornando as construções de código altamente rígidas e inflexíveis e impossíveis de interferir com a intenção original. de autoria e muitas pessoas ouviram. Não direi que eles estão sempre errados (pode pensar), mas direi que é a abordagem incorreta da interface do usuário da web e acredito que é um fenômeno que estamos desenvolvendo, mantendo e modificando clientes- GUIs laterais em um ritmo muito mais rápido e com maior facilidade do que esse trabalho normalmente era realizado em idiomas mais restritivos no passado. Ser capaz de mudar as coisas rapidamente e facilmente torna muito mais fácil ter esquemas de arquitetura dinâmica / fluida que não exigem quantidades monumentais de sobrecarga indireta e abstração, o que acaba facilitando a visualização do que está acontecendo no seu código. e antecipar ou manipular exceções com muito mais clareza. É mais fácil manter isso simplesmente com a simples virtude de tornar possível ser mais direto em tudo que você faz e com muito menos código do que seria necessário para a outra filosofia.

Como o JS se tornou popular? Ele provou ser uma excelente ferramenta para o trabalho uma e outra vez. Não é a linguagem com a qual estamos "presos". É a linguagem que pode ter inspirado muita evolução nas línguas populares em geral. E por isso, você pode agradecer a Brendan Eich e a qualquer contemporâneo que ajudou a colocar a idéia em sua mente, por gostar de Scheme como uma inspiração de design adequada para o problema em questão mais do que ele gostava de Java.

Erik Reppen
fonte
2

Uma tática usada inicialmente era o nome - "JavaScript" se destinava à popularidade do Java, que vinha crescendo há algum tempo.

Grant Palin
fonte
1

Essa não foi a única linguagem de script no navegador entre navegadores? Sua popularidade parece ter crescido paralelamente à da web, o que faz sentido.

Ben Hughes
fonte
1

Hora certa, lugar certo. E não foi totalmente ruim.

É a mesma razão pela qual o Facebook está ganhando.

Yevgeniy Brikman
fonte
0

Na minha opinião, o Javascript é popular porque é bem suportado.

Primeiro, é o único idioma para o Netscape e o IE em seu tempo. Depois que uma "comunidade javascript" é estabelecida e se torna estável, ninguém pode pensar em "outro bem" que requer a construção de arranhões. Eles apenas contribuem para torná-lo cada vez melhor.

Se você deseja criar um novo idioma popular, a primeira coisa em que penso é que você deve determinar quem usa esse idioma . Os primeiros clientes são sempre difíceis de obter e você deve tornar seu idioma superior ao javascript de uma forma ou de outra. Talvez mesmo em um campo restrito / comunidade restrita de programadores, por exemplo, "mecanismo javascript melhor / mais rápido para iPhone móvel" possa ser uma boa opção.

Além disso, seu idioma deve ser fácil de usar e personalizar pela comunidade, porque é a comunidade que determina qual idioma pode sobreviver.

Hoàng Long
fonte
O importante é como torná-lo popular "o suficiente". Então ele funcionará sozinho.
Hoàng Long
0

Você não vai acreditar em mim, mas o flash e (em um pouco dos applets java anteriormente) deram uma enorme contribuição no crescimento da popularidade do javascript e na evolução da própria linguagem.

Quando o flash apareceu, foi a primeira evidência de que aplicativos da Web são algo que vale a pena pensar.

Em certo sentido, a competição com plug-ins, tentativas constantes de mostrar - veja o que podemos fazer sem os plug-ins, tornaram o javascript uma linguagem com um espectro mais amplo de aplicativos e, portanto, tornou-o popular.

shabunc
fonte
-1

Eu acho que as pessoas pensavam que o Javascript tinha que fazer algo com Java.

(Como hoje em dia tudo começa com um "i")

A estratégia de marketing / publicidade desempenha um papel significativo.

Simon
fonte
-1

Eu realmente acho que tem a ver com a sua C-como sintaxe . Segundo a Wikipedia, o Javascript apareceu em 95. Naquela época, o C estava no máximo de todos os tempos e o Java era a próxima linguagem. Eu acho que a sintaxe era realmente atraente (para a época) e sua associação de nome com a próxima grande linguagem, Java , deu uma vantagem.

Naquele momento, os programadores C se adaptaram facilmente a uma linguagem dinâmica.

Programming Language    Dec 2010    Dec 2005    Dec 1995        Dec 1985
Java                    1           1           -               -
C                       2           2           1               1

Índice Tiobe

Se eu fosse recriar o sucesso do Javascript , analisaria os problemas que afetam os programadores modernos e daria a eles uma solução com uma sintaxe familiar.

A programação paralela da IMO é o próximo grande problema que os programadores estão enfrentando. Eu acho que as linguagens funcionais realmente fazem um ótimo trabalho para superar esse obstáculo. Se eu fosse criar o próximo Javascript , criaria uma linguagem funcional com uma plataforma comum . Além disso, acho que precisaria ser flexível o suficiente para ser uma linguagem complexa, mas poderosa o suficiente para ser uma linguagem de tipo estaticamente, com uma ótima estrutura.

Embora nem todos possam concordar, nessas condições, acho que o F # pode ter muito mérito no futuro.

snmcdonald
fonte
2
@Sr. CRT: Anders Hejlsberg, criador do Turbo Pascal, teve uma grande influência no C # e na estrutura .NET. Portanto, eu não teria desconsiderado Pascal se a Netscape tivesse adotado Pascal. Ainda existem muitos desenvolvedores de Delphi que juram por ele.
snmcdonald
3
Desculpe, excluí meu comentário antes de responder - ele era considerado sarcasmo de qualquer maneira e, portanto, não é particularmente útil. Devo dizer que, embora certamente seja útil para convencer os programadores a "mergulhar na água", uma sintaxe do tipo C dificilmente é garantia de sucesso. Considere Objective-C: mais de uma década em relativa obscuridade, então a Apple compra a NeXT e torna a sua base para todos os tipos de diversão dispositivos pequenos ...
Shog9
1
@Sr. CRT. Comentário muito interessante. Definitivamente, a sintaxe não é tudo, embora eu ache importante para os programadores existentes. O Objetivo-C não parece muito parecido comigo. Talvez seja por isso que não decolou inicialmente. No entanto, pode ser a associação com a próxima tecnologia que a torna relevante, como a Java nos anos 90. Quanto à sintaxe, acho que a próxima geração de programadores está se tornando mais confortável com linguagens funcionais e dinâmicas.
snmcdonald
@Sr. CRT: Ou Python com o Google, etc ... Eu diria que a "popularidade" (generalizada) geralmente tem pouco a ver com a própria linguagem (afinal, existem muitas linguagens fantásticas que não são muito populares [por exemplo, Haskell , Erlang] e outros que são extremamente feios e extremamente populares [por exemplo, PHP])
Dean Harding
@ Dean Harding: Comentário interessante, porque eu realmente gosto de PHP. Aprecio que os nomes das funções da biblioteca tenham uma semelhança com a C-Library e, no entanto, adotem uma sintaxe semelhante ao Perl, sem ocultá-la com a pluralidade de sigilos. Ao mesmo tempo, entendo as críticas ao ver a implementação do OO no Perl e no PHP como um pensamento de última hora. O PHP tem uma sintaxe semelhante ao C e ao Perl (talvez mais linguagens), que é familiar para muitos programadores e ainda é projetada para um domínio muito popular. Eu realmente acho que é uma combinação de sintaxe e tecnologia popular.
snmcdonald
-1

O JavaScript se tornou popular por causa do AJAX e de boas ferramentas de inspeção como o Firebug. É claro que o fato de funcionar em todos os principais navegadores e ser a única maneira de fazer DHTML ajudou.

Basicamente, para tornar o idioma ainda mais feio bem-sucedido, ele deve ser capaz de fazer algo realmente útil que nenhum outro idioma pode. Além disso, você precisa fornecer ferramentas que permitam aos programadores realmente sentir que controlam qual idioma faz, o que não era o caso do javascript antes do firebug.

Kamil Szot
fonte
2
O JavaScript ganhou uma nova chance de vida com o AJAX (e provavelmente o Firebug, embora eu pense que seja secundário), mas venceu a guerra antes de começar (e quase quinze anos atrás) porque não havia concorrência em seu espaço.
Wyatt
-4

O Javascript é popular como um truque para superar as deficiências da marcação HTML para fazer com que as páginas da Web apareçam como os designers desejam que apareçam. Sem Javascript, todas as páginas da Web seriam assim - HTTP 1.1 . Quase um passo em frente ao protocolo Gopher .

ja72
fonte
2
Protocolo! = Design! = Script. Você pode criar páginas bastante bonitas sem Javascript usando HTTP 1.0.
Deceze