A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

David Marko  21 February 2012 11:41:49
I just have to add a few notes to following article: "Delving into XPages: Wins, Losses, and abject FAILs -- What it has been like to start transforming an existing application"
http://www.thenorth.com/apblog4.nsf/0/03FF1347FDC242DB852579AA0062EA57

... you can read it first and see my notes below ...

a)  xPages are based on wrong and old fashion technology.

JSF is not very well opinioned in community for its robustness in negative meaning. Moreover xPages comes with JSF 1.x implementation where there is JSF 2.x for many years with e.g. with annotation support. It's strange for me that IBM released the new product that is de-facto old from starting date :-)

b) the documentation is horrible ...

... if we talk about commercial product. You are usually pointed to some blog posts from community :-( We also have bought  Mastering  xPages here but I think IBM should give this book (in PDF) for free as official documentation for its product to enlarge community and to support product adoption.  

I'm working with two other web frameworks ... just compare their documentation, which is for free!!!!  
http://web2py.com/book
http://www.playframework.org/documentation/1.2.4/home
https://docs.djangoproject.com/en/1.3/

Also the help(in forums) is not as it should be. I think the xPages core developers should read xPages forum every day(there are actually a few posts per day so its easy) and respond for many questions that users can't answer. See my list of questions on xPages forum.
http://www-10.lotus.com/ldd/xpagesforum.nsf/xpTarget.xsp?tagValue=David+Marko484
Many questions are without real answers because community do not know and xPages core developers don not read this forum???

Again compare this with e.g. Play! (and certainly with many others web frameworks) . Play! core developers are actively responding in forum by answering internal or difficult  questions ... Why IBM cant do it for community??

c) I really don’t like the notes JAVA API parameters

Just rather a small complain ... but why do they decided to use generic parameters names which is completely useless.
e.g. view.getAllDocumentsBykey(Vector arg0, boolean arg1)
... why arg0 and arg1, why not a real names that would help you to understand, what does it mean ... Also eclipse JAVA editor can show you help from api docs , but there is nothing to show ... look at Play!Framework API how it should be done ... and it’s done by small private company comparing to big IBM.

d) development in Designer is slow, really slow

yes if you have a hello world demo, its fast. But if you have an application with 40 controls and 50 xPages. Its terribly slow to update something. I can overcome this by installing local Domino server that speeds things slightly. Just one example ... why Domino reloads entire app when I update client JavaScript library. It can't be really disabled ??

e) there is a real mess on xPage

We have a quite big app we did last year for one of the our customers. To manage a huge form in xPages it is a real mess. Modern web frameworks do MVC separation to not to mix HTML, with real code. What we have here? xPages is de-facto xml code, that encapsulate view part of app(html) and code in many cases all in one. I can’t really find a proper way how to allow our HTML designer to handle page layout without breaking our code on page(we are putting all codes in java managed beans but you still have to put some code on page though) ... its like 10 years ago. (look at the Grails or Rails or Play! framework approach)

f) Lotus Notes to xPages migration

Its like migration between completely foreign technologies only with the same database. We are currently rewriting our Lotus Script libraries(and we have many, really many :-) ) into JAVA. Its a real pain to do it without bugs and with 1:1 functionality. Also there are some not well thought caveats like that JAVA code you write for xPages cannot be used easily in JAVA agents. We have many Lotus Script libraries which code we use on forms and in agents (some general utilities). You can’t do it ... see my post here: http://www-10.lotus.com/ldd/xpagesforum.nsf/topicThread.xsp?documentId=600F1DD4D10BBC35852579990044A749&action=openDocument    

g) old JSF technology

=no support for modern technologies like commet, websockets ...

h) PLEASE, PLEASE, PLEASE I beg you IBM ...

... do something good for NSF database. They are great, really great ... first NO-SQL database on market since 80' and you are loosing market comparing to progress that databases like Couchbase, MongoDB etc. do last years. It really smells to me that IBM lost their source codes for LN core or lost all former developers so there is nobody who understands the old code to make a changes. Most changes are just add-ons to LN. But core NSF features(yes there are some small change over last years, but really small) remains unchanged for 10-12 years (I'm developing on Notes since version 3.0)
I don’t believe IBM CAN'T speed up database indexed or speed up full text for example. Why not to use Apache Lucene full text to speed up everything. Apache Lucene is such fast that we can use it even instead of standard views to retrieve sorted data from database. Don't tell us it can’t be done when http://www.fewclix.com/ did it for mail.
Comments

1Patrick Kwinten  21.02.2012 12:59:02  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

NSF improvements are high on the wishlist, indeed.

2Lars Berntrop-Bos  21.02.2012 13:45:44  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

re: c) Java API:

I cannot reproduce. Both in the Designer Help db and the online infocenter, the parameters are documented like this:

Syntax

public DocumentCollection getAllDocumentsByKey(java.util.Vector keys)

throws NotesException

public DocumentCollection getAllDocumentsByKey(Object key)

throws NotesException

public DocumentCollection getAllDocumentsByKey(java.util.Vector keys, boolean exact)

throws NotesException

public DocumentCollection getAllDocumentsByKey(Object key, boolean exact)

throws NotesException

no confusion there. Where do you get these generic parameters from?

3Martin Jinoch  21.02.2012 14:08:45  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

I agree.

Small correction: JSF under XPages is based on 1.1 but with some parts of 2.0 backported to it.

ad slow Designer) while developing complex apps I suggest you to never use db on server, always local replica. And turn off Build automatically.

4David Marko  21.02.2012 18:02:20  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

@ Martin Jinoch

I develop on local with local sever as I need ACL working properly. Regarding disabling 'Build automatically' a know it a I tried both mode but can't say whats better at the end :-(

5Michael Bourak  21.02.2012 18:04:05  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

I won't comment on all aspects but let me add some things :

- DDE Speed : when you are developing a Play!Framework app, you basically are in a text editor.Same with the enormous majority of web frameworks. You can't then compare the speed of a text editor with a designer tool. And in DDE you have the choice to be in "code" or "design" view...

- DDE Speed 3 : with any other web framework and with JEE in general, you have your code locally. So yes, replicate locally or have a domino server locally...it's much faster

- JSF Choice : JSF was certainly the best fit for Notes "Forms" driven app. And although XPages is at JSF 1.1, the engine has been greatly optimized and the majority of 2.0 features are in it and even some more...

- Support : yes, Play!Framework authors anwser a lot in forums...because it'a very young product and the owner is still one of it's developer. But what happens in 5 years ? See what happend with Struts which was quite hype 5 years ago and now totally outdated...and if you chose it you basically are encouraged to migrate ...

- Code Reuse : If you designed your LS and Java libraries in a OO way, there is a lot of chance you can reuse them. Of course it's require some efforts, but it can be done. I'm actually doing in in one of our quite big app and once the bases have been set, I found it quite productive to reuse LS libraries.

IBM could do better, for sure...but if you see things with a positive angle, you have a damn good framework for building web app with XPages.

6David Marko  21.02.2012 19:03:24  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

@Michael Bourak - DDE Speed : when you are developing a Play!Framework app, you basically are in a text editor.Same with the enormous majority of web frameworks. You can't then compare the speed of a text editor with a designer tool. And in DDE you have the choice to be in "code" or "design" view...

David Marko: In Play!( but in anothers as well) you also use IDE like Eclipse, Netbeans ... so you are on par. Yes DDE do more but ... if I have more advanced xPage DDE cant display it properly, its rather mess so I'm mostly using source tab. I would rather have more HTML friendly template engine and could use Adobe Dreamweaver. Even common Eclipse with WEB Tools have decent HTML editor with support fot HTML tags, their attributes ... there is no such in DDE.

@Michael Bourak - Support : yes, Play!Framework authors anwser a lot in forums...because it'a very young product and the owner is still one of it's developer. But what happens in 5 years ? See what happend with Struts which was quite hype 5 years ago and now totally outdated...and if you chose it you basically are encouraged to migrate ...

David Marko - hmm, hmm, I miss the point here. xPages are young as well, isn't it? I have just opposite filling. Simply compare the forums ... on xPages there are 5 messages per day .... a few times more on Play! (as example) xPages is completely unknown technology in the real IT world. Vendor should promote the pruduct in some huge way, in my oppinion.

@Michael Bourak - Code Reuse : If you designed your LS and Java libraries in a OO way, there is a lot of chance you can reuse them. Of course it's require some efforts, but it can be done. I'm actually doing in in one of our quite big app and once the bases have been set, I found it quite productive to reuse LS libraries.

David Marko: How do you resuse LS libraries in xPages besides calling LS Agent, which is very restrictive for most things?

@Michael Bourak - IBM could do better, for sure...but if you see things with a positive angle, you have a damn good framework for building web app with XPage

David Marko - There are not the complains only. See all our blog posts over the years. Most are positive :-) I just have a real worries about how the product with no marketing in our country can survive competition. In classic Notes app, there was/is almost no competition, but in web app world we have all Rails, Grails, Django, ASP, PHP environments which last for many years, are well known and therefore with better adoption at customers.

7Dan O’Connor  21.02.2012 22:42:03  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

For item (c) this is not really a Notes Java API issue.. I have seen this across the board when dealing with code completion in Eclipse. I am not sure if there is a setting in Eclipse to make it use the parameter names defined in the code or not.

For instance when I create an SWT Key adapter I get the following method auto created:

public void keyPressed(KeyEvent arg0) {}

it should be

public void keyPressed(KeyEvent event) {}

This is an Eclipse issue not a notes api one.

8Nathan T. Freeman  21.02.2012 23:16:04  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

@7 Dan, it's a compiler setting.

{ Link }

9Simon O’Doherty  22.02.2012 9:05:24  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

Hi,

Some clarifications.

> b) the documentation is horrible ...

The documentation is quite extensive and the developers took a lot of time doing videos for example on the Appdev Wiki for XPages. You have OpenNTF and numerous other sites that XPages dev + community contribute to.

Per Henrick did a nice list recently.

{ Link }

Alternatively you can check OpenNTF if you want to dismiss a blog post.

> Also the help(in forums) is not as it should be. I think the xPages core developers should read xPages forum every day(

They do, and sometimes there can be confusion as to what the forums are actually for. They are community forums, they are not Developers to respond to people forums.

While developers do read them (and support), we are not obliged to respond to posts there. As it is a community forum. Before there is any misunderstanding, what I mean is if someone posts "X is not working!" vs someone opening a PMR on the same issue, the PMR takes priority. This is the same with the ND forums as well.

Stuff gets reviewed and SPR'ed via those forums but as a conduit to talk to directly to development it would not be the best place.

I think you have an actual coding question vs a fault in the product, then stackoverflow would be a better place to post the questions. Although I do see a large number of responses to the posts you linked.

> a) xPages are based on wrong and old fashion technology.

One of your forum posts you link to a post where it explains why this is not totally correct.

10logan  22.02.2012 11:03:46  A few notes to ’Delving into XPages: Wins, Losses, and abject FAILs ....’ article

I can add few of my own to that:

i) The source building mechanism is buggy. Its a real pain to develop application with few controls written in java and another few dozens xpages and custom controls. It really cannot handle the complexity. And that is more there is no logs at all! I want to know what the build has done so I can find the reason why some custom control is still rendering in its old version. Right know the only option is to hit clean few times and pray that it will work.

j) It the IBM cannot deliver proper and organized documentation then maybe at least it should release the source code of the xpages engine. Probably lwpd.xsp.core.jar would be enough. This would allow us at least to understand what is going on under the hood and describe mechanics with certainty that we lack right now (I dont see many people in the community who understand anything connected with inner construction of this framework). What is IBM afraid of to release this few libraries? That someone will still those? They are worth s**t outside of yellow bubble!

TOPlist