Most other frameworks either offer a huge API to deal with model and view synchronization, or defer to other libraries & plugins to cater for relatively simple use cases. Mithril's API is tiny but complete. The natural reaction is to assume something is missing, but as you build you realise you incredibly fast, powerful and rich applications can be built using nothing but Mithril.
Ranked in these QuestionsQuestion Ranking
Pro Small, easy to learn API
Pro Fast rendering
Mithril's loading times are very fast. This is because it's templates are compiled first and then served to the browser and because it uses a virtual DOM. The virtual DOM is a virtual tree containing all the nodes of the real DOM, every time anything changes in the virtual DOM, Mithril does not re-render the entire (real) DOM, instead it just searches and applies the differences.
Pro No need to learn another syntax to write views
Most MVC frameworks use HTML templates to render their views. They are good and useful because they are easy to read and understand. But they add more complication to an app because it's practically a new language and syntax that needs to be learned.
Pro Familiar to people used to MVC
Doesn't lock you into any complicated conventions or structures, only one function is required to create either a Controller or a View. You're free to implement your architecture exactly as you want, so you can focus on the purpose of MVC, making connections between computer data and stuff in the end user's head.
Pro Small size
Weights just 8Kb gzipped and has no dependencies. A reactive stream module can be added for one extra Kb.
Pro Great documentation
Mithril has a large and expansive documentation despite it's relatively small API. Mithril's GitHub repo has more documentation than actual source code. None of that documentation is auto-generated
Pro Allows a smooth transition from other UI frameworks
One thing you need to start using Mithril is just a DOM node. With Mithril a developer is able to introduce the library step by step.
Pro Does not force you into a predefined structure
Pro Can be used without build systems
Pro Comprehensive documentation
The Sencha documentation is comprehensive, with detailed documentation and a number of examples displaying the various widgets, tools and themes.
Pro Supports MVC and MVVM development
Pro Supports Web and Mobile deployment out of the one framework or codebase
Pro Support for easy theming of applications
Pro Visual Design tool available
The Sencha Architect product allows you to visually build your application, or rapidly prototype a system.
Pro IDE Plugins available
A number of plugins are available for some of the commonly used IDEs (eg: JetBrains, Eclipse, Visual Studio), providing templates, refactoring support, hinting and code completion/generation, as well as management of includes and other time-saving features.
Pro Charting package included
Con Small API can make it unsuitable for larger more complex projects
Mithril's small API and small number of functions while helpful for small projects and applications where speed is needed, can add another layer of complexity in larger more complex applications where a more extensive API is needed out of the box.
Con Sencha CMD is bloated and frustrating to work with
To do any meaningful development, you are stuck with CMD. There is a gulp task that will handle the JS concatenation, but there is nothing outside of CMD that can handle theming in their ecosystem.
In addition, CMD is based on Java, and is very heavy to run (600MB+ on Windows 10 to watch for changes in the application and recompile).
Con Sencha CMD (their CLI) is under documented, and out of date
Their latest release of CMD changed some configuration locations, but the documentation was not updated to reflect this. There is no reference guide on the json configuration files, other than the (unfortunate use of) comments in the generated json files.
Con They use proprietary extensions to SASS, making it incompatible with anything but their Fashion processor
On the plus side, you do not have to install ruby alongside CMD for more recent versions of ExtJS. However, their Fashion processor seems to only be available through CMD.
Con Too often breaking changes between versions. They have little concept of backwards compatibility
Compounded by the fact that there are now two "toolkits" in the same "version" of ExtJS, with certain components not existing in one vs the other.
Con The IDE tools are not sold separately - you must purchase the appropriate license pack
You get all the IDE plugins, even if you only need one. They should offer sell them individually, or continue to bundle them with a dev license pack.
Con Difficult to integrate with 3rd party software
Any third party library you wish to include has to be wrapped in some sort of component adapter. You have to do a lot of tweaking to get the build process right if you want the 3rd party lib to be bundled into your application in the right order.
Con Can be expensive
The framework is a commercial package, and the recent decision to start with a minimum of 5 users may rule out smaller developer teams or startups. Recently, they have started a program that allow essentially what are contractors to purchase single licenses, but not individual, independent developers.