XPages developers are some kind of "split personalities"

Monday, March 31, 2014 at 11:19 PM UTC

Marky Roden posted a great article about his points of view regarding the impact of being a XPages developer and how (and if) to learn a certain language, here Javascript vs. Java. See his post (and the discussion going on) here: http://xomino.com/2014/03/26/why-learning-javascript-is-more-critical-to-xpage-developers-than-java/

Today David Leedy answered in his own unique way with a new NotesIn9 episode - which made me laugh as it is very entertaining and personal: http://notesin9.com/index.php/2014/03/31/notesin9-141-java-vs-javascript-throwdown

I may be wrong but I think Tim Tripcony's post gave the ignition all that - read it here: http://www.timtripcony.com/blog.nsf/d6plinks/TTRY-9HL2LQ

I cannot decide who's right or wrong - I think there is no right or wrong (at least in the starting question), there are other questions that have to be asked. These are my 2 cents to that discussion.

You have to learn Java for XPages

Wrong, but it may help you, to solve problems - and unfortunately produce some other...

You have to learn Javascript for XPages

Wrong, It will only help you to understand Dojo controls and slam the doors open to other helpers like frameworks (for that you don't really have to learn JS itself except when you're debugging your shit...)

So here is my humble point of view

It depends on what the task is. What role you play in development. My first start is a nice UI using a framework like Bootstrap, so Javascript may come in handy.
I am a visual-oriented guy, I want to define a clean layout, forms and other UI elements before I define the backend. Sure, I'm defining my data model also at the very beginning (at least a start of it). If you are doing both (frontend and backend) you sooner or later will come along with Javascript and Java as well. SSJS is a crutch like @Formula language. Simple, easy to learn and it does what it should do - nothing more.
I don't write about performance but if it comes to performance to don't wanna use SSJS. I also don't know anything about JSF lifecycle - but I never had to have that knowledge to achieve my goals. Java is a tool like any other language you can use in Domino development. I also could use a Lotusscript agent giving me a REST response which I consume in my XPage - no problem. But do I want to use LS in that context? I do! But reasonably for not rewriting existing code and classes in Java or SSJS. I just re-use it and transform/extend it to my needs.
When I start on a blank surface I prefer to keep "it clean" as XPages is based on JSF technology and that is: Java. I am not a crack but I use it very thrifty e.g. in config beans or to compute UI elements at runtime.
My current project is exactly about dealing with UI and backend: I am the UI guy and two other co-workers are doing the backend. I don't want to have a knowledge about that but only of the interfaces we both are using (this is JSON REST in this case). I don't give a f**k about the data store or the controller layer. As I am dealing with XPages and reading stuff from the Domino environment my first choice was to use Java for that task - but I cannot state that I love it. It's not because of the language itself, it's just more for the mangy behavior of the IBM JVM when handling with many single sessions and instances of objects (not even Notes objects...). They just suck at one point. But that's another story.

When I am creating my own small projects I tend to use less Java backend as possible - but when I use it I find it a very comfortable way to store data all over my application which I can access wherever I want to make the UI good looking and "saying" what has to be said.

So the closing question for me is:

Are you a frontend guy or a backend guy?

Leave a comment right here