Happy New Year, my friends!
I am happy to have some days behind me without any work related time and serious programming. Instead I tried my first own and alone DIY stuff - which turned out to what I expected. I am not a craftsman and it looks like „the best I can deliver“. Anyway. I actually did some programming these days. Not Domino, not XPages, not Java. I dabbled around with Node.js and associated techniques like MongoDB. Maybe you noticed some of my tweets during this period.
Better late than never
I know I am late to the party but hey, I am also getting older - and slower, too. Nevertheless I had a good start with it. I always liked the Javascript way of coding and so I do with using Node.js which is nothing else than this - Javascript on the server-side. I am able to use editors that are versatile, fast and reliable (like VS Code). I can rely on version management like Git without any trouble with meta data crap and binary outputs - it’s just text files.
Flexibility
I have various runtimes I can test my stuff on (local, Heroku local, Heroku live, Bluemix), a console (man, I love consoles!) and a package management which works like I was used to as a Linux guy (NPM). I describe this as a whole ecosystem which also comes along with a huge amount of documentation and resources. This is the unfair point in my comparison with the tools I am using in my day job which is IBM XPages - the amount of users and developers is way bigger in Node.js & Co. than it is in IBM’s technologies.
Key parts
I have to compare the quality of documentation though. Hey, IBM - you still need to work on documentation and resources for developers! The only thing on my positive list is the various forums you provide like the dW forum. As I already wrote the official resources for Watson, Node, Java and stuff need to be updated and detailed.
Heroku
Ok, I confess. I did it. I signed up to a Heroku account - for free. I was using IBM Bluemix before and did a lot of blogging about it’s runtimes, I was speaking about it at several conferences and made some testimonials. I decided to give Heroku also a try. Of course I could have tried Amazon or Azure, but I was influenced by some of my IBM fellows who are now focussing on Salesforce’s technology - Heroku is the cloud based developer platform of Salesforce. I don’t regret it. Don’t get me wrong: I am not using Salesforce at all but just the cloud environment which is easy, fast, reliable and stable - and logical, too.
If you are using Node.js then Heroku is your friend. This is one of the proclaimed environments there and the so called „Dynos“ (which is a runtime in Bluemix) are very flexible and easy to handle. Even in the free plan your apps stay alive - for 30 minutes. After that amount of time the runtime will fall asleep - but the subdomain will still be there! This is different from Bluemix: the domain will not be available if your app isn’t running. If you access the Heroku app via the URL it will wake up within seconds - that’s awesome!
MongoDB
I am a Notes guy - and I always will be. I love the way to produce, access and maintain unstructured data (NoSQL). There are several solutions available in that area but MongoDB is by far the most popular one, so I gave it also a try. I also liked the fact that you can install it locally without any hassle (as you can with others, too, like Cloudant). There are also packages available for any system so I also installed MongoDB on my virtual host which runs on Ubuntu.
I am at the very beginning but I gained progress and success within just 2 days. I am able to store and read data from a simple Node.js app with just a few lines of code. No complex frameworks needed, no unresolvable dependencies making problems - it’s just a creative process which is assisted by some additional steps which are well documented. The APIs are simple and easy to learn.
Conclusion
My goal for 2017 is to dive deeper into this kind of development (yes, I still like the server-side method over the client-side one), I want to use editors worth the name (no, not DDE!) and I want to use technologies that are updated and documented more often than IBM does with it’s core products.