First of all I have to say that as a developer I like VueJS. It looks lightweight
and neat. The examples are easy to follow, quick to start working with. Cool.
Many frameworks can be used
Previously we have seen or participated in discussion about EmberJS, React,
Angular 1.x, Angular 2/4 and now VueJS.
On the pure technical level I am quite sure that any of the frameworks can be
used to implement the SUI. And some more too.
I see a situation where there are several options that are good enough. In such
case the technical differences between the frameworks/libraries become secondary
while the context in which we are developing becomes the primary thing to consider.
Good enough to join the list of usable solutions. And that is not something
which should be downplayed as a joke. The new stuff has a potential to attract
attention of developers and take away focus and human resources from previously
used stuff that might have been heavily invested in.
And I am quite sure each time someone will come and argue that we should
rewrite this or that in the new framework.
Is using VueJS a safe investement?
VueJS is developed by a small group. Some claim that it’s actually a single guy
by most  and it really seems to be the case. That guy is very smart and
productive no doubt but what happens if he looses interest?
There seems to be a growing group of users of VueJS. However it’s hardly
comparable to Angular or React backed by Google or Facebook.
Allen wrote about VueJS being unopinionated presenting it as a positive thing.
For small teams unopinionated is good. But as the teams grow larger or more
groups are involved with developers with different skills or even the software
grows larger the advantages of opinionated approach become significant.
I can see that for SUI with 2 developers an unopinionated design makes a lot of
sense but I’d prefer to think about the whole ManageIQ ecosystem and there I
see the opposite. I believe that SUI aspires to be bigger and see involvement
from other groups as the OPS UI does. Then the advantage of an unopinionated
library will become an disadvantage.
Typescript vs ES6
Correct me if I am wrong but I understood that VueJS is more about ES6 rather
that Typescript. It might be a topic for another technical discussion but in my
opinion Typescript better fits larger projects with diverse developers, diverse
skillsets etc. due to its type checking powers and its great level of
integration in the popular tools.
Again, this might not seem a big deal if you are working on a small project with
Fitting in the ManageIQ family
I can safely imagine SUI written in VueJS. I really can’t imagine OPS UI
written in VueJS.
However, I think that the 2 project should direct in a way that converges in
some (distant) future. We should not be doing steps that diverge the 2 if
there’s a choice.
We want to share code, share developers, reuse experience and expertise.
We have decided to use Patternly for styling, basic components and general UX.
Patternly is not available for VueJS. It is available for Angular 2.
Availability of developers
VueJS probably has a low entry barrier and a nice learning curve. That is cool.
However, looking at the job market you can easily find people with Angular or React
skills willing to do Angular. That is something to consider.
In the teams contributing to the project (ManageIQ) we have Angular and
Typescript expertise already.
I have to say that I am a bit confused by what was said here. I recall very
strongly that on the “ManageIQ Quarterly UI Strategy Forum” (2 months ago?) in
the part about SUI there was said basically: “We are on Angular 2 with no
technical debt. We have decided to move forward and be on Angular 4 ASAP”.
Now I read in this article basicaly: “Rewriting SUI to Angular 2 is more work
than rewriting it to VueJS”. And really looking at the SUI codebase I see
mostly Angular 1.x. What happend?
I’d love to have a in-depth discussion about what frameworks and libraries to
use for what. But it’s very hard to seriously discuss stuff if we are starting
with incorrect premises.
I think that we need to explicitly say what is the vision.
Do you see a future where there are several interconected UIs in the ManageIQ
Do we plan to implement several connected apps that use the core API and
Or do you see SUI as a standalone application that just consumes the API?
Are we trying to create a rich platform with widgets and components mashable
with each other, easy for developer to move from one to another? Should it be
easy to use a bit from here a bit from there and create something new?
Can you evaluate how does this decision or suggestion influence such vision?
I see that you claim that the effort of moving to Angular 2 is greater than
moving to VueJS. Can you evaluate that together with time spent on
ui-components and Patternfly?
How is VueJS compatible with React and Angular 2? Can we use Angular and React
bits inside Vue? Is there a way to share state? Can we use VueJS bits inside
Angular 2/4 app? This should be an imporant part of any proof-of-concept.
I suggest that in the decision process we consider the integrations thoroughly.