XPages vs Flex: Lowering The Bar
Did I set the bar too high yesterday? Maybe the playing field isn't even level in the first place?
Ok, so let's forget the challenge aspect of the XPages v Flex idea I had and just see if we can't do a comparison of the too.
Forget what I did already in Flex and let's try and come up with a fairer comparison.
Anybody have a suggestion for a dummy web application we can build in both Flex and XPages, so we can compare both methods?
If we can decide on an app then I'll mock it up in Balsamiq and we can work from there. Or if you can mock it up then I'll walk through creating it in Flex. Either way.
All I will say is let's make it an app that is suited to Flex in the first place. Something like a Stackoverflow.com clone might not be as well suited to Flex as it would be XPages. I'm thinking of something centred around a "data grid".
If nothing comes of this I'll just drop the whole concept. I should know by now never to expect much when I try and make this a two way process.
Actually there is the IQJam (http://iqjam.net/). A stackoverflow.com clone already done with xpages :)
The bar was not set too high, in fact could be done in about an hour i think in X-Pages. Would it look the same? No, but you would have 2 or 3 combo boxes above the view, the view would have a search filter with a formula set to field = comboboxvalue(help file has a great example of this), or even a little fancier with a check box like you have...The combo boxes could be set to @Unique@dbcolumn to get the values for the categories...
Just didnt have the time or enough desire to actually do it.
My idea would be to build an application to replace the notes workspace. It would need to be able to list all database as well some additional information for each database - think environment (DEV, UAT etc), current status, support information, version number, related documentation etc.
Some information could be pulled automatically from the catalog and some custom information added. There should be the ability to add you own full colour icon or pull in the database default.
You should be able to switch between a data grid to a tiled display to a coverflow type display - think itunes. Filtering and searching is a given.
Obviously the ability to open the Notes and Web versions should be available.
This application should work regardless of available screen space and ideally would work fine in the sidebar of an 8.5 client (doesnt need to be a composite app - just a gadget).
Other functionality could include graphing usage, listing recent users. You should be able to send a link to someone - such that it opens the app to the correct page.
Mark Hughes. What you're alluding to doesn't sound much like what I demoed yesterday really. The whole combo box above the view thing is what I was trying to get away from in the first place.
Like most things in Notes I don't doubt it can be done one way or another. Just how elegant will the end result be? At least with Flex it's hard to make it looking anything but impressive. I've actually had "wows" from customers when they've seen Flex apps! Nothing in Xpages I've seen so far has made me think much other than "and?".
I sense this is getting sided though and I don't want it to, so I'm stopping there.
Mark H, I struggle to do much with Xpages ( or any other system ) in an hour !
sorry i did not realize you were talking about frame for frame type stuff, i thought you just meant functionality!
Yes the UI stuff out of the box is much better on flex! It frustrates me to try to make some things look nice. That is the problem i have always had with Lotus tech, but this goes further because there are at least four major web browsers now that render things quite differently, but with flash they are always the same.
Sean, i have spent allot of time in X-pages over the last year, and quite a while in 8.5.1. Remember i said in about an hour because the design elements in the demo database were already created, but all the UI funtions he was talking about would take considerably longer..I was thinking about funtionality not ui
Can't work out which side you're on now Mark ;-)
Reproducing functionality is one thing and yes that was part of the ill-fated challenge, but it was just as much about having XPages provide an alternate slant on the age-old Notes-to-Web paradigms we've always used.
Putting the functionality in place is one thing. Doing it a way uses find intuitive is another.
I've about given up on this whole concept now anyway. Just going to have to dive in and work out XPages for myself. It's just that whenever I try I can't get past the ugliness of the IDE, lack of coding type-aheads, element placement on screen, mess of IDs in the HTML etc etc. I'm finding it hard to feel the love. Even though I truly want to.
I think the issue with trying to compare the two, as you've noticed Jake, is that Flex is best at some things while XPages is better at others. If we have to choose an app that is grid-based in order to do the comparison, then Flex *should* win every time because Flex has really pretty grid UI stuff built in.
If somebody picked an app based on user requirements only, then two people designed UIs for it, where one was in Flex and the other generated by XPages, we might wind up with very different UIs - but both can be very appealing to the customer.
Rob. In this case I was hoping we'd design the UI without knowledge of what the target development environments would be. It should be a case of "What should it look like" rather than "What would it have to look like if I were using product X".
Jake. I get that. My point is that I would choose a different tool for certain types of problems, and I include UI design in that decision. I don't build every app in Domino, and I don't build every front end using jQuery (insert your favorite cool tools as appropriate).
Good to hear Rob. There are far too many people who use the same tool for every job. I really need to find out what jobs XPages fits though. Maybe I'll revisit this whole topic once I have.
The comparison seems odd to me right from the start. Why not just ask "can I build this faster using .NET or Safari?" It's an apples-to-oranges comparison.
What you might want to ask is: can I build this faster using Flex or Dojo? Those are at least comparable toolsets. (The answer would be Flex for sure.)
There's no reason you couldn't use Xpages to serve up a Flex interface. No reason at all.
i have the database, did everything but move columns and i can not do a filter and group by at the same time, but others might find it interesting, where should i send it? and do you have an 8.5.1 cd8 server?
This server is only 8.5fp1 AFAIK mark. Can you mail me a screenshot, maybe I could post that at least, to give other an idea?
Nathan. I agree, in part. I started yesterday's post by saying I've been holding off even starting this topic as I'm not sure it's worth debate. That said, is XPages not Dojo then? If I say XPages then I mean Dojo+JSF+SSJS etc. If I create an Xpage then I have a selection of Dojo widgets to select from. That and the fact XPages is tied to Dojo kind of suggests it is. Which makes it a fair comparison, no?
Xpages provides Dojo automatically as a default client widget framework. You could use another one if you wanted. Yes, it would be more work to set that up. But it's like any other toolkit: you bear the framework construction once.
I am by no stretch of the imagination a Flex expert. But if flex is ultimately pulling XML datasets from the Domino server, then you could pull those XML datasets from an .xsp URL as well as a ?ReadViewEntries or ?OpenAgent URL.
If you really wanted to go all out, you could write your own render kit for the Domino server that output Flex. But that would be a big investment.
ok where do i send them, cant find your email address
Contact link at the bottom Mark.
Ultimately, which one is faster or better to develop an application really depends on the developer' skills with the development tool and how many tricks and tools they have developed to use in their development process. The advantages of Flex is that it is data agnostic and truly separates the UI from the data. This allows you to bring data from other sources besides Domino.
a link to my video
http://www.youtube.com/watch?v=_w7c87RO_O4
Mark Hughes - Thats cool! How much time did it take to develop?
What do you think Jake?
With regard to the "XPages = dojo + xsp + ssjs", there's a fairly lengthy set of Dojo widgets that have NOT been implemented as XPages controls yet. I'm sure more of them will come with each release, but notably missing for now is the Grid widget which would put things a little closer in comparing a Flex opportunity to XPages.
Tied in with that is the big limiting factor (for now)of data sources in XPages restricted to Domino Docs and Views.
When those 2 hurdles are cleared, then I think XPages will have a chance to be really world-class (especially with free Designer clients).
For now, it's a matter of maturity. XPages is the new kid on the block that can do some really neat things, but will mature into something better.
about an hour maybe a little more, though i did not take the time to calculate the number of docs in the categories, could be done via ssjs, i am just being lazy
The thing i dont think can be done is filter a the view and keep the categories, at least i cant figure that out
And the filter results dont stay in ascending order, there has to be a way to do that, i just dont know what it is
Something else I'm looking forward to in an 8.5.2+ world will be the ability to use XPage apis to create your own controls (not custom controls, but base controls). That will stimulate both the developer tools market, and expand the ability to take something like an Accordion widget, or an EXT library and make it a control that can be dropped into an XPage.
I haven't touched xpages at all yet. But I don't see people saying, "wow that was easy and great and easy to customize". Yeah some people are doing cool things with them but what level of effort was expended to get there? And yeah there are some cool ways to pull in data from multiple Notes views (from what I've seen at LS) but it just seems clunky to implement. Maybe it's not but that's what it seems to me.
Flex has it's shortcomings but for putting together a really pretty output fast and knowing that you can put Domino in the backend or something else is really nice. The IDE is beautiful to work in. It seems polished. Does xpages?
@Jim - 8.5's IDE was a bit painful, it was obvious it was the first iteration of DDE.
But in 8.5.1 (disclaimer: hasn't shipped, features may change, etc.) due out next week, things are defintiely polished.
I also want to emphasize a big, BIG capability of XPages: SSJS integration. XPages works well client-side by using javascript, handling programmatic visibility, etc. But Xpages also makes it *trivial* to have actions perform round-trip SSJS back to the server, such as a button that performs a partial update on the page after some SSJS has run based on a UI selection.
@Lance Spellman
Have I read the word "free" (as in beer) before Designer client?
Jake,
I think by now there is little sense in doing an actual comparison by building an app in two different technologies. We already know the outcome:
- functionality-wise, there will not be much difference
- UI-wise, Flex will win by far
As I mentioned yesterday, you are comparing the capabilities of HTML + a JS framework with Flex UI technology. We all know Flex is richer in UI technology and also faster to develop in. It is the entire point of RIA technology.
Nevertheless, that does not mean you should give up on comparing technologies, the discussions of the last two days have a lot of value, perhaps even more than an actual development exercise.
Nice work Mark! I'm genuinely impressed you got it that far in an hour.
As I said in my email to you earlier though, I can't help thinking it's missing that little "je ne sais quoi". A bit of sex appeal.
Now, I know you did it in an hour, so we can't expect too much of it. BUT. In about an hour, if I had the docs/views and XML in place, I could have knocked up something pretty close to what I demoed in Flex. This for me is the deciding factor. Flex looks amazing by default. Elements appear exactly where you want them too without messing with CSS. As I said before you'd have to try pretty hard to make a Flex app look anything other than jaw-droppingly cool.
I know it's not all about looks, but then, sometimes it is. It's all about impressing customers at the end of the day.
Nice work though Mark! Thanks for being the only person willing to give it a shot.
As they say: "Nice try, but no cigar" ;o)
Jake
@ Jake, Well Let me apply my Theme! :)
New Picture with CSS and theme
http://s580.photobucket.com/albums/ss245/mth96a/?action=view¤t=newwithcss.jpg
@Henning, yup. Lance just violated his NDA.
Oh, and it works great on my iphone as well!
@Mark - I think your link broke... here's an updated one.
Lookin' good - if you copied the fonts from Flex it could be made to look very similar, pretty easily.
http://s580.photobucket.com/albums/ss245/mth96a/?action=view¤t=newwithcss.jpg
I think comparing a flash based application to an HTML/CSS/Javascript application is not fare. Flex is a pure client technology which can leverage many of the capabilities of Flash, while xPages is a combination of serverside + client side technologies which is limited to what can be achieved using CSS and JavaScript. Comparing Flex to domino is just like comparing Flex with J2EE or .Net applications. I think a real comparison is valid if you compare Flex with Microsoft Silverlight or anything similar.
http://www.microsoft.com/Silverlight/default.aspx
Ok, first of all, this direct link to Mark's pic just isn't working. Browse here, then click on the "with css" picture. Then click "zoom in" after it loads.
http://s580.photobucket.com/albums/ss245/mth96a/
And on to my next line of thought...
Another thing to consider (since I can't seem to stay away from this discussion) is further integration/components from the development going on behind the scenes -- on both fronts.
We've talked about how a more appropriate comparison might be Dojo vs. Flex, since those are the widgety-rendering frameworks running things. Dojo *does* have a grid control, nearly identical to Flex's slickness. The only problem is it's currently (and has always been) part of DojoX, the "experimental widgets" in the Dojo collection.
There are obviously open-source Dojo developers working on the grid control. And if I recall, IBM even has a few internal staffers contributing code to it to make sure that what they need gets done. Eventually the Dojo Grid will get incorporated into the standard Dojo install, as all the useful and debugged widgets do.
From there it becomes straightforward for IBM to add it into XPages, and *boom* -- let me say that again -- *BOOM* it's a *native* control.
I can all but guarantee you that it will at that point be able to hook into NSF data FAR better than Flex could ever hope for. It will auto-handle all the quirks of the major browser versions without you needing to worry about what version of Flash (if any) is installed.
At that point it should be absolutely kicking Flex's butt with respect to RAD on NSF.
Also keep in mind that IBM launched an effort to develop a new, modern and slick CSS theme for use with Dojo/XPages awhile back. I don't remember the name now, but I'd say it looks as "sexy" as Flex's stock UI. I can't recall if it's shipping in 8.5.1 or not.
Eventually HTML 5 will proliferate enough to add native browser support for a lot of this fancy stuff anyway, at which point IBM may update the XPages render kit to use the new HTML5 <datagrid> element instead. The possibilities are virtually endless.
Here's an interesting slideshow comparing Flex with HTML5:
http://www.slideshare.net/wuzziwug/flex-vs-html5-for-rias-presentation
A roadmap for XPages would be nice, but I think things are a bit premature for that. I'd also be curious to know who has more developers on their web delivery frameworks - IBM/Lotus or Adobe. And keep in mind that Dojo is IBM's chosen framework for the *entire* Lotus portfolio, not just XPages.
My current opinion is: if you need to deliver it NOW, and can't spare a bit of extra time to learn XPages, go with Flex on top of the Domino dev you've known for years. But for a more mid/long-term choice, especially if your app will see upgrades over time, my money's on XPages to surpass Flex with regards to NSF hooks, broad-platform deliverability, and accessibility.
Is it just me who thinks that an x-page with a nice theme like oneUI applied looks much more glossy and like a finished product than anything I've seen in flex yet?
Nick. You gotta be kidding?
Show me what you've seen in XPage that I haven't.
The problem I have with Flex is that it is not Google friendly. XPages have search engine issues too but Adobe has been ignoring this for such a long time that I don't think they will ever "fix" it. Finally you often end up with Flex/Flash for the Admin interface and some charting and do the rest with classic web tools. Or you do it like LotusKnows with a Flash version and a classic HTML version (ok this is not Flex but just Flash stuff). Does not sound very effective to me. LazloSystems once had the idea building identical components for Flash and Ajax / HTML but I distrust companies that don't have a business model and just spend venture capital. At the end there are many matured platforms and you can build your solution with many tools. Flex and CouchDb should be a good combination too.
@Nathan Thank you.
This was never meant to be about the obvious shortcomings of either technology.
If you want Google to index your apps then don't use Flex. Flex has it's shortcoming, naturally, and doesn't suit lots of scenarios.
Of all the things I've used it on so far not one has been on the public web and/or needed on a mobile device. Otherwise I'd have looked for an alternate solution.
Jake
If somebody shows me a good solution for large datasets without loading large XML files (think easy to do paging), then I'm sold on Flex.
@Nick - Yeah, I think it's just you. :-)
The new blue-oriented theme (I wish I could remember the name) looks as good as Flex. But the stock Lotus "OneUI" and Dojo "Tundra" themes that are the implied defaults for XPages look a bit dated compared with Flex.
This was an interesting exercise. I am impressed! Now I think we should take it to the next level and pit Xpages, Flex, Silverlight, JavaFX, Curl and HTML5 together. The only rule is Domino remains the datastore. Let's see who can deliver the coolest interface. I have a shrink-wrapped FlexBuilder 3 software package waiting for winning.