SandorHQ — What Dreams May Come
Node.js and Express was only one of the options for server-side technology. Let’s review a few alternatives now.
Ruby on Rails or Sinatra
Rails was one of the pioneers of the revolution that popularized TDD and Agile development. It’s also huge and probably offers every feature that one might ever need just by installing a few gems. But just as mining for precious stones takes a long time, these gems are sometimes a bit slow to arrive. Ruby itself is really nice and with using rvm
could be a mature and safe way to build things.
For RESTful backends and small applications Rails is definitely an overkill. That’s where Sinatra appears on the stage and starts crooning its ditties. No wonder it also has influenced every platform.
While I have experimented with Ruby many times I’ve found that I’m more interested in other technologies, so nowadays Ruby for me is just the language which configures Vagrant or Capistrano.
Django or Flask
Django, named after the legendary guitar virtuoso, is an ideal solution for a website that requires robust yet user friendly administrational page system. Similarly to Rails Django has probably the same vastness of available, modularized functionality, and with virtualenv
even the incompatibilities between Python 2 and 3 can be avoided.
When the entire orchestra is too big for a show, Flask is a good choice just like Sinatra. It has the same characteristics of being small and fast yet extensible.
Personally I don’t really like one single thing that makes Python strikingly different from other languages. Of course, it’s the syntax which is dependent on white space. At first it feels like a great idea, but since white space can mean spaces, tabs or a mixture of these, careless copying and pasting or just some accidents with the tab key in the editor could easily lead to broken code and frustration. For short code – like in the Jade templating language – this approach can definitely induce a nice, clean feeling. It also kind of forces the programmer to modularize their code base – maybe even to not have a function that exceeds 6 lines, which makes Uncle Bob really pleased –, so it can be argued whether it’s a good or just a wild idea.
Laravel or Slim
Just as when everyone was very busy mocking PHP – rightly so –, Laravel has became a factor which couldn’t be ignored anymore. Seeing where it is now, and to which direction it’s going, I can definitely recommend this framework to everyone, beginner or seasoned veterans alike. Its learning curve is pleasantly gentle, yet it encourages modern and efficient ways to craft code. Do yourself a favor and check it out at Laracasts!
Naturally, PHP has its own version of a small, swift micro framework called Slim and the little brother of Laravel, Lumen.
At this time I feel I have worked enough with PHP and decided to look for something else. Not because PHP is inadequate, it’s just the more languages and frameworks one knows the better programmer they can be.
Ghost or Jekyll
So if I only needed a really simple site, why haven’t I used something like Jekyll or Ghost? First of all, because programming is fun. Second, if I suddenly realize I need additional functionality – for example maintaining linked articles like the ones in this series —, it is far quicker and easier for me to just append two new fields to the article descriptor models (in my case flat JSON files), add a few lines of data parsing to the processor middleware and one or two extra Jade files to be included conditionally, than to look through the manuals and see if any pre-baked solutions do exactly what I want.
Lua — The Eagle May Land One Day
I’ve heard very good things about the Lua language, especially that it really works well in fusion with Nginx, so I’m probably going to explore this direction in the future.
Who knows? It’s my site, it’s my VPS, things can be changed very quickly and since there’s always the possibility to roll them back, there’s nothing I could lose by boldly going where I haven’t gone before.