15

Recently I had to develop several web applications. I did extensive research regarding JavaScript UI Libraries but I haven't been able to find one I was really satisfied with. What I mean with UI libraries is a library which provides user-controls such as buttons, combo boxes, grids, charts, layout, ...

What I found so far and why I didn't like it a 100%

  • jQuery UI has too few controls. (I know there are a lot of plugins and you can nearly find everything but it is not the same as a complete library made and tested by one team or group)
  • Dijit (Dojo). I really like this one but when I try to use it in my websites I'm always having troubles. They don't seem to be as easy to use as other libs.
  • YUI version 2 had a lot of controls, but the "new" version 3 still misses many controls. (or I am just too dumb to find them) I don't want to work with both versions at the same time or use an old version which will be replaced soon.
  • DHTMLX has many controls and they work really well, but the controls themselves lack many features. (for example the HTMLEditor does not even support to change the text color out of the box or I could not find an easy way to expand/collapse tree nodes with some sort of animation)

If anybody knows of a good library which I have not tried yet or knows how I could use one of the above libraries "better" I would be really happy. I am wondering why at this point (where web-apps are getting so important) I still can't find a complete UI framework which would provide me with controls which you can find in other environments since years (or even decades) - for example Java, .net or Delphi to name just a few.

edit:

I know there won't be a library with every control I ever need, but what I expect from such a library is at least: consistent skins, api, documentation, validation and the most important controls you'd need in business apps/websites (datepicker, button, editor with support for numerical data, grid/tree, layout controls, HTML editor) AND the possibility to create your own controls. good to have: charts or reporting

Preli
  • 2,953
  • 10
  • 37
  • 50
  • The canonical answer to this question here on SO is "[Alternatives to ExtJS](http://stackoverflow.com/questions/200284/what-are-alternatives-to-extjs/2144878#2144878)". – Dan Dascalescu Aug 11 '16 at 18:17

6 Answers6

9

Ext JS provides the best GUI widgets by far. I've used it for a large intranet project, and have been completely satisfied. It's available under GPLv3 and a commercial license.

Be extremely careful when evaluating open-source frameworks. They tend to religiously promote the quality of their projects, but I've found that poor documentation and buggy code are pervasive. Dojo claims heavy industry involvement, but their documentation is poor, and it's not hard to find bugs on their website (the dijit example pages have been broken for months at a time...).

Josh Johnson
  • 8,832
  • 4
  • 25
  • 31
  • 1
    ext js looks really good - don't know why I haven't found it earlier. And regarding Dojo I noticed kind of the same thing but didn't want to upset anybody who likes it. So I just wrote that I am having troubles with it - sounded more diplomatic ;) – Preli Aug 07 '11 at 18:41
  • When we chose to use Ext JS for our intranet project, it was a little risky since another department had been using Dojo for some time (lots of in-house expertise). Several months later...no regrets. – Josh Johnson Aug 07 '11 at 18:53
  • 1
    Watch out for the licensing. It's starts off "not OEM" and then after you are using it, becomes "need to pay the OEM royalty." – David Thielen Sep 05 '13 at 13:03
  • @JoshuaJohnson: Ext JS is not free. – kta Jan 25 '14 at 05:55
  • Even though Ext is very powerful, it doesn't work well for mobile websites. For that, Sencha wants you to build an entirely different website, using [Sencha Touch](http://www.sencha.com/products/touch/demos/). --- @kta of course it is free. It has a GPL open source version (both Ext and Touch). – Domi Apr 17 '14 at 08:45
7

Your comment about JQueryUI is very telling.

As you say, JQueryUI does provide relatively few controls, but has a lot of plugins available. But you're looking for a single library with everything you want built-in.

This is a tough ask, because we don't actually know what widgets you really want, which ones you like the sound of but probably wouldn't use, or which ones you'd use but only if they worked exactly the way you want.

It's virtually impossible to predict all the widgets that someone may want, or how they want them to work. And even if a given library does get it exactly right, when your needs change slightly in the wrong direction, suddenly the library you chose could turn out to be a poor choice rather than the right one.

This is why flexibility and maintainability are far more important than getting an exact feature match. Once you go beyond the basic set of widgets, most others are built on top of the simple ones anyway, but everyone has their own ideas about how they should be implemented, and new UI concepts are being thought up every day. This is why the plug-in model works so well, and why I feel you're making a mistake in discounting JQueryUI because most of the widgets are available as plug-in. In fact, I would say that this model is likely to be the best solution for you.

There are a number of other libraries available which you haven't mentioned. Mootools and Prototype are probably the best well known, but there are others too. Rather than list them all, I'll point you to this page on Wikipedia, which lists them all in a comparative table: http://en.wikipedia.org/wiki/Comparison_of_JavaScript_frameworks

I hope you find that helpful. But I suspect you won't find any library in that list that comes with every widget you'd ever want, all in one bundle. They all rely on plug-ins, because the library developers are generally focusing on making a framework for widgets, rather the widgets themselves.

Spudley
  • 166,037
  • 39
  • 233
  • 307
  • 1
    I already thought I would get at least one such answer. And of course you are right. There are many reasons for having such a modular framework - BUT also many reasons against it. 1) you have to find the right plugin 2) download it 3) check the quality 4) see if it is up-to-date and working with your version of jQuery 5) get used to the api because different plugins use different approaches 6) make sure it supports your browser 7) different release cycles ... to name just a few (I only have 100 characters left). My personal preference -> more controls so I can solve concrete problems faster. – Preli Aug 07 '11 at 19:33
  • Well in that case, I don't think you're going to find what you're looking for. You cite Java, .Net and Delphi, but they're all very large desktop-based frameworks; that kind of scale is out of scope for browser-based frameworks due to the limitations of the medium. And in any case, all those examples do actually have third-party widgets which you can download, because even they can't provide everything that you could ever need. If your boss sees a funky new widget and your library doesn't support it, what are you going to do? Wait for your library to release a patch or find a plug-in? – Spudley Aug 07 '11 at 19:44
  • Don't get me wrong: I LOVE jQuery (and jQuery UI) and I am using it all the time. I am just looking for a user controls library which offers most of the controls I need every day. For funky new widgets I will still rely on third-party widgets - most of the time the best ones are jQuery plugins. – Preli Aug 07 '11 at 20:20
  • @Spudley There is an assumption in your comment that any framework is mutually exclusive of jQuery. ExtJS will quite happily co-exist side by side with jQuery and if a widget that isn't provided by ExtJS is required and a jQuery one exists it can be easily used. After all it is all just HTML and JavaScript. – bstick12 Aug 08 '11 at 12:23
  • @bstick12 - indeed, you're right; libraries can co-exist. My assumption wasn't that they couldn't do this; it was that the author didn't want it. His comments about plugins using different approaches implies that he wants a unified programming interface for all his widgets, which really means he wants a single library. – Spudley Aug 08 '11 at 12:34
  • 1
    A modular framework architecture and an extensive collection of first-party widgets are orthogonal issues. Most JS frameworks have the modular architecture but not the extensive collection of widgets (e.g. Jquery UI). Ext JS has both. – Josh Johnson Aug 08 '11 at 17:50
  • Could you imagine Microsoft releasing WPF without an extensive library of controls, or SWT without the full set of widgets... This would be a nightmare to use to build a rich user interface, and this is the situation on the web today. The existance any framework no matter how good it is doesn't make up for the lack of a fully-feature set of standard widgets. – Samuel Rossille Dec 24 '12 at 14:25
  • Panel, Splitter, Label, Button, TextBox, Image, Menu, Toolbar, StatusBar, ListView, TreeView, GridView, DropDown, ListBox, PageControl, TabStrip, DateTimePicker, Header. That's the Windows common controls library. That covers 100% of all native applications (rounded to the nearest %) – Ian Boyd May 18 '16 at 00:20
5

Check out PrimeUI, provides various widgets and built with jQuery UI APIs. Licensed under Apache V2. http://www.primefaces.org/primeui/

Cagatay Civici
  • 6,406
  • 1
  • 29
  • 34
  • Interesting, hadn't heard of PrimeUI. Would you like to add it to the [Alternatives to ExtJS](http://stackoverflow.com/questions/200284/what-are-alternatives-to-extjs/2144878#2144878) wiki answer? – Dan Dascalescu Aug 11 '16 at 18:18
3

Recently Telerik Kendo UI which is built on top of jQuery (no impedence mismatch with other frameworks) has Open sourced (Apache 2.0 License) their Library of Widgets.

I strongly recommend this..

Telerik Kendo UI is not Open Source

Download the Kendo UI - Open Source edition

Krishna Vedula
  • 1,643
  • 1
  • 27
  • 31
  • I'm using KendoUI for 2 years now and I'm very happy with my choice. It has a robust structure and easy to use API. I've used other libraries like jQueryUI and WimoUI (based on jQueryUI). but they are not comparable with KendoUI. I also looked into ExtJS. It looks great but a little hard to use. – Mahmood Dehghan Mar 02 '15 at 18:57
2

If you don't mind the licencing you should have a look at http://www.sencha.com/ the ExtJS library.

A demo library available at http://www.sencha.com/products/extjs/examples/

bstick12
  • 1,699
  • 12
  • 18
1

SAPUI5 web controls listing with example source code:

Yordan Georgiev
  • 5,114
  • 1
  • 56
  • 53