Friday, July 27, 2012

TouchDevelop: Develop with passion

During the last weekend, I've been playing around with TouchDevelop, a development environment for Windows Phone that runs completely on the phone. It's still in the labs of MSR but you can use it if you have a device that runs Windows Phone.

TouchDevelop is easy to learn and use and it makes coding more fun with its innovative interface. It was my first time to use a Windows Phone in my life and I was able to learn the language, the interface, system capabilities and develop a complete game over one weekend. I like the new development environment because it's designed for a touch screen. It's not about writing code on the phone, it's a complete new experience that uses the capabilities of your device to its best.
This isn't a tutorial for TouchDevelop, but I'll try to highlight its main features.
  • The whole development cycle can be done on the phone. From writing code to publishing your app to the store. You can use your spare time in any place to be more productive.
  • The environment is so easy to learn. I started from knowing nothing to make a complete game over one weekend
  • The language is very powerful and has control over most phone capabilities including touch events, camera, contacts, calendar, GPS and other mobile sensors. Also it comes with built-in libraries form most common stuff like gamed board with sprites, collision detection and built-in physics engine.
  • Unlike traditional coding, you write the code token by token rather than character by character. With a small touch screen, it's desirable to minimize number of touches to complete the job.
  • TouchDevelop makes good use of Unicode characters to make the code concise and readable on the small screen. e.g. π, →, ≠, ≤
  • The main input method is IntelliTouch, which guesses your next input token and shows you best guesses in the limited screen. I used to find my next token in the first or second page.
  • With strongly typed variables, you hardly make errors while typing. Once you make a mistake, it's detected and signaled right away.
  • The editor shows inline help for functions and can be accessed with one tap on the screen.
  • At any point, you can open a search box to look up a function by name.
You can install TouchDevelop now and start playing with it. The bazaar contains lots of sample apps you can browse. You can also see scripts written by other users including my "mini Wars".