Recently I got a requirement to create a proof of concept web application. Something not too complicated, two types of users can register, login and after that enter and view some data with file upload/download functionality. There was also a requirement for an admin page which can view and approve registered users. I had my hands free to choose the technology and tools to build it. Oh, and did I mention the deadline was in four days?
Since I had experience in Java web development and .NET client development and I like to say I’m technology agnostic, I was open for anything that would best suit the need. After some examination, I ended up with three options: Java, ASP.NET and Node.js. I always wanted to try Node, but didn’t think this was the right moment when I had less than four days to complete the project. And while I personally like the C# language the most, I didn’t work with ASP.NET. But the reason to dismiss it wasn’t that, but the fact I wasn’t able to create a free trial account on Azure, even if I gave my credit card number. Platforms like Heroku usually don’t support ASP.NET and I wasn’t ready to pay for hosting of an app that was only an MVP.
For all these reasons I decided I’d try Play framework using Java. Their documentation looked nice and it seemed I could do the job fast and easy using the language I know well. So I created a new project and followed the guidelines to get it configured and start working. But soon I ran into typical Java problems, I was stuck in project setup, configuration problems, guidelines didn’t work for me, something somewhere wasn’t installed properly. After fixing one problem, another would come up and I soon realized I could loose a lot of time just to get the project started. That’s when I decided I would give up on Java and try this hot new thing – Node.js.
So there it was, a production ready application built in four days in technologies I didn’t work with before. I don’t have to say I felt proud and also happy that Node.js exists and only look forward to building more applications like this. Well, with more reasonable deadline if possible.