InfoWorld: Basically, the main purpose in developing Tungsten.js was you couldn’t find something that suited your needs at Wayfair, correct?
DeGennaro: The main thing we’re trying to do with Tungsten is to keep everything split into three main components, which we call the developer interface, the template library, and the DOM interaction. By keeping those separated, right now we’re using Backbone for the developer interface, Mustache for the template, and Matt-Esch’s virtual DOM library for the DOM interaction.
What we think this is going to give us is a lot of freedom moving forward to swap out these components without having to worry too much about going back and fixing everything. With other libraries, a lot of times like you’d see with the Angular 1 to Angular 2 switchover, the developers decided to change a lot of things under the hood and you change a lot about the library, and early on there were a lot of fears that the upgrade path was going to be a little ugly. Since we’re a large company and code tends to come out fairly rapidly, one of our big concerns was how we can make sure our library is fresh for code that comes out next year as well as five, 10 years into the future.
InfoWorld: At what state of development is Tungsten.js?
DeGennaro: Right now it’s in production use here at Wayfair. I would say it’s definitely past alpha, probably still in beta. We’re shooting for a 1.0 release some time over the next couple of months.
InfoWorld: Why should developers either inside or outside of Wayfair be excited about the release of Tungsten.js?
InfoWorld: How does Tungsten fit in with Node.js?
DeGennaro: It could certainly be used with Node, but with Tungsten, we don’t really focus on any server-side aspects. We just wanted to focus on making something that could be server-side-compiled for any server environment that people happen to be using.
InfoWorld: What is the role of the virtual DOM in Tungsten.js?
InfoWorld: What have been the results of the performance of Wayfair.com with Tungsten in it?
DeGennaro: It’s been rolled out piecemeal as developers make changes to parts of the Web page. We’ve encouraged them to implement Tungsten where it makes sense. Obviously, [with] small changes on the large existing deployment, it doesn’t make sense to refactor, but for places where we have implemented Tungsten, we’ve seen up to a threefold improvement in terms of page performance.
InfoWorld: What specific aspect of Tungsten has enabled that?