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...
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
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?