What tools do I have my eye on?

In the course of my work and research, I often come across new tools that I hear about and am interested in trying, but have not yet had a chance to actually delve into in any meaningful way. This is a list of what is currently on my queue.


ReactPHP is a socket library for PHP. I have experience with the socket.io library for Node.js and am curious as to how a language like PHP deals with sockets.


Jade is a templating engine for JavaScript that is so minimalistic and so far removed from HTML as to slightly scare me. But, I've also come to the realization that anything that scares me is worth looking into, becase it means there is a whole lot I can learn from it. Since I want to explore Node.js anyway, I will definitely need a templating engine. I would also like to look into incorporating Jade into jQuery. Writing HTML markup in jQuery when manipulating the DOM has always felt really clunky but I never looked into other solutions.


ExpressJS seems to be the most common Node.js framework for the moment. I have enough familiarity with JavaScript and Node.js that I don't think it would be a big deal for me to jump straight to a framework at this point, and once I do, ExpressJS will be it.


If I'm using ExpressJS for a Node.js framework and Jade for a templating engine, I'll need some kind of database layer. SequelizeJS will be my starting database layer.


CofeeScript is to JavaScript as SASS is to CSS. And considering how blown away I was by SASS, it is impossible for me to ignore CoffeeSript. It reduces a tremendous amount of boilerplate when writing basic commands and will be very helpful in situations where I might want to write as vanilla of JavaScript as possible. Speaking of which...


Ender is a Node.js tool for compiling minimalistic JavaScript libraries. It is essentially a package manager for JavaScript that lets you compile your resources during development and only use what you need. So if you don't want the full weight of jQuery on a simple page, you can use Ender to only generate what you'll use. And considering I recently began to use Composer for PHP packages, I see no reason to not explore JavaScript package managers as well.

Pyramid / Flask

Flask and Pyramid are the Python web frameworks that I have my eye on. I initially chose Pyramid over Flask because Flask seemed too minimalistic for my purposes. Later, I followed Eevee's tutorial on a basic Flask project. Now that I've used both, I suspect Flask may be more in line with my needs. Either way, I would like to dabble with both, and even step into Django in time.


Just like with SequelizeJS, if I'm going to write a web site in Python, I need a Python database layer. SQLAlchemy comes well recommended and will be my starting point.


I've spent my entire programming life in MySQL. Now that Oracle bought Sun and the MySQL community is splintering, it is time for me to look elsewhere. PostgreSQL comes with good recommendations and plays nicely with PDO, SequelizeJS and SQLAlchemy, so it is a good first choice. On the other hand...


Unlike PostgreSQL, MongoDB is a radically different beast. And just like Jade, that scares me in a good way. Dustin Coffey began to toy with MongoDB and talked to me about it. His reaction was very intriguing and makes me want to delve into it.


If I'm considering changing my language to Python or Node.Js, and considering changing my database to PostgreSQL or MongoDB, why not go balls-to-the-wall and change my server as well? I first heard about Nginx when I first heard about Node.js, but never got Nginx working and just ran Node.js from the command line. When I get around to writing the my next experimental project, my planned stack is Linux/Nginx/Python/PostgreSQL. It is going to be daunting to change 75% of my stack in one shot, but once I come out on the other side I will be much more enlightened.