O que Douglas Crockford quer dizer quando diz que o jQuery não é escalável? [fechadas]


32

Na seção de perguntas e respostas desta palestra , Douglas Crockford diz que o jQuery não é tão escalável quanto outras bibliotecas populares. O que ele quer dizer com isso, e o que há nas outras bibliotecas que as tornam mais escaláveis?


Mais discussão sobre isso no reddit JavaScript: reddit.com/r/javascript/comments/h21vr/…
MatrixFrog

Sem assistir ao vídeo inteiro, posso dizer que o uso do jQuery por si só não se adapta bem aos aplicativos de página única. O motivo é que você não possui uma estrutura de modelo-exibição-algo para organizar seu código. Porém , combine o jQuery com estruturas estruturais como Backbone.js , Knockout.js e / ou Sammy.js , e ele é muito bem dimensionado.
User16764 de

Ainda não vi a conversa, mas o meu 2c aqui é que a natureza da besta centrada em plugins, combinada com a falta de orientação e ferramentas para carregar dependências, leva a aplicativos onde você tem a sopa de plug-ins do jQuery, já que alguém da equipe precisa de alguns plugin para uma tarefa específica, o referido plugin é incluído em todo o aplicativo e, eventualmente, você acaba carregando 342 plugins jquery diferentes em todo o aplicativo. É o tipo de natureza da fera - foi projetada para facilitar as coisas de menor escala, com o custo de não ter grandes conceitos a montante.
Wyatt Barnett

4
É curioso que 3 de 4 respostas comecem com algumas variações de "Eu não vi o vídeo". Como exatamente você pode esclarecer o que o Sr. Crockford quis dizer sem assistir ao vídeo?
Corbin março

Bem, ele não falou muito. Como um dos respondentes disse, foi uma observação superficial na seção de perguntas e respostas no final. Mas você faz um bom argumento.
MatrixFrog

Respostas:


41

Se você assiste ao vídeo, ele não fala formalmente sobre o jQuery. É uma resposta rápida a uma pergunta um tanto offtopic de alguém após a apresentação .... no final da apresentação, cerca do minuto 1:29.

Ele diz muitas coisas boas sobre o jQuery. A parte sobre isso não está bem dimensionada, ele diz que não acredita que o jQuery seja dimensionado muito bem para aplicativos muito complicados (comparando-o com outras coisas como YUI). .


29
+1 para assistir ao vídeo antes de postar uma resposta. (-:
KM.

3

É difícil dizer sem assistir ao vídeo, mas acho que é porque o jQuery não oferece todos os recursos da maioria das outras bibliotecas que facilitam a programação JavaScript. O objetivo do jQuery é facilitar a manipulação do DOM , simplificando o endereçamento de elementos via seletores CSS e fornecendo uma estrutura fácil para alterar esses elementos. Ele oferece algumas outras novidades, como solicitações do Ajax , gerenciamento básico de eventos, modelagem e outras funcionalidades rudimentares, mas é isso.

Outras bibliotecas, como Prototype , MooTools , Ext JS e Dojo, fornecem muitas outras funcionalidades para criar objetos, gerenciar matrizes e coleções, manipular strings e fazer todas as outras coisas importantes que nós, como programadores, esperamos poder fazer.

Em resumo, o jQuery não possui as ferramentas que você deseja para aplicativos JavaScript em larga escala. É muito incomum encontrar sites pesados ​​com JavaScript usando jQuery, por esse motivo. Por exemplo, o Mint.com é baseado no YUI . O serviço da web MobileMe da Apple é executado no SproutCore (o site principal da Apple usa Prototype).

Pelo menos, é o que eu acho que ele quer dizer.


1
Hum. Estou bastante familiarizado com o jQuery, mas não estou muito familiarizado com o YUI ou com qualquer um dos outros frameworks JS. Então, talvez eu devesse ter perguntado, o que há em YUI, Prototype etc. que os tornam bons para a criação de aplicativos Web grandes e escaláveis? Em vez de perguntar o que jQuery não tem ...
MatrixFrog

6
"É bastante incomum encontrar sites pesados ​​de JS usando jQuery" .... enquanto estamos inventando coisas, você pode inventar algo sobre o YUI que requer menos de 10 MB de arquivos?
ken

@ken Se você estiver carregando toda a biblioteca YUI na sua página, estará fazendo errado. Há uma razão pela qual o Yahoo oferece um carregador dinâmico. E se você não concordar com minha avaliação, forneça exemplos em contrário. Mostre-nos uma aplicação em grande escala construída em jQuery.
ChiperSoft

4
Defina "grande escala" então. A pilha SE usa jQuery.
ken

O SE não é predominantemente orientado por JS, ele usa jQuery da maneira como todos usam jQuery: associação básica de eventos, solicitações simples de AJAX, alguma manipulação de DOM. Em larga escala significa aplicativos inteiros criados inteiramente em JS; sites não baseados em páginas. Estamos falando de coisas como o que eu mencionei acima (Mint.com e MobileMe), Cloud9 Editor, gMail, Mockingbird. Sites com 1 MB ou mais de código JS gravados internamente.
ChiperSoft

2

O jQuery não permite muitas reutilizações, como o MooTools, por exemplo.

É uma decisão de filosofia / design: o jQuery não é muito código para cenários de ignorar.

Quando você cria experiências JavaScript discretas (geralmente apenas aprimoramentos de página), isso funciona muito bem e requer muito pouco código. Quando você cria o Google Docs ... nem tanto. Você deseja mais conceitos de OOP que outros projetos expõem, como herança, mecanismos semelhantes a interfaces, etc.

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.