O jquery é uma biblioteca ou estrutura javascript? [fechadas]

121

Aqui, jquery é mencionado na categoria de estrutura: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

O jquery é uma biblioteca ou estrutura javascript?

rahul dagli
fonte
40
A biblioteca de uma pessoa é a estrutura de outra pessoa.
Nnnnnn
1
Isso está fora de tópico aqui porque todas as respostas são igualmente válidas: "Qual é o seu favorito ______?" . Além disso, o que importa se tivermos uma biblioteca ou uma estrutura?
EJoshuaS - Reinstate Monica

Respostas:

169

Uma biblioteca. De acordo com a página inicial e com a qual concordo.

Uma estrutura é algo que geralmente força uma certa maneira de implementar uma solução, enquanto o jQuery é apenas uma ferramenta para facilitar a implementação do que você deseja fazer.

GregL
fonte
55
+1. Uma biblioteca é algo que você chama do seu programa. Uma estrutura é algo que chama no seu programa.
Thilo
1
Para comparação entre biblioteca e estrutura, consulte "Inversão de controle" stackoverflow.com/a/3057818/2144912
cheshireoctopus
30

jQuery: a biblioteca de escrever menos, fazer mais, JavaScript .

Dunhamzzz
fonte
14
Enquanto eu concordo, um nome / slogan não prova nada. Existem milhares de "estruturas" chamadas lá fora, na verdade existem bibliotecas.
Kapex
@ Kapep, mas o caso inverso é menos comum: poucas estruturas se autodenominam "bibliotecas". Eu acho que o mais sexy prazo sons "quadro" para alguns ...
Franklin Yu
19

Com certeza, é uma biblioteca javascript. Mas sobre ser uma estrutura ou não, acho que não é uma estrutura. Dê uma olhada na definição de estrutura de software da wikipedia :

É uma coleção de bibliotecas de software que fornece uma interface de programação de aplicativos definida.

E o jQuery é apenas uma única biblioteca. Depois disso, diz:

As estruturas contêm os principais recursos de distinção que os separam das bibliotecas normais:

  1. inversão de controle - Em uma estrutura, diferentemente das bibliotecas ou dos aplicativos normais do usuário, o fluxo geral de controle do programa não é determinado pelo chamador, mas pela estrutura.

Então, acho que não é uma estrutura.

Saeed
fonte
9

De acordo com o site angularjs

  • uma biblioteca - uma coleção de funções que são úteis ao escrever aplicativos da web. Seu código está no comando e ele chama a biblioteca quando
    achar necessário. Por exemplo, jQuery.
  • estruturas - uma implementação específica de um aplicativo Web, em que seu código preenche os detalhes. A estrutura está no comando e chama seu código quando precisa de algo específico do aplicativo. Por exemplo, durandal, brasa, etc.
Harke
fonte
5

Framework e libarry não são necessariamente termos mutuamente exclusivos. O Framework geralmente é uma biblioteca ou uma coleção de bibliotecas.

A rigor, o jQuery é uma biblioteca, mas, até certo ponto, atende à definição de uma estrutura de software. Embora muitos argumentem que o jQuery não atende estritamente à definição de uma estrutura de software, o fato é que nenhuma outra estrutura JavaScript atende totalmente à definição de uma estrutura.

Uma das características definidoras de uma estrutura de software é que seu código está protegido contra modificações. Em JavaScript, isso claramente não é o caso. Quaisquer bibliotecas ou estruturas que possam ser chamadas no seu código do lado do cliente são modificáveis, embora seja contra as práticas recomendadas alterá-las. Portanto, se é permitido chamar o Bootstrap ou o AngularJS de estrutura, não há razão para que o jQuery também não possa ser chamado de estrutura. Este link contém uma explicação mais detalhada de como o jQuery atende aos critérios a serem chamados de estrutura.

Talvez a melhor explicação de por que o jQuery é mais uma estrutura do que uma biblioteca, seja o fato de que, como desenvolvedor, você pode optar por não usar nenhuma de suas funcionalidades semelhantes à estrutura. Você pode, por exemplo, misturar uma instrução jQuery simples com uma instrução JavaScript padrão na mesma linha. AngularJS e Bootstrap normalmente não permitem que você faça isso. Portanto, a resposta exata se o jQuery é uma estrutura ou não é "depende se você escolheu usá-la como estrutura ou não".

Fiodar Sazanavets
fonte
2

Eu concordo com todas as respostas aqui que o jQuery em si é realmente uma biblioteca, não uma estrutura. Conforme especificado pela resposta de Saeed, uma das principais características distintivas é a inversão de controle. No entanto, você pode usar a funcionalidade do jQuery para criar sua própria estrutura.

Exemplos: existem projetos criados sobre o jQuery que são definidos como estruturas: jQuery Mobile: uma estrutura da Web otimizada para toque , JavaScriptMVC e sammy.js para citar alguns.

Também existem outras bibliotecas criadas sobre o jQuery, como a jQuery UI

Algumas delas parecem semânticas ao definir o que é uma biblioteca versus uma estrutura, mas esses exemplos ajudam a traçar a linha para mim.

Durandal
fonte
1

Se falamos sobre Inversão de controle, da qual quase todo mundo fala sobre o tópico acima, o jQuery é um FRAMEWORK.

Ele possui COI, por exemplo, quando escrevemos a função $ (document) .ready {} ... é o contêiner que chama esse método e simplesmente colocamos nosso código dentro dos chavetas. Nós não somos o chamador deste método e, portanto, "Inversão de controle"

Dessa forma, o jQuery é um FRAMEWORK.

pinkman
fonte
1
Meh, as bibliotecas mais consideráveis ​​fornecem pelo menos algum tipo de método vagamente de retorno de chamada para algum propósito. Você pode escrever muito código jQuery sem nunca confiar ready().
Nathan Tuggy
@NathanTuggy Então, por que até a discussão detalhada sobre o Framework vs Lib fala sobre o COI? Se está lá, está lá. Por que falar sobre "confiar" ou "não confiar".
Pinkman
Porque a IoC no estilo de estrutura é caracterizada pela necessidade de usá-la. Não é a possibilidade de usá-lo, como desejado, de maneiras específicas, à la carte. Em uma estrutura, você não tem escolha: o controle é invertido.
Nathan Tuggy