My thoughts on Typescript

I have been asked quite a few times in the last 24hrs how I stand regarding TypeScript – Microsoft’s answer to solving the elephant in the HTML5 adoption room (JavaScript).

First impressions count and they were positive, I studied the marketing material, I installed the plugin and I even wrote some code – outcome yes, it works for me. The work done on this “it tastes like chicken” façade to the JavaScript issue is outstanding and I’d not think anything less of the work Anders spits out from that enormous talent sized brain of his.

I am however suspicious of this concept – time to put my Microsoft trouble maker tinfoil hat back on.

I have mentioned numerous times that there has been this divide or chasm between Windows + Internet Explorer and WPF/Silverlight – that is to say XAML/C# vs. HTML5/JS/C++. It is pretty well documented on this blog and in other parts of the web, and there is not much more to discuss on this suffice to say Typescript is yet another win for the HTML5 camp and loss for the XAML/C# camp.

This Is the part where a Microsoft evangelist or product manager for the team(s) feign innocence and give you the usual “it’s about choice” speech.  True it will be about choice; I just cannot help to think that with all that investment and work gone into C#/XAML mix that taking a few steps backward to prop up HTML5/TypeScript seems an awful waste of time and energy to date.

There is no doubt that I would personally adopt TypeScript/HTML5 when the time comes to write a HTML based solution, as to me it fits nicely with my desired development pipeline. I still think however, the entire web based development pipeline is around 3-5 years behind where XAML/C# is today (I will even throw in Adobe ActionScript/MXML into that mix as well).

My thoughts are simple

  • Ecma6 is hopefully going to crush JavaScripts skull and the abomination of JavaScript we see today will be wiped from the face of the earth hopefully never to be spoken of again (ie Typescript leads that charge from a Microsoft developer standpoint)
  • Internet Explorer is still being regarded inside Microsoft as a standalone ecosystem. I am still nervous and not excited about this thus suspicious of Typescripts charter (that fork in the road for IE vs. other browsers in the parity/ubiquity story is still coming up ahead).
  • HTML5 vs. XAML/MXML. I still roll my eyes at HTML5 mainly as when you’ve used both MXML or XAML in your day to day development then look at HTML5 one can’t but help see the HTML5 has not only gone of charter – yet again. If we are going to go full, tilt XML UI declarative then let us fold Resource Dictionaries into place instead of CSS / style tags and be done with it.
  • Typescript was fun to develop with. I almost got a little giggle at making my HTML do stuff via Typescript that I’ve grown accustomed to with Flex/WPF/Silverlight but it still felt 3 steps backwards. It reminded me of the days of DHTML when we did this kind of thing by ourselves when writing your own JavaScript framework was the cool-kids thing to do (I once – 2004 – wrote a Flash framework that read in XML as instructions on how to design UI, I also did the same for JavaScript.  Crazy eh?)
  • A few people will whine about Typescript being a big ol façade or yet another JavaScript wrapper but the difference form all the alternatives is that firstly, Microsoft wrote this one. Secondly, it comes as a plugin for Visual Studio and thirdly it has a geek-celeb behind it (Anders). Most non-Microsoft developers will give a “hand jerk” motion to those tickboxes but you do not understand the requirement most .NET shops have (which has now been ticked). Adoption will follow, remember this.
  • Typescript reminds me of the days when Adobe/Macromedia switched from ActionScript 1.o to 2.0/3.0. You felt it was a move forward and the idea isn’t new, at the same time it took a long while for existing developers to cross that chasm of adoption. Hopefully it ECMA6 wont fall into that same vortex of pain.

In Summary, Typescript will be a hit amongst the .NET kids out there, I don’t think it will go beyond that but that’s ok as that’s a few million developers out there that it will influence. I think this is still setting the ground work for future Internet Explorer development going forward and stay tuned for more of that discussion.

Why is Internet Explorer its own ecosystem?

Why is Internet Explorer its own ecosystem? Why not say “Web” .. :)

I hope this however puts a lot of pressure on the makers of browsers & tooling that JavaScript needs to be abandoned as we know it, that it needs to keep moving forward if we are truly going to reach absolute parity with plugin(s) / native experiences such as Adobe Flex, Silverlight or WPF in way that doesn’t feel like you’ve had sacrifice your first born to achieve parity.

To quote a friend who recently gave his thoughts on HTML/JS development instead of WPF/SL/Flex development

It is like getting a hand job from a crack addict. You know it is wrong, you know it is a substitute for what you really want and lastly once it happens you can never look your friends in the eye the same way again. It however got the job done.

(That was the clean version of that believe it or not).