Functional programming, objects. HTTP, ESBs. Actors, agents, APIs. Mobile, mobile web, web, native web, native. Building a modern application (that is, one architected, designed, and built somewhere in the next two to five years) is not easy. You could, certainly, do as we've done for years, and just "pick a tech stack, follow the 'best principles', go!". And you could, certainly, rewrite the same code over again in another five years, this time with different 'best practices' and/or different languages and/or different APIs. But it would still be the same code, and it would still suffer the same problems. Or, you could build something different.
Ted is the CTO of iTrellis, an IT full-lifecycle management and custom software development shop located in Seattle, WA. He's spent quality time on several different platforms, starting with DOS 3.3 and Windows 3.0, all the way up through the JVM, .NET, NodeJS, Android, iOS, and a few others along the way. He's a programming language aficionado, having written production code in ten different languages, and experiments/prototypes/spikes in a dozen more. He resides in Seattle with his wife, two sons, two pets, four desktops, eight laptops, ten mobile devices, and a rather scary electricity bill.