Future-proofing yourself.

The other day I got an interesting comment on an old blog post of mine and I felt like it really deserved a separate post in response rather than being lost in the comments. This is a personal assessment of my skills and the need to future proof myself – it is not a sermon – just personal musings which will hopefully inspire.

The Comment

I have copied the comment here for context.

The past several months, I’ve been working on many Notes client applications, but now we’re ready for a big web based application! So, back to jQuery (YAY!) and some dojo (boo!).
Outside of the XPages world, it seems that jQuery is overtaking everyone else. In fact, I heard that the next version of javascript is taking elements of jQuery! I remember there were Mootools, Scriptaculous, Prototype and TONS of others over the years! Just check the stats of how many Stackoverflow questions there have been for various js librairies: http://stackoverflow.com/tags. It’s not even close! So, for the sake of argument, what if dojo shuts down within 3-5 years, and only Xpages are using them. Then what?

From the outside world, it just seems that jQuery is the better long term decision. Any thoughts?

The Answer(s)

So a couple of things to address directly from the comment:

  1. IBM is a significant contributor to Dojo and has been for many years – I think it is unlikely to “shut down”
  2. jQuery may be “the world’s most popular JavaScript library“, but who’s to say it will be that in 3-5 years? In terms of the internet that is a lifetime away.
  3. JavaScript is an evolving language and of course it will take into consideration any techniques and desires that the development community wants/needs. IFRAME, AJAX and parts of the HTML Spec which we take for granted today were invented as IE only tools which make it into the spec (yeah Microsoft was really groundbreaking in some senses)
  4. I do not agree that jQuery is a better long term decision – I think it is a much better “today” decision and probably at least the next couple of years decision – but what is “long term” anyway? 🙂
  5. Learning the fundamentals of JavaScript I believe is the best long term decision and then the actual library becomes much less of a conversation.

So What?

So I really take the original question as one about future-proofing yourself rather than XPages specifically. For those of you who have already taken the plunge to XPages you have already “evolved” your skillset and you have almost certainly learned new skills (like them or not). Really that is what is important is the adaptability of your skillset – not what should I learn today and what should I be ready to learn tomorrow.

So having learned XPages, what is the hardest thing you have had to learn? For me it is all of the server side controls and the JSF component model. It still causes me mental heartache today and probably always will. I am sure it is obvious to anyone who regularly reads my posts, I am much much happier in the user interface, Client Side JavaScript is my thing, it always will be. I am content that that decision will not harm my future work prospects.

Future Proofing Marky

So for me future proofing myself happened the day I realized that I had been “programming JavaScript” for over 10 years but I had not been a “JavaScript developer” for any of it. If these terms are not familiar to you then you are also not a JavaScript developer: closures. object literals, prototypal inheritance, callback functions, IIFE.

So I set out to learn……and jQuery helped me do that. But……..

There are people who believe that jQuery is an unnecessary safety blanket used by people who do not really understand the language. They also believe that jQuery encourages people to be able to program websites using plugins while they understand very little of the underlying concepts. To that I say *crap*. I do not understand how C and C++ work but I use an operating system and developer tools written in those languages – is anyone fussing about not knowing that? I think not.

My point is, that learning jQuery itself will not teach you to be a JavaScript developer – but it most certainly can help.

  1. The code is free and easy to read – the non-minified version is well documented, easy to read and well laid out
  2. There are many blog posts on how does jQuery work (this is the funniest)
  3. You owe it to yourself to better understand web technology. It is not going away. You may as well start using the tools and understand them as you go along.

I am not saying you must learn JavaScript or you will fail as a developer – far from it. But I will challenge anyone who thinks they are a web developer and is not a JavaScript developer then you are fooling yourself.

JavaScript is not only restricted to web development. As we all see in XPages it is also a server side language and in node.js the fastest growing server side technology for web application development.

Conclusion

So for Marky, JavaScript is the obvious choice. It is not Java, it never will be for me, and I am happy with that decision. I am also convinced that my action will determine my fate. I will not wait for fate to tell me what to learn after my job no longer exists.

The conversation shouldn’t be about what is the best library to use for the future but what skillset do you need to be able to adapt. If you build web sites then JavaScript has to be the way to go.

Web technology moves on a <2 year cycle – welcome to the future of constant re-invention of your skillset if you want to remain relevant.

For your own sake, make yourself better and more flexible – you have no one else to blame if you don’t and the worst happens.

For the record

If XPages is no longer in 3 years what will you do? 2.5 years from now will not be the time to figure that out.

I have no evidence or reason to believe XPages will be going away any time soon 🙂

Dojo is a fantastic JavaScript library. It was never designed to make sexy websites, it was created as a framework for application design. XPages is a fantastic example of how to use Dojo to build a framework – well done IBM.

jQuery is not intended to build “websites”. It is intended to help in the development of websites and simplify the developer experience through standardized functions and removal of browser dependencies.

Ember.js, Angular.js, backbone.js and many others are the new, modern “today” libraries for architecting websites. MEAN is the new LAMP stack and if that all means nothing to you – you should at least do yourself the service of some reading.

Sheer coincidence that I saw this from Tim Tripcony today – same deal – different perspective – same conclusion (metaphorically speaking) 🙂

 

 

 

 

 

XPages – Saving data sources bound to a panel – a lesson learned

In this article I will highlight/document an issue which I came across today – using a Save Button and a Document Data source bound to a panel.

so this is what I learned today

When you have an xpages document data source bound to a panel

 <xp:panel id="widgetContentsWrapper" styleClass="widgetContentsWrapper">
  <xp:this.data>
   <xp:dominoDocument var="widgetsDoc" formName="Widgets"  scope="request">
   </xp:dominoDocument>
  </xp:this.data>

and a save button to “saveDocument”

  <xp:button styleClass="btn btn-primary modal-ok" value="Submit Button" id="button1" disableTheme="true" >
   <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
    <xp:this.action>
     <xp:actionGroup>
      <xp:saveDocument var="widgetsDoc"></xp:saveDocument>
     </xp:actionGroup>
    </xp:this.action>
   </xp:eventHandler>
  </xp:button>

The button must be within the panel – otherwise for absolutely no apparent reason it just does not work. I checked the form – yes data was being submitted but apparently not saved.

I have never experienced this before because I have never used a data source bound to a panel before – now I know better!

I hope you do not have to share my pain…

DCLUG – October 24th – Toolfest Double Header – Teamstudio and Ytria

I am very pleased to announce the next  DC Lotus User Group on October 24th will be a double header with Ben Menesi and Jon Andrews from Ytria and Teamstudio respectively

Both of these companies have played an huge part in providing the tools that administrators and developers use on a daily basis worldwide. I know I have sung the praises of Teamstudio products before and have been instrumental in bringing them to the new companies I work for. 

For the first time ever this will be a morning meeting an for more information please check out the meetup site

http://www.meetup.com/DC-Lotus-Professionals/events/141113842/

In addition to showing off their latest wares in back to back sessions, they will stick around for a lunchtime “Stump the LUG” session where we invite you to share your own technical pain points with the entire group and to discuss how you can address them (perhaps with tools you didn’t know you needed). 

Here’s what’s in store for you at this must see event:

9:30 AM – Coffee & Refreshments

9:45 AM – Welcome and Quick Community Update

10:00 AM – Session 1: Ytria’s EZSuite of products help administrators and developers deal with a large variety of issues: whether it’s about ACL management, agent troubleshooting, or even replication problems, Lotus Domino often lacks a much needed overview, as well as mass-problem solving capabilities. Using scenarios from the field, we’ll discuss why the tedious and manually-intensive methods you use to address them are due for an extreme makeover. For example, we’ll spend time with alternatives to the well known task of writing agents for data manipulation that you’ll never use again.

11:00 AM – Session 2: Teamstudio’s latest killer tool Teamstudio Unplugged moves them in a new direction by providing a practical and compelling toolset for developers to surface existing Notes client apps as native apps on the iPad and other mobile devices. The Lotus Notes client pioneered secure, offline-capable business applications and Teamstudio Unplugged helps bring that same capability to a new generation of mobile devices. Unplugged cross-platform mobile apps are developed using XPages through the familiar Domino Designer interface, and the platform ships with three pre-unpluggified IBM templates (Journal, Teamroom, and Doc Library). In this session we will demo Teamstudio’s own “Mobile Approvals” template, as well as show you how to customize these templates, for example by adding camera integration for uploading photos.

12:00 – Lunchtime “Stump the LUG” Discussion

Thanks Bruce

I am a late comer to the OpenNTF community as I have explained before this was more due to the circumstances of my job in the mid 2000s shifting me away from development but I restarted development in 2011 and have not looked back.

So I have no known Bruce personally for much more than 18 months but I have know “of” him for much longer (obviously).

Unknowingly Bruce was the second person (other than my friends) to ever follow me on twitter (more here) and even by that simple act that was encouragement to get involved.

Since I have known him Bruce has been a good friend and a great example to me of how to look beyond what I am doing today and look to the future. Bruce has opened opportunities for me which I could have only dreamed of once upon a time and for that I will forever be grateful.

I see Bruce not only as a friend but a mentor of sorts, I have learned from him and will continue to do so.

Without Bruce’s involvement in OpenNTF I expect our paths would not have ultimately crossed, but I am very glad they did.

Thank you Bruce for following me on twitter, encouraging me and ultimately being someone I consider a friend beyond just the community.