ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAE
1
Feature/AttributeWhy Important?
Weight (Importance to you)
Framework
2
Fulcro
(weighted score)
Reagent
(weighted score)
Redux
(weighted score)
Angular
(weighted score)
Rum
(weighted score)
3
Uses a true functional programming langaugeFP brings a number of benefits to development, including better local reasoning, easier testability, state history, better support for server-side concurrency.1010100101000010100
4
Easy to Hire DevelopersDo you think you can find sufficient staff? While clj/cljs are easy to learn, there are fewer people that already know them.2360000
5
Eliminates sources of complexity like Controllers, library event systems (signals), etc.These artifacts bring a lot of incidental complexity to a program. Events/signals are hard to trace/debug, and lead to all sorts of head scratching.510500000
6
Reuses Patterns People Know. Is fast to get started with.Sometimes your need to get going fast trumps your need for cleaner code. Fulcro might mean you have to learn clj, cljs, AND new ways of building apps.35150000
7
One Language on Client and ServerUsing clj/cljs means that everything has one basic form: EDN. A data notation that is concise, transmittable. Also maximizes code reuse since you can write functions once and use them in both.510500000
8
LongevityWeb frameworks evolve rather rapidly, but you'd rather not have the one you're building with disappear. Most things that make it to commercial use have a decent number of people with vested interest in keeping it going, but anything edgy is more risky. Then again, support for those that chose Angular 1 a few years ago anyone?57350000
9
Eliminates Chattiness/Need for REST (Demand driven architecture)REST is a chatty API with poor data type support. Fulcro uses EDN, sends concise queries over the wire, and gives the benefits explained in GraphQL and Falcor.510500000
10
Enables Support VCR ViewerOften the most difficult thing to do when bugs happen in the field is figure out what went wrong. Fulcro can be configured to allow users to send a bug report that includes the history of their UI, which can be replayed (with timestamps) by the developer and even debugged against! 510500000
11
Includes Build Tools for minification, etc.One project file configures compilation, minification, deployment artifact creation, etc. No messing with browserify.510500000
12
Server-Side RenderingSupports rendering the UI on the server for things like SEO and fast-looking initial page loads.510500000
13
Good for Rapid frame-based Animation (e.g. graphical games)If you're writing a graphics game, then you mainly want some kind of rendering loop on a canvas.0500000
14
Code SplittingLoad parts of your program dynamically at runtime510500000
15
Bandwagon (easy sell to co-workers/management)If you have existing staff that is scared of the cutting edge, then it might be difficult to get buy-in. If a developer's heart isn't in it, then you will probably fail. 2120000
16
UI Easy to Visually Regression TestWith pure functional rendering, you can create devcards that show each possible state of a UI. Scripting screen shots can then be used to "test" if things like CSS changes break things!410400000
17
Has Good Tool SupportThings like React Tools for Chrome, devtools (cljs), IDEs, etc.67420000
18
Hot Code Reload WITH reliable state persistence.This is a fairly common feature these days, but with pure functional rendering it means you don't have to navigate back to where you were after a hot reload.710700000
19
Good Testing StoryDoes it easily support: CI, Unit testing, Integration Testing, Property-based tests with a very limited need to write UI scripts against a live browser?610600000
20
Queries from UI are Datomic Graph QueriesAllows very easy server-side querying when using a Datomic Database.01000000
21
Generates and can Use third-party thingsReact component libraries, JVM libraries, plain JS libraries, etc. Fulcro runs on the JVM and cljs has a great js interop story; however, the Fulcro model sometimes does not mix well with the model of other libs.57350000
22
23
24
Max:85088.82%11.76%0.00%0.00%11.76%
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100