Thursday, 17 March 2016

My grand project of 2016

In the interest of clearing out my blogger's block, let's talk about something I plan to carry out for the majority of this year.

I have this grand idea that's been fermenting in my mind for some months now.

It won't be MapGuide-centric (though it may involve MapGuide in some way down the road).

It will be a desktop application based on the Electron editor shell.

It will involve Cesium.js and/or OpenLayers (maybe both at the same time).

It will use the current hottest thing in web frontend development: React.js

And most importantly, it will all be written in TypeScript. Seriously, once you've gone TypeScript, you'll never want to go back to JavaScript! Combine TypeScript with React.js and you have web development heaven.

But the road to realizing this idea has a few roadblocks.

  • Cesium and OpenLayers are JavaScript libraries, making it difficult to integrate with TypeScript code. To integrate with other JavaScript libraries, one has to write TypeScript Definition (d.ts) files for the libraries they want to use in TypeScript. This is currently a manual affair and given the API surface of both these libraries, I'm not too keen on writing these definitions by hand!
  • There aren't any full featured React.js components for OpenLayers and Cesium.js
My decision to go all in with TypeScript means that these roadblocks must be cleared for my grand idea to be fully realized.

So how are we going to clear these roadblocks? That'll be the subject of future posts :)

No comments: