1

I'm looking at the wiki on ExtJS, the wiki on List of rich Internet application frameworks, and the wiki on Comparison of web application frameworks. I'm confused. The first line of the ExtJS wiki page says:

Ext JS is a pure JavaScript application framework for building interactive web applications[1] using techniques such as Ajax, DHTML and DOM scripting.

So I assume it's a web app framework. But in the right hand side summary box it says:

Type: JavaScript library

Is ExtJS a web app framework or a Javascript library or both? (Can it be both?)

ExtJS is also missing from the web app framework lists...



Thanks for reading

Meredith
  • 115
  • 7

2 Answers2

4

A framework keeps control of the application flow and makes calls to your code. A library (vs a framework) is something your code calls when needed and your code is in control of the flow.

What makes this interesting is that anything that exposes an API is a library in the broader sense. This essentially makes everything a library.

This puts ExtJS in the framework camp. But ExtJS is also a library, since it is an api.

Martin Wickman
  • 13,305
  • 3
  • 31
  • 66
0

I just came across this post on Inversion of Control. It says:

Inversion of Control is a key part of what makes a framework different to a library. A library is essentially a set of functions that you can call, these days usually organized into classes. Each call does some work and returns control to the client.

A framework embodies some abstract design, with more behavior built in. In order to use it you need to insert your behavior into various places in the framework either by subclassing or by plugging in your own classes. The framework's code then calls your code at these points.

I think this is the largest difference between jQuery and ExtJS; jQuery libraries are simply groups of functions that don't impose any design pattern on the user, while ExtJS 4 by design is almost impossible to code in for long without adopting MVC organization. Attempting to extensively use ExtJS like one huge jQuery library can easily lead to spaghetti code.

Meredith
  • 115
  • 7