Why I’m dodging the HTML/JS bandwagon
After nearly two years working for ILM Professional Services we’ve parted ways in the the closest thing to a mutual breakup possible in business. Now that I’m no longer associated with ILM I feel like I can give an unbiased assessment of the company. In short, I think ILM is the best source for quality .Net developers in the Twin Cities. Their interview process is easily the most comprehensive I’ve gone through and it gives them an accurate portrait of your skills across a broad spectrum of disciplines and, even more importantly, they don’t try to place you in a position that doesn’t match your skill set. The other developers that work there are some of the best and brightest I’ve met anywhere, every single one capable of excelling in a team lead or architect role at any company in the Twin Cities.
They are also a great company to work for as a developer. They sent me to Mix 10 and 11, supported and guided me in my desire to speak at conferences and user groups, and set me up with a mentor to help me convert from life at small businesses to life as a consultant. If you’re a .Net developer with solid chops I would highly recommend considering ILM the next time you’re looking for a change.
But as much as I like and respect ILM we needed to part ways for one major reason: The openings they’re seeing are almost entirely for ASP.Net MVC apps and I have no interest in developing with HTML or JS.
Why would you avoid HTML & JS?
Every time I tell someone I’m not interested in HTML/CSS/JS I get looked at like I’m crazy. The biggest reason I don’t plan to start doing HTML/JS development is that the problems I love to solve, the reasons I got into programming in the first place, shouldn’t be solved in JavaScript. I like to do things like write the aerodynamic models that make simulated airplanes fly, write my own programming languages and DSLs, and write web services used by hundreds of developers on every platform under the sun that support more transactions per second than Twitter can handle without throwing a fail whale. JS raytracers notwithstanding, these are not problems that can or should be solved with JavaScript.
Up until I found and fell in love with XAML I didn’t really like making UIs either. I’d tried just about everything from HTML/JS/CSS (most recently in 2007) with PHP5, Swing with Java, WinForms with C#, MFC with C++, and a host of other technologies all because I wanted to be able to show the world the results of all of this cool stuff I was doing. All of them were difficult to use to the point of pain, didn’t work well across platforms/browsers/resolutions without coding for each one individually, and making even small changes required a ridiculous amount of effort. To make a long story short I had given up on ever making UIs and resigned myself to leaving it to someone else.
Then I got a job working on an application that happened to use WPF as its front-end technology and my jaw dropped. Here was a technology I could use to easily create user interfaces that reacted easily to changes in both the data on the screen as well as changes in resolution and could even work cross platform with some care via Silverlight. Back in 2010 the future of XAML looked bright.
Now Silverlight is dead, WPF is still a great option for making applications to run on any Windows machine from XP to Windows 7, and XAML is a first class citizen when building applications for WinRT. This has left XAML developers floating in the breeze for the last six months or so. It looks like XAML will be a major player moving forward on the desktops, laptops, tablets, and phones that use Microsoft operating systems but we’ve completely lost our cross-platform capabilities. The bright XAML future of 2010 has been tarnished and developers, correctly, are loath to trust it. But my moving from XAML to HTML/CSS/JS would be like going from using a Zippo to start a fire to rubbing two sticks together, even with all of the improvements in HTML5, CSS3, and the new JS libraries.
How do I know that HTML5 hasn’t changed the world as fully as the internet echo chamber would have me believe if I haven’t used the technologies in the last 5 years? All of the issues that made it a pain in the butt then are still there now.
- Browsers still don’t implement the “standards” the same way. I’m using the most current version of the most popular (or 2nd depending on whom you ask) browser and I still see major sites every day whose layout is broken to the point of illegibility.
- Half of those cool “look what HTML5 can do” sites only work in 1-2 browsers.
- I can view source on most web pages and see at least one JS function that includes a workaround for a certain browser or set of browsers (not just IE6).
- It was non-trivial for sites to implement the SOPA boycott without messing up their search rankings and results.
- I watched professional, high-quality, web designers and developers put together websites for two months this winter. The number of problems they had dealing with various browsers was ridiculous. Figuring out how to get a design to work in HTML/JS/CSS that would have taken one person a day in XAML to get working completely was amazingly complex.
- Netflix, the largest site on the internet by traffic, is half broken if you try to access it via https.
The list goes on. The point is that things have gotten better in the HTML world since the bad old days of dealing with IE6, but they still aren’t good.
So what now?
Now I see myself as I was back before I discovered XAML but with a few bright spots out on the horizon. The biggest is that I know now that it’s possible to create UX technologies that are a joy to work with. There’s a good chance that XAML will have a big future with WP7 and Windows 8, including their app stores and WinRT looks like a big step forward for Microsoft. Last but not least, XAML has shown developers what a UI technology could be and the Microsoft development community is (finally, slowly) starting to take an interest in open source development. I salivate at the idea of an open source implementation of something like the XAML presentation stack that could be used across platforms and/or virtual machines. But that’s an idea for another day.


Bryan! Sad to see you go, you’re one of the smartest developers I’ve met. Even more distressing is the reduced chances of walking inebriated colleagues home from one end of the Vegas strip to the other. While talking about religion. Good times.
I get where you’re coming from, and wish you the best of luck. Keep in touch. If you’re not busy this Monday come downtown to the .Net user group. Will be speaking on CQRS. Look forward to reading some WinRt posts from you
Hey Bryan, I wish the best for you in whatever follows. I’m sorry to see you leave, and I hope to see you around.
Hey Bryan! It’s sad to see you go! I will miss working with you on ideas about our mobile app. You are a very professional person to work with and will be missed. I have to agree with Josh, you are one of the smartest developers that I have worked with and I am inspired by you.
I understand where you are coming from, HTML/JS/CSS don’t present the same challenges that designing and implementing other solutions (not UI’s) have. I respect you for standing up for what you believe and want to do in your career. I wish you the best of luck. Don’t forget to keep in touch.
Very understandable, and I am mostly on the same page (except I’m more interested in APIs and core C#/VB rather than XAML per se). I think a lot of the objections you have are nigh-on fundamental problems with the web, yet everyone seems content to bang their heads against the wall over and over again. Obviously things like Modernizr and SASS help, but also serve to complicate our code even more.
Great essay even if i don’t agree. I’ve gone the other direction – from high volume airline server to mobile. Never the twain shall meet.