There's so much happening in the realm of software development right now, it's so great to be a part of the field. It's exciting, exhausting, terrific and terrifying. Things are advancing at a tremendous rate, and I doubt it will slow down anytime soon. I've just finished setting up Gulp to help with automating my development workflow. I also finished configuring NodeJS on my web instance (hosted on A Small Orange), and on my local Windows development machine. Last night I was laying down and watching the AFC Championship game and reading Reddit. And my sense of accomplishment started to drain away. Why? Because NodeJS is getting pressed by io.js. Express, the main middleware layer for Node has a next generation called Koa. Even Javascript itself is shifting under my feet with ECMAScript 6 finally starting to become a reality. I just discovered 6to5, a transpiler than converts your ECMAScript 6 code into ECMAScript 5. I like to think that I'm able to keep up with what's going on. I may not know all the fine points, but I can track the major muscle movements. I knew about ES6, but I didn't realize it was as far along as it is. I spend the vast majority of my work hours coding for the browser. Wide support for client-side ES6 is probably a year out for the newest browsers. Then how much longer will it take before the installed base gets upgraded? It will be a long time before one can count on native ES6 support. But as long as you can convert your preferred language into something supportable by the browser, you're golden. Right? Well, that's where things start to get messy. Now you've got your server code in one language, your client code in another language, and you're using some libraries written in another language. Then you're transpiling everything into another language for deployment. I should probably spend some time considering how real-time translation and language conversion come together. Microsoft's Roslyn project can take VB and convert it into C# (and vice versa). What if we had some sort of common browser intermediary language? Sounds a lot like the JVM or CIL. I found a couple of interesting discussions about this. One on stackoverflow and one from Scott Hanselman. So, how can I bring this back around and wrap it all up into a nice tidy package? I guess the main point of this all is that there are very few things that endure, and that the best solution isn't always the one that wins, because life is full of variables that we can't account for. The good news is that things tend to get better over time. Remember when SOAP and XML was the hot way to do web services? Javascript isn't great, but I think it is where we will be until then next big thing comes along. And that is.... the Internet of Things! (Just kidding... maybe.)