Here at Tropo, we understand the need for speed.
Consider that in the last few weeks we’ve written one, two, three, four blog posts covering different ways to leverage the unique nature of our scripting platform to build blazing fast, real-time communication apps.
We’re constantly adding new features to our Node.js library for building Tropo applications. Just this week we added support for the new Tropo REST APIs that allow you to provision phone/SMS numbers and IM addresses for your apps, and for injecting events into running Tropo apps.
Learning to Node
Node.js is a good candidate for applications that have high concurrency or low latency requirements because of one of it’s chief characteristics – it’s non blocking. When you ask Node.js to perform an operation, it does not wait for the completion of that operation before executing subsequent instructions. This lets you write more efficient (faster) applications because you don’t have to wait for the completion of a specific operation before doing something else.
Node.js is also event-based rather than thread-based. This makes it different from other web technologies (like Apache) that spawn new threads to handle concurrent connections. Node.js uses an event loop instead of threading, which provides a much more efficient approach to concurrency. This makes Node.js particularly well suited for applications that have lots of connections that are non-trivial in length – like real-time applications.
There are add-ons and libraries for other languages that provide a similar construct to building event-based apps; Twisted in Python, EventMachine in Ruby or AnyEvent in Perl.
With Node.js you don’t need to use an external library – events are baked in.