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) 🙂

 

 

 

 

 

10 thoughts on “Future-proofing yourself.

  1. Great minds think alike, my friend. JavaScript is, simply put, the language of the web. I still believe that its very nature encourages bad habits, so learning JavaScript and then learning Java (or Objective C, or any other language that actually enforces its own rules) is going to be far more painful than approaching it from the opposite direction. But I agree that your point is identical to what I attempted to convey in my own post: learn the technology that drives the web while you still have a job, and you’ll be able to keep / find a job… wait until the vendor / customers of a product / library / framework yank the one thing you know out from under you, and you may be in for some extreme stress when that inevitably occurs.

  2. Hi Marky. Firstly, great post. Secondly, I fully agree with you on the decision to take JavaScript to the next level.

    With XPages, I started with Server Side JavaScript, not understanding Java well enough. But even after writing how many XPages Applications, it was only when I started using Appcelerator Mobile where I became very aware of JavaScript as a scripting/programming language. I finally started understanding commonJS, Prototypes, JS best practices, etc, etc.

    Future proofing John Jardin, means not only becoming a Master of JavaScript, but of the Web in general. Web Dev may have not had its best year, but it’s the calm before the storm and we need to be ready for it.

    Having said that though, Java also falls part of my future proof plan. There’s still massive scope for Java, both inside and outside of IBM’s Product Line.

  3. Great post. I was using Dojo back in 2008 before XPages came along and was actually rather frustrated when Domino 8.5.1 only had support for Dojo 1.1. As you say, the involvement of IBM in Dojo is an important point for longevity. Look on developerWorks and you’ll see a host of Dojo-related posts, very few of which relate to XPages.

    My main frustration with JavaScript is that editors are not great at highlighting errors at compile time. But it is powerful. I’ve written a few Dojo extensions myself, although they’re probably now defunct because of changes in Dojo over the years.

    Future proofing is key though and XPages has “encouraged” developers to do so, by using core software development languages (JavaScript and Java) for it’s power. Although I’m committed to XPages and the IBM stack, my knowledge of Java and, to a lesser extent, JavaScript means I am not concerned about my future.

  4. I’m quite lucky to programm mainly XPages applications.. only rarely i bump into a traditional Notes Application..
    I wrote my first productive XPage application just when 8.5.2 came out and used Dojo quite extensive in there (especially charts). I thought it’s a good idea and best practice to stay with DOJO and programm also my own Client Javascript Logic with the DOJO Framework (altough i had bigger knowledge in JQuery).. after the client updated to 8.5.3 (and also the DOJO Version got updated), the charts did not look the same (e.g. HTML in labels were not supported anymore..). I tried to post in DOJO forums and was searching for DOJO gurus, no success… So i had to solve the problems with a quite ugly workaround.. result: 2 days of wasted development time!
    Also my collegues hat quite problems after the server of their application updated (and so the DOJO Version).. before XPages and DOJO, we Notes / Domino developers weren’t actually really worried when a new Server version was coming out, weren’t we?
    So i learned my lesson and use now my own best practices: I take DOJO as it comes with built in XPages functions, and also for some ExtensionLibrary controls.. but i clearly avoid writing my own javascript stuff on the base of DOJO, like superman avoids cryptonite.. for UI components, like sortable data tables, calendars, charts, etc. i use (and i love to use) JQuery. Why? Better compatibility over Domino Versions, more resources, easier to programm, and also: DOJO and JQuery work pretty nicely together side by side..

    • Thanks for the comment Frederic – you have hit on something I too have experienced – I tried to mess with the Dojo controls for a specific version – wrote in 8.5.2 – broke in 8.5.3 so i fixed it – broke again in R9 and I decided that I was wasting my time and gave up trying.

    • This certainly makes the case for a great advantage that you have with jQuery — you can easily update it as needed! Dojo provides a lot of great functionality and it’s very useful that it’s available out of the box with the server, but the downside is that you can’t get newer features nearly as easily.

  5. Thanks, Doc!

    Well put. From my perspective, however, Notes, and XPages, are dying. I’ve been working at the United Nations since 2006, and in those days we built TONS of applications! At that time, many banks, financial institutions and governments were big Notes shops, as well. Since then, UNICEF, the World Food Programme, Peacekeeping Operations, and soon, the entire UN system will be moving to Exchange. The US government switched, and Chase Bank and the Canadian government are in the process of moving, too.

    Regardless of the future of Notes, I do consider myself a “web developer”. I’m proficient in javascript, CSS3 and learning HTML5. I’ve used jQuery more than dojo, and I intend to do so, even within XPages, since there is more of a demand for jQuery than dojo outside the Notes world.

    As the Notes world crumbles around me, I feel that “Future Proofing” myself with web development is the best course of action, at this point.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s