Disclaimer and License

Opinions expressed here by Tim Tripcony are his own and not representative of his employer.

Creative Commons License
Tip of the Iceberg is licensed under a Creative Commons Attribution 3.0 Unported License.
Based on a work at timtripcony.com.

Unless otherwise explicitly specified, all code samples and downloads are copyright Tim Tripcony and licensed under Apache License 2.0.

Search

What the Quote?

"You're like a lint brush."

Laura Tripcony

"Do your quarterly meetings happen 4 times a year?"

Melanie Deal

"It's kind of like a Purple Nurple, but with less pain"

Steven Rodgers

« may you live in interesting times | Main| fasten your seat belt, Dorothy »

pragmatic reasons every Domino developer should learn Java

Category java
  1. Colleges teach Java.

That's it. That's the most pragmatic reason all Domino developers should learn Java.

This will no doubt sound strange coming from me, but just for a moment, forget about XPages. Yes, of course there are a myriad of geeky benefits you'll get by using less SSJS and more Java in your XPage applications (assuming, of course, that you are now developing XPage applications, given that the last four years have clearly demonstrated that XPages are the unambiguous future of Domino development): better performance, easier control over memory management, compile-time data safety checking, one-file libraries that add powerful capabilities to your app... and on and on and on. Forget all that.

During the first half of my career, I was asked more often than I would have preferred, by hiring managers and current bosses alike, why I don't have a college degree. My response was always some variation -- dependent entirely upon how much diplomacy I could muster in the moment -- upon the following:

Your question is irrelevant. No college teaches what you need me to know.

While this response was not what they wanted to hear, I knew that it was accurate. I had truth on my side when arguing that my experience and instinct were more valuable to them than any boilerplate bachelor's degree could ever be.

As a Domino developer living in a post-8.5.0 world, if you are asked the same question, do not use this argument. It is no longer true.

When I'm teaching XPage development techniques to clients, I've found that those with a solid Java background pick it up in a heartbeat, even if they have no prior Domino experience, whereas it seems the longer someone's been developing Notes / Domino apps using only Formula and LotusScript, the harder it is for them to wrap their head around XPages. I've heard from several colleagues that they've had a similar experience. It's likely that this has more to do with having a foundation of OO experience than specifically having Java experience, but since Java is only OO, if (you grok Java) {you grok OO}; // oops, mixing code and prose again...

The reality is that you can hire a college grad who has three years of Java classes under his belt, most likely including some JSF, spend a few days explaining the structure of NSF, and a couple more showing how much of JSF XPages just does for us without us having to write all the code ourselves, and by the end of the week, he'll have a comfort level with XPage development that it took me 6 months to obtain. And he'll be cheaper than me.

By now, that doesn't make me nervous, because I have four years of XPage experience, so it's come full circle to where having a really deep understanding of NSF and other aspects of Domino architecture are an asset, not a liability. But if I'd realized in 2009 how expendable I'd become overnight, I would have panicked.

The good news is, even four years later, it doesn't seem like many Domino shops have realized that 10+ years of Notes client development experience no longer outweighs a degree-equivalent comfort level with Java. So you've still got some time to stave off the whippersnappers... all the same, I'd recommend that you start reading.

Comments

Gravatar Image1 - Learning Java will make you a better programmer, which is true of learning pretty much any additional programming language, but particularly so when you're coming from just LotusScript.

Gravatar Image2 - You make sense. Also if you grasp Java you'll find it easier to pick up other languages like C# C++.

I think setting yourself a goal, for example to take a Java certification, is a good idea. The exam is reasonably tough for an IT certification, helps you focus, and there are lots of materials out there to structure and support your study. Also you will be learning Java outside the context of Domino (good if you don't want to be labelled a Notes guy for the whole of your career).

Bruce Elgort shared this link ("How to become skilled at learning programming languages")which I think has good advice: { Link }

Gravatar Image3 - This programmer compentency matrix might be useful

{ Link }

Gravatar Image4 - For german readers there is a quite well written, though long, book called "Auf dem Weg zum Java Profi", which recaps well all this automatized tests, design patterns, deployment automatization stuff, which still might look weird from a classical Notes standpoint.

For taking inroads in JEE, you might really try Netbeans. Those Czechs do have excelent tutorials. Netbeans is very, very well integrated with glassfish and Eclipse can be a pain in the ass. I allways have 3 or 4 Eclipse installations for not getting into weird plug-in problems.

I am working in nearly pure Java for a long time now. Sometimes I think it was socially nicer in the old domino days, though not sure if that might be kind of a nostalgia of me getting older.



Gravatar Image5 - "The good news is, even four years later, it doesn't seem like many Domino shops have realized that 10+ years of Notes client development experience no longer outweighs a degree-equivalent comfort level with Java." I'm not sure that is such good news for the platform.

Gravatar Image6 - "You don't need to know Java to write XPages" { Link }


Gravatar Image7 - good college grads will never choose Lotus / Xpages if they have a choice. the less good ones will never read as much runtime API as you do, no need to worry. Emoticon

Gravatar Image8 - I wish that IBM would cover our backs a bit by an IBM Press Book 'Java within XPages'.

Requested also on behalf of my collegues Emoticon

Gravatar Image9 - #4 Patrick, TLCC has a Java for XPage developers course that teaches Java from the perspective of using that code in XPages.

Gravatar Image10 - Java is future for Domino, that is a fact.

Gravatar Image11 - Right on. The reason UNIX succeeded back in the '80s and '90s and eventually inspiring Linux is that colleges taught it. Thousands of well-trained UNIX admins and developers came out of college ready for entry-level jobs every year. If you were running an IT shop and paying attention, you knew this and took advantage of it instead of paying to train your staff on some other OS. And if you were already working as an admin or developer for a boss who was paying attention, you paid attention too or you were ripe for being replaced.

Post A Comment

:-D:-o:-p:-x:-(:-):-\:angry::cool::cry::emb::grin::huh::laugh::lips::rolleyes:;-)