{"id":170758,"date":"2011-07-20T17:36:45","date_gmt":"2011-07-21T00:36:45","guid":{"rendered":"https:\/\/www.microsoft.com\/en-us\/research\/project\/touchdevelop\/"},"modified":"2018-04-03T16:41:06","modified_gmt":"2018-04-03T23:41:06","slug":"touchdevelop","status":"publish","type":"msr-project","link":"https:\/\/www.microsoft.com\/en-us\/research\/project\/touchdevelop\/","title":{"rendered":"TouchDevelop"},"content":{"rendered":"<p class=\"asset-content\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2016\/02\/touchdevelop-2.png\" alt=\"\" width=\"99\" height=\"99\" \/>Create apps everywhere on all your devices! For Windows Phone and the web. In the TouchDevelop programming environment you write scripts by tapping on the screen. You do not need a separate PC or keyboard. Scripts can perform various tasks similar to regular apps. Any TouchDevelop user can install, run, edit, publish scripts. You can share scripts with other people by publishing them to the TouchDevelop script bazaar, or by submitting them as an app to the Windows Store or Windows Phone Store.<\/p>\n<p align=\"center\"><strong>Go to <\/strong><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.touchdevelop.com\/\"><strong>www.touchdevelop.com<\/strong><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><strong> to get started.<\/strong><\/p>\n<p align=\"center\"><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/youtu.be\/g7EuUc4zJYE\"><strong>Watch Video: Create Apps for Hour of Code\u2122 with TouchDevelop<\/strong><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><strong>.<\/strong><\/p>\n<h2>The Idea Behind TouchDevelop<\/h2>\n<p>The way in which we interact with computing devices is changing: instead of keyboards, advanced touchscreens become more common; mobile devices are often equipped with more sensors, such as location information and acceleration, and are always connected to the cloud.<\/p>\n<p>TouchDevelop is a new programming environment and language built around this new reality. Its typed, structured programming language is built around the idea of only using a touchscreen as the input device to author code. It has built-in primitives which make it easy to access the rich sensor data available on a mobile device. In our vision, the state of the program is automatically distributed between mobile clients and the cloud, with automatic synchronization of data and execution between clients and cloud, liberating the programmer from worrying (or even having to know) about the details.<\/p>\n<h2>Get TouchDevelop Now<\/h2>\n<ul>\n<li>For <b>iPad<\/b>, <b>iPhone<\/b>, <b>Android<\/b>, <b>PC<\/b>, <b>Mac<\/b><strong>:<\/strong> Run the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.touchdevelop.com\/app\/\"><b>TouchDevelop Web App<\/b><span class=\"sr-only\"> (opens in new tab)<\/span><\/a> in your browser, now.<\/li>\n<li>For <b>Windows Phone:<\/b> Get the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/windowsphone.com\/s?appId=fe08ccec-a360-e011-81d2-78e7d1fa76f8\">app in the Windows Phone Store<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>.<\/li>\n<li>For <strong>Android: <\/strong>Get the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.microsoft.touchdevelop\" target=\"_blank\">app in Google Play<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>.<\/li>\n<\/ul>\n\t<div data-wp-context='{\"items\":[]}' data-wp-interactive=\"msr\/accordion\">\n\t\t\t\t\t<div class=\"clearfix\">\n\t\t\t\t<div\n\t\t\t\t\tclass=\"btn-group align-items-center mb-g float-sm-right\"\n\t\t\t\t\tdata-bi-aN=\"accordion-collapse-controls\"\n\t\t\t\t>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"btn btn-link m-0\"\n\t\t\t\t\t\tdata-bi-cN=\"Expand all\"\n\t\t\t\t\t\tdata-wp-bind--aria-controls=\"state.ariaControls\"\n\t\t\t\t\t\tdata-wp-bind--aria-expanded=\"state.ariaExpanded\"\n\t\t\t\t\t\tdata-wp-bind--disabled=\"state.isAllExpanded\"\n\t\t\t\t\t\tdata-wp-class--inactive=\"state.isAllExpanded\"\n\t\t\t\t\t\tdata-wp-on--click=\"actions.onExpandAll\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t>\n\t\t\t\t\t\tExpand all\t\t\t\t\t<\/button>\n\t\t\t\t\t<span aria-hidden=\"true\"> | <\/span>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"btn btn-link m-0\"\n\t\t\t\t\t\tdata-bi-cN=\"Collapse all\"\n\t\t\t\t\t\tdata-wp-bind--aria-controls=\"state.ariaControls\"\n\t\t\t\t\t\tdata-wp-bind--aria-expanded=\"state.ariaExpanded\"\n\t\t\t\t\t\tdata-wp-bind--disabled=\"state.isAllCollapsed\"\n\t\t\t\t\t\tdata-wp-class--inactive=\"state.isAllCollapsed\"\n\t\t\t\t\t\tdata-wp-on--click=\"actions.onCollapseAll\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t>\n\t\t\t\t\t\tCollapse all\t\t\t\t\t<\/button>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t<ul class=\"msr-accordion\">\n\t\t\t\t\t\t\t\t<li class=\"m-0\" data-wp-context='{\"id\":\"accordion-content-2\"}' data-wp-init=\"callbacks.init\">\n\t\t<div class=\"accordion-header\">\n\t\t\t<button\n\t\t\t\taria-controls=\"accordion-content-2\"\n\t\t\t\tclass=\"btn btn-collapse\"\n\t\t\t\tdata-wp-bind--aria-expanded=\"state.isExpanded\"\n\t\t\t\tdata-wp-on--click=\"actions.onClick\"\n\t\t\t\tid=\"accordion-button-1\"\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\tTouchDevelop - In Classrooms\t\t\t<\/button>\n\t\t<\/div>\n\t\t<div\n\t\t\taria-labelledby=\"accordion-button-1\"\n\t\t\tclass=\"msr-accordion__content\"\n\t\t\tdata-wp-bind--inert=\"!state.isExpanded\"\n\t\t\tdata-wp-run=\"callbacks.run\"\n\t\t\tid=\"accordion-content-2\"\n\t\t>\n\t\t\t<div class=\"msr-accordion__body\">\n\t\t\t\t<h2>Resources for Educators<\/h2>\n<p>Visit the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/touchdevelop.com\/teach\">TouchDevelop teaching website<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for a comprehensive list of available resources for teachers.<\/p>\n<h2>Classroom Experience<\/h2>\n<p>TouchDevelop has been used in many different classroom settings, including:<\/p>\n<p><b>University of Newcastle, Australia, <\/b>during 2013<\/p>\n<p style=\"padding-left: 30px;\">1 semester course on Wireless Development for The Cloud: <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/www.newcastle.edu.au\/course\/INFT3009.html\"> University of Newcastle students work with Microsoft<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<p><b>Drew University, <\/b>Fall 2013<\/p>\n<p style=\"padding-left: 30px;\">First Year College Seminar (Fall 2013) by Barry Burd<\/p>\n<p><b>Drew University, <\/b>Spring 2013<\/p>\n<p style=\"padding-left: 30px;\">Mobile App Development (Spring 2013) by Barry Burd<\/p>\n<p><b>University of Maryland<\/b>, Spring 2013<\/p>\n<p style=\"padding-left: 30px;\">CMSC436: Programming Handheld Systems by Atif Memon, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/www.cs.umd.edu\/~atif\/Teaching\/Spring2013b\/\"> http:\/\/www.cs.umd.edu\/~atif\/Teaching\/Spring2013b\/<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<p><b>University of Calgary<\/b>, Fall 2012<\/p>\n<p style=\"padding-left: 30px;\">CPSC 581 Human Computer Interaction II by Saul Greenberg, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/pages.cpsc.ucalgary.ca\/~saul\/wiki\/pmwiki.php\/CPSC581\/Courses\">http:\/\/pages.cpsc.ucalgary.ca\/~saul\/wiki\/pmwiki.php\/CPSC581\/Courses<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<p><b>Graz Univ. of Technology<\/b>, <strong>Austria<\/strong>, Fall 2012<\/p>\n<p style=\"padding-left: 30px;\">Mobile Computing by Wolfgang Slany<\/p>\n<p><b>IIIT-Delhi<\/b> <strong>Indraprastha Institute of Information Technology<\/strong>, <b>Delhi<\/b>, <strong>India<\/strong>, Fall 2012<\/p>\n<p style=\"padding-left: 30px;\">CSE535, Mobile Computing taught by Vinayak Naik, <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/www.iiitd.edu.in\/~naik\/teaching\/mc\/#ProjectsInAppStores\"> http:\/\/www.iiitd.edu.in\/~naik\/teaching\/mc\/#ProjectsInAppStores<b><\/b><span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<p><b>University of Illinois, Urbana Champaign <\/b>in Fall 2012<\/p>\n<p style=\"padding-left: 30px;\">ECE 190, &#8220;Introduction to Computing Systems&#8221; by Yih-Chun Hu<\/p>\n<p><strong>University of California in Santa Cruz<\/strong> in April-June 2012<\/p>\n<p style=\"padding-left: 30px;\">10-week course (one quarter) with 20 students in Introduction to Computer Science class (1 phone per student) \u00a0<a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/classes.soe.ucsc.edu\/cmps010\/Spring12\/\"> http:\/\/classes.soe.ucsc.edu\/cmps010\/Spring12\/<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/rainierbeachhs.seattleschools.org\/\"><strong>Rainier Beach High School<\/strong><span class=\"sr-only\"> (opens in new tab)<\/span><\/a> in February-April 2012<\/p>\n<p style=\"padding-left: 30px;\">13-week course with 1 hour per day with 30 students (1 phone per student)<\/p>\n<p><strong>University of California in Santa Cruz<\/strong> in March 2012<\/p>\n<p style=\"padding-left: 30px;\">2 hours with 80 students in <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/courses.soe.ucsc.edu\/courses\/cmps10\/Winter12\/01\"> Introduction to Computer Science<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> class (1 phone per student)<\/p>\n<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/www.kent.k12.wa.us\/ksd\/MC\"><strong>Mill Creek Middle School<\/strong><span class=\"sr-only\"> (opens in new tab)<\/span><\/a> in December 2011<\/p>\n<p style=\"padding-left: 30px;\">2 hours with 90 students in 8th grade (1 phone per 2 students); watch video<\/p>\n<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/www.bsd405.org\/interlake\/\"><strong>Interlake High School<\/strong><span class=\"sr-only\"> (opens in new tab)<\/span><\/a> in October 2011<\/p>\n<p style=\"padding-left: 30px;\">90 minutes with 30 APCS students &#8211; introduction to mobile app development (1 phone per 3 students)<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/li>\n\t\t<li class=\"m-0\" data-wp-context='{\"id\":\"accordion-content-4\"}' data-wp-init=\"callbacks.init\">\n\t\t<div class=\"accordion-header\">\n\t\t\t<button\n\t\t\t\taria-controls=\"accordion-content-4\"\n\t\t\t\tclass=\"btn btn-collapse\"\n\t\t\t\tdata-wp-bind--aria-expanded=\"state.isExpanded\"\n\t\t\t\tdata-wp-on--click=\"actions.onClick\"\n\t\t\t\tid=\"accordion-button-3\"\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\tTouchDevelop - External Research\t\t\t<\/button>\n\t\t<\/div>\n\t\t<div\n\t\t\taria-labelledby=\"accordion-button-3\"\n\t\t\tclass=\"msr-accordion__content\"\n\t\t\tdata-wp-bind--inert=\"!state.isExpanded\"\n\t\t\tdata-wp-run=\"callbacks.run\"\n\t\t\tid=\"accordion-content-4\"\n\t\t>\n\t\t\t<div class=\"msr-accordion__body\">\n\t\t\t\t<h2>Cloud Services for Researchers<\/h2>\n<p>All TouchDevelop scripts are stored and analyzed in the cloud. For research purposes, TouchDevelop exposes a set of web services that allows you to query scripts. Learn more about <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.touchdevelop.com\/help\/cloudservices\">cloud services for researchers&#8230;<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/p>\n<h2>External Research Projects<\/h2>\n<ul>\n<li>The <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"https:\/\/sites.google.com\/site\/asergrp\/\" target=\"_blank\">Automated Software Engineering Research Group<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> at UIUC is conducting <em><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"https:\/\/sites.google.com\/site\/asergrp\/projects\/touchdevelop\/\" target=\"_blank\">A Comprehensive Field Study of End-User Programming on Mobile Devices<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/em><\/li>\n<li>The <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/www.pm.inf.ethz.ch\/\">Chair of Programming Methodology<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> at ETH Zurich has an <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/www.pm.inf.ethz.ch\/open_positions\">open PhD position<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>\u00a0involving <em>Static program analysis, especially abstract interpretation for mobile <\/em><em>TouchDevelop<\/em><em> applications<\/em><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/ranger.uta.edu\/~csallner\/\">Christoph Csallner&#8217;s group<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> at UT Arlington is conducting a comparative study of TouchDevelop and Android software development for mobile phones; read more about <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/cseweb.uta.edu\/~tuan\/tdexp\/\">An Experiment in Developing Small Mobile Phone Applications Comparing On-Phone to Off-Phone Development<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/web.engr.oregonstate.edu\/~cscaffid\/index.shtml\">Christopher Scaffidi&#8217;s group<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> at Oregon State University is running a project on <em>Analyzing TouchDevelop programs and forums to guide tool development efforts<\/em><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.touchdevelop.com\/pxrv\">Alexander Galkin<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> at Technische Universit\u00e4t Hamburg-Harburg (TUHH)\u00a0is writing his diploma thesis on <em>Multi-target .Net compiler for TouchDevelop<\/em><\/li>\n<\/ul>\n<h2>How About You?<\/h2>\n<p>Are you running a research project involving TouchDevelop, or are you interesting in starting one? <a href=\"mailto:touchdevelop%40microsoft.com?subject=research with TouchDevelop\">Send us an email.<\/a>\u00a0Visit the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/touchdevelop.com\/teach\">TouchDevelop teaching website<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for a comprehensive list of available resources for teaching and research.<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/li>\n\t\t<li class=\"m-0\" data-wp-context='{\"id\":\"accordion-content-6\"}' data-wp-init=\"callbacks.init\">\n\t\t<div class=\"accordion-header\">\n\t\t\t<button\n\t\t\t\taria-controls=\"accordion-content-6\"\n\t\t\t\tclass=\"btn btn-collapse\"\n\t\t\t\tdata-wp-bind--aria-expanded=\"state.isExpanded\"\n\t\t\t\tdata-wp-on--click=\"actions.onClick\"\n\t\t\t\tid=\"accordion-button-5\"\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\tRelease Notes\t\t\t<\/button>\n\t\t<\/div>\n\t\t<div\n\t\t\taria-labelledby=\"accordion-button-5\"\n\t\t\tclass=\"msr-accordion__content\"\n\t\t\tdata-wp-bind--inert=\"!state.isExpanded\"\n\t\t\tdata-wp-run=\"callbacks.run\"\n\t\t\tid=\"accordion-content-6\"\n\t\t>\n\t\t\t<div class=\"msr-accordion__body\">\n\t\t\t\t<h2>Release Notes for the TouchDevelop Windows Phone App<\/h2>\n<h3>v2.10.0.0 beta (8\/28\/2012)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2012\/08\/28\/announcing-touchdevelop-v2-10-tutorial-videos-code-synthesis-trace-replay-and-more.aspx\" target=\"_blank\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for a walkthrough of the new features in this update.<\/p>\n<p>This release is only available on Windows Phone devices that run at least Windows Phone 7.5 (Mango).<\/p>\n<p><b>New features:<\/b><\/p>\n<ul>\n<li><b>tutorial videos<\/b><\/li>\n<li><b>code synthesis<\/b><\/li>\n<li><b>trace+replay, crash debugging<\/b><\/li>\n<\/ul>\n<h3>v2.9.0.0 beta (6\/25\/2012)<\/h3>\n<p>Bug fixes<\/p>\n<h3>v2.8.0.0 beta (5\/26\/2012)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2012\/05\/26\/announcing-touchdevelop-v2-8-structured-datatypes-tags-better-pages-buttons-api-search-featured-screenshots.aspx\" target=\"_blank\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for a walkthrough of the new features in this update.<\/p>\n<p>This release is only available on Windows Phone devices that run at least Windows Phone 7.5 (Mango).<\/p>\n<p><strong>New features:<\/strong><\/p>\n<ul>\n<li><strong>structured datatypes<\/strong> allow you to declare tables, indices, decorators, objects<\/li>\n<li><strong>tags <\/strong>organize scripts in the script bazaar<\/li>\n<li>create <strong>page-based user interfaces <\/strong>with pages and buttons<\/li>\n<li>revamped in-app help and api search<\/li>\n<li>featured screenshots<\/li>\n<li>new samples<\/li>\n<\/ul>\n<h3>v2.7.0.0 beta (3\/21\/2012)<\/h3>\n<p>Bug fixes and changes to license terms<\/p>\n<h3>v2.6.0.0 beta (2\/21\/2012)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2012\/02\/21\/touchdevelop-v2-6-enhanced-user-profiles-libraries-access-devices-in-your-home-network-and-more.aspx\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for a walkthrough of the new features in this update.<\/p>\n<p>This release is only available on Windows Phone devices that run at least Windows Phone 7.5 (Mango).<\/p>\n<p>What is new:<\/p>\n<ul>\n<li>Enhanced user profiles: picture, about-me text, website<\/li>\n<li>User scores: compete with other script writers by earning hearts and using features<\/li>\n<li>Improved comments: speech-recognition, \u2665, profile pictures, consolidated forum<\/li>\n<li>Redesigned script editor<\/li>\n<li>More events: tap on anything on wall<\/li>\n<li>Recycle code with libraries<\/li>\n<li>Create libraries<\/li>\n<li>New APIs to access devices in your home network<\/li>\n<li>New Samples<\/li>\n<\/ul>\n<h3>v2.5.0.0 beta (12\/20\/2011)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2011\/12\/20\/touchdevelop-v2-5-new-tutorial-artwork-forum-and-more.aspx\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for a walkthrough of the new features in this update.<\/p>\n<p>This release is only available on Windows Phone devices that run at least Windows Phone 7.5 (Mango).<\/p>\n<p><strong>New features:<\/strong><\/p>\n<ul>\n<li>New tutorial that guides you through the app<\/li>\n<li>Pick pictures and sounds from the web<\/li>\n<li>Pick colors<\/li>\n<li>Better organization of installed scripts<\/li>\n<li>Semantic zoom: pinch in action editor<\/li>\n<li>General discussion forum in the app<\/li>\n<li>Pin any top-level page<\/li>\n<li>Many bug fixes<\/li>\n<\/ul>\n<h3>v2.4.0.0 beta (11\/11\/2011)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2011\/11\/11\/touchdevelop-v2-4-push-notifications-updates-discussions.aspx\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for an overview.<\/p>\n<p>This release is only available on Windows Phone devices that run at least Windows Phone 7.5 (Mango).<\/p>\n<p><b>New features:<\/b><\/p>\n<ul>\n<li>Receive <strong>push notifications<\/strong> when someone does something related to your scripts; you must opt-in via the Settings menu in the app or on the web<\/li>\n<li><strong>Updates<\/strong>: publish a script update (same author, same name), and TouchDevelop will make it easy for everyone to find and get the latest version<\/li>\n<li><strong>Discussions<\/strong>: write comments, reply to comments; you will find the new discussions screen in the \u201crate and review\u201d dialog for each script.<\/li>\n<li><strong>Simplified reviews<\/strong>: No more complicated stars and text, you can just do &#8220;+\u2665&#8221; or &#8220;-\u2665&#8221; to cast your vote.<\/li>\n<li><strong>New APIs<\/strong> for live camera access, geo augmented reality and to query more contact information<\/li>\n<li><strong>Crowd-sourced IntelliButtons <\/strong>in the calculator: we analyze all published scripts in the cloud, and the app regularly downloads the latest prediction model from the cloud to offer you the operations upfront that you are most likely to use.<\/li>\n<li>Many bug fixes<\/li>\n<\/ul>\n<h3>v2.3.0.0 beta\u00a0(10\/7\/2011)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2011\/10\/07\/touchdevelop-v2-3-for-mango-pin-to-start-for-scripts.aspx\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for an overview.<\/p>\n<p>This release is only available on Windows Phone devices that run at least Windows Phone 7.5 (Mango).<\/p>\n<p><strong>New features:<\/strong><\/p>\n<ul>\n<li>&#8220;Pin to start&#8221; of your script actions\u00a0to the main phone start screen (as a consequence, the tiles screen within\u00a0the TouchDevelop\u00a0has been removed)<\/li>\n<li>Support for fast application switching in Mango<\/li>\n<li>Boards can now be shown &#8220;full&#8221; screen<\/li>\n<li>New APIs to copy text to the clipboard<\/li>\n<li>The &#8220;share&#8221; APIs now use the Facebook\/Twitter\/&#8230; accounts which you configure in the general phone settings, and not the one you use to sign in to TouchDevelop to maintain your scripts<\/li>\n<li>&#8220;for each&#8221; loops now have a &#8220;where&#8221; clause to filter elements more easily<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/www.touchdevelop.com\/help\/apidiff\/200020\/200030\">New APIs<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> to access even more phone sensors and data<\/li>\n<\/ul>\n<h3>v2.2.0.0 beta (9\/13\/2011)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2011\/09\/13\/touchdevelop-v2-2-tutorial-mode-improved-code-editor-events.aspx\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for an overview.<\/p>\n<p><strong>New and improved features:<\/strong><\/p>\n<ul>\n<li>Tutorial-mode<\/li>\n<li>Editor improvements: Swipe between actions and statements, add new statements from calculator, button to go to called action<\/li>\n<li>Introduced concept of events<\/li>\n<li>Many bug fixes and other small improvements<\/li>\n<\/ul>\n<h3>v2.1.0.0 beta (8\/18\/2011)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2011\/08\/18\/touchdevelop-v2-1-integrated-script-bazaar.aspx\" target=\"_blank\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for an overview.<\/p>\n<p><strong>New and improved features:<\/strong><\/p>\n<ul>\n<li>The Script Bazaar to find and install scripts from the cloud has now been folded into the main experience.<\/li>\n<li>Many bug fixes and other small improvements.<\/li>\n<\/ul>\n<h3>v2.0.0.0 beta (8\/2\/2011)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2011\/08\/02\/announcing-touchdevelop-v2-0-beta-script-sharing-in-the-cloud.aspx\" target=\"_blank\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for an overview.<\/p>\n<p><strong>New and improved features:<\/strong><\/p>\n<ul>\n<li>Script sharing in the cloud\n<ul>\n<li>Share scripts with other people by publishing in the script bazaar<\/li>\n<li>Share screenshots, write reviews, compete on leaderboards<\/li>\n<li>Automated script backup in the cloud<\/li>\n<li>View what other people are doing in the livefeed<\/li>\n<li>Find scripts on the web: <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.touchdevelop.com\/\">touchdevelop.com<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<\/ul>\n<\/li>\n<li>Better scripts\n<ul>\n<li>Choose custom colors, icons (from <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/billybarker.net\/\" target=\"_blank\">billybarker.net<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>)<\/li>\n<li>View what capabilities a script uses<\/li>\n<li>View the information flow of (published) scripts to decide if you want to install them, and what private information you want to expose<\/li>\n<li>Language changes: multiple return values, &#8220;is invalid&#8221; property for all values, comments<\/li>\n<\/ul>\n<\/li>\n<li>Editor improvements\n<ul>\n<li>Selection of multiple statements<\/li>\n<li>Better auto-completion using historical API usage patterns<\/li>\n<li>Display expression errors, and fix them with a hammer<\/li>\n<\/ul>\n<\/li>\n<li>Interactive Wall\n<ul>\n<li>Search by text<\/li>\n<li>Translate to other languages<\/li>\n<\/ul>\n<\/li>\n<li>Many new awesome samples, performance improvements, and bug fixes<\/li>\n<\/ul>\n<p><b>New APIs:<\/b><\/p>\n<ul>\n<li>bazaar->leaderboard score: Gets the current score for the current script<\/li>\n<li>bazaar->open: Opens the bazaar<\/li>\n<li>bazaar->open leaderboard: Opens the leaderboard page for the current script<\/li>\n<li>bazaar->open review: Opens the review page for the current script<\/li>\n<li>bazaar->post leaderboard score: Posts the current game score to the script leaderboard<\/li>\n<li>board->create anchor: Create an anchor sprite<\/li>\n<li>board->create boundary: Create walls around the board at the given distance<\/li>\n<li>board->create spring: Create a spring between the two sprites<\/li>\n<li>board->create sprite set: Create a new collection for sprites<\/li>\n<li>board->is invalid: Return true if the current instance is useless<\/li>\n<li>Boolean->is invalid: Return true if the current instance is useless<\/li>\n<li>color->is invalid: Return true if the current instance is useless<\/li>\n<li>color->chrome: Gets the chrome color in the current theme (control background)<\/li>\n<li>color->subtle: Gets the subtle color in the current theme (light gray)<\/li>\n<li>contact->*: New kind representing a contact<\/li>\n<li>contact collection->*: New kind representing a contact collection<\/li>\n<li>datetime->greater or equal: Replacement for datetime->greater or equals<\/li>\n<li>datetime->is invalid: Return true if the current instance is useless<\/li>\n<li>json object->is invalid: Return true if the current instance is useless<\/li>\n<li>languages->current language: Replacement for languages->current lang<\/li>\n<li>languages->detect language: Automatically detects the language of a given text using Bing.<\/li>\n<li>link->is invalid: Return true if the current instance is useless<\/li>\n<li>link collection->is invalid: Return true if the current instance is useless<\/li>\n<li>location collection->is invalid: Return true if the current instance is useless<\/li>\n<li>map->add link: Adds a link pushpin on the map (ignored if the location if not set)<\/li>\n<li>map->add message: Adds a message pushpin on the map (ignored if the location is not set)<\/li>\n<li>map->add picture: Adds a picture pushpin on the map<\/li>\n<li>map->add place: Adds a place pushpin on the map (ignored if the location is not set)<\/li>\n<li>map->add text: Adds a text pushpin on the map<\/li>\n<li>map->is invalid: Return true if the current instance is useless<\/li>\n<li>map->view pushpins: Changes the current zoom and center so that all the pushpins are visible. This method has no effect if the map is not posted on a the wall yet.<\/li>\n<li>media->search marketplace: Searches the Windows Phone Marketplace (type in applications or music)<\/li>\n<li>message->is invalid: Return true if the current instance is useless<\/li>\n<li>message->media link: Gets a url to the media<\/li>\n<li>message->post to wall: Posts the message to the wall<\/li>\n<li>message->set media link: Sets the url to the media<\/li>\n<li>message->set source: Sets the source of this message<\/li>\n<li>message->set time: Sets the time<\/li>\n<li>message collection->is invalid: Return true if the current instance is useless<\/li>\n<li>number->is invalid: Return true if the current instance is useless<\/li>\n<li>number->to character: Interprets a number as a unicode value and converts it to the single character string<\/li>\n<li>number map->is invalid: Return true if the current instance is useless<\/li>\n<li>picture album->is invalid: Return true if the current instance is useless<\/li>\n<li>picture albums->is invalid: Return true if the current instance is useless<\/li>\n<li>pictures->is invalid: Return true if the current instance is useless<\/li>\n<li>place->*: New kind representing a place<\/li>\n<li>place collection->*: New kind representing a place collection<\/li>\n<li>playlist->is invalid: Return true if the current instance is useless<\/li>\n<li>playlists->is invalid: Return true if the current instance is useless<\/li>\n<li>social->contacts: Retrieves the list of contacts<\/li>\n<li>social->create place: Creates a place<\/li>\n<li>social->search places nearby: Searches for recent tweets in a social network (twitter, facebook)<\/li>\n<li>song->is invalid: Return true if the current instance is useless<\/li>\n<li>song album->is invalid: Return true if the current instance is useless<\/li>\n<li>song albums->is invalid: Return true if the current instance is useless<\/li>\n<li>songs->is invalid: Return true if the current instance is useless<\/li>\n<li>sound->is invalid: Return true if the current instance is useless<\/li>\n<li>sprite->color: Returns the sprite color.<\/li>\n<li>sprite->is invalid: Return true if the current instance is useless<\/li>\n<li>sprite->overlap with: Returns the subset of sprites in the given set that overlap with sprite.<\/li>\n<li>sprite set->*: New kind representing a set of sprites<\/li>\n<li>string->is invalid: Return true if the current instance is useless<\/li>\n<li>string->to upper case: Replaces to upper<\/li>\n<li>string->to unicode: Converts a single character string into its unicode number<\/li>\n<li>string collection->is invalid: Return true if the current instance is useless<\/li>\n<li>textbox->*: New kind representing a mutable text box that can be posted to the wall<\/li>\n<li>tile->is invalid: Return true if the current instance is useless<\/li>\n<li>time->stop and close: Stops the execution and leaves the wall.<\/li>\n<li>wall->clear: Clears the entries<\/li>\n<li>wall->create text box: Creates an updatable text box<\/li>\n<li>web->search images nearby: Searching images near a location using Bing. Distance in meters, negative to ignore.<\/li>\n<li>web->search nearby: Searching the web near a location using Bing. Distance in meters, negative to ignore.<\/li>\n<li>web->search news nearby: Searching news near a location using Bing. Distance in meters, negative to ignore.<\/li>\n<li>web->search phone numbers: Search phone numbers near a location using Bing. Distance in meters, negative to ignore.<\/li>\n<li>xml object->is invalid: Return true if the current instance is useless<\/li>\n<\/ul>\n<p><b>Removed APIs:<\/b><\/p>\n<ul>\n<li>board->share: was useless<\/li>\n<li>datetime->greater or equals: replaced by greater or equal<\/li>\n<li>languages->current lang: replaced by current language<\/li>\n<li>map->add pushpin: replaced by add link, add message, add picture, add place, add text<\/li>\n<li>string->to upper: replaced by to upper case<\/li>\n<\/ul>\n<h3>v1.2.0.1 beta (5\/27\/2011)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2011\/05\/19\/announcing-touchstudio-v1-2-beta-fast-game-and-physics-engine-pin-actions-in-touchstudio-post-to-facebook-and-much-more.aspx\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for an overview.<\/p>\n<ul>\n<li>New fast game and physics engine (&#8220;board&#8221;)<\/li>\n<li>Improved tiles on app home screen\n<ul>\n<li>Pinning of individual actions as tiles<\/li>\n<li>Separation of tiles and scripts<\/li>\n<\/ul>\n<\/li>\n<li>Post on your Facebook wall directly from your script<\/li>\n<li>Global variables (&#8220;data&#8221;)<\/li>\n<li>Run all actions directly; enter arguments on wall if needed<\/li>\n<li>Improvements in code editor\n<ul>\n<li>Selection of subexpressions<\/li>\n<li>Extraction of subexpressions (a refactoring that introduces a new local variable)<\/li>\n<li>Copy & paste of entire actions<\/li>\n<li>Undo<\/li>\n<\/ul>\n<\/li>\n<li>Tutorial videos<\/li>\n<li>Many new samples, performance improvements, and transition animations, and bug fixes<\/li>\n<\/ul>\n<p><b>New APIs:<\/b><\/p>\n<ul>\n<li>media->create board: Create a board<\/li>\n<li>board->*: Game and physics engine<\/li>\n<li>sprite->*: Sprites on boards<\/li>\n<li>social->create message: Create a message<\/li>\n<li>social->search: Searches your favorite social networks<\/li>\n<li>message->*: Messages<\/li>\n<li>*->share: Easy sharing of text, images, etc. on your favorite social network<\/li>\n<li>math->mod: Function to compute modulus<\/li>\n<li>string->to location: Parses a string representing a geo coordinate<\/li>\n<li>tile->set panorama: Marks a tile as a wide tile<\/li>\n<li>wall->*: Directly interact with wall<\/li>\n<li>web->rss: Fetch rss stream from web<\/li>\n<li>web->xml: Fetch xml document from web<\/li>\n<li>xml->*: Easily access xml elements<\/li>\n<\/ul>\n<p><b>API changes:<\/b><\/p>\n<table style=\"height: 687px;\" width=\"750\">\n<tbody>\n<tr>\n<td><b>old API<\/b><\/td>\n<td><b>new API <\/b><\/td>\n<\/tr>\n<tr>\n<td>math-pi<\/td>\n<td>math->\u03c0<\/td>\n<\/tr>\n<tr>\n<td>media->choose picture,media->has chosen picture,media->chosen picture<\/td>\n<td>media->choose picture(immediately returns chosen picture)<\/td>\n<\/tr>\n<tr>\n<td>\n<p>phone->choose phone number,<\/p>\n<p>phone->has chosen phone number,<\/p>\n<p>phone->chosen phone number<\/p>\n<\/td>\n<td>phone->choose phone number(immediately returns chosen number)<\/td>\n<\/tr>\n<tr>\n<td>\n<p>senses->take camera picture,<\/p>\n<p>senses->has taken camera picture,<\/p>\n<p>senses->taken camera picture<\/p>\n<\/td>\n<td>senses->take camera picture(immediately returns taken picture)<\/td>\n<\/tr>\n<tr>\n<td>\n<p>social->choose email,<\/p>\n<p>social->has chosen email,<\/p>\n<p>social->chosen email<\/p>\n<\/td>\n<td>social->choose email(immediately returns email)<\/td>\n<\/tr>\n<tr>\n<td>phone->message box<\/td>\n<td>wall->prompt<\/td>\n<\/tr>\n<tr>\n<td>phone->number box<\/td>\n<td>wall->ask number<\/td>\n<\/tr>\n<tr>\n<td>phone->string box<\/td>\n<td>wall->ask string<\/td>\n<\/tr>\n<tr>\n<td>phone->screenshot<\/td>\n<td>wall->screenshot<\/td>\n<\/tr>\n<tr>\n<td>picture->show<\/td>\n<td>picture->post to wall<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>v1.1.0.0 beta (5\/2\/2011)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2011\/05\/02\/touchstudio-update-v1-1-beta.aspx\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for an overview.<\/p>\n<ul>\n<li>Many bug fixes<\/li>\n<li>Better auto-completion in expression editor<\/li>\n<li>Access to accelerometer, location, maps, translation services, web search, tile customization, charting, and more.<\/li>\n<li>Take screenshots of your actions (if you want to show other people your code), and the execution wall; look for the &#8220;send screenshot to library&#8221; button under the \u201c\u2026\u201d in the application bar.<\/li>\n<li>API changes (see below). If you update an existing installation, all your existing scripts get renamed to &#8220;v1.0 &#8230;&#8221;. Since we changed APIs, your old scripts might have errors which you have to edit and fix yourself.<\/li>\n<\/ul>\n<p><b>New APIs:<\/b><\/p>\n<ul>\n<li>senses->acceleration quick\/smooth\/stable: Access to accelerometer<\/li>\n<li>locations->*: Access to GPS\/geo-coordinates<\/li>\n<li>maps->*: Access to Bing maps<\/li>\n<li>languages->*: Access to Bing- and Hawaii-based translation services<\/li>\n<li>web->search *: Searching the web with Bing<\/li>\n<li>tile->*: Configuration of script tile properties<\/li>\n<li>math->create number map: charting functionality<\/li>\n<\/ul>\n<p><b>API changes:<\/b><\/p>\n<table style=\"height: 454px;\" width=\"619\">\n<tbody>\n<tr>\n<td><b>old API<\/b><\/td>\n<td><b>new API<\/b><\/td>\n<\/tr>\n<tr>\n<td>engine->assert<\/td>\n<td>time->fail if not<\/td>\n<\/tr>\n<tr>\n<td>engine->stop<\/td>\n<td>time->stop<\/td>\n<\/tr>\n<tr>\n<td>phone->sleep<\/td>\n<td>time->sleep<\/td>\n<\/tr>\n<tr>\n<td>phone->now<\/td>\n<td>time->now<\/td>\n<\/tr>\n<tr>\n<td>json->get field<\/td>\n<td>json->field<\/td>\n<\/tr>\n<tr>\n<td>json->get boolean<\/td>\n<td>json->boolean<\/td>\n<\/tr>\n<tr>\n<td>json->get number<\/td>\n<td>json->number<\/td>\n<\/tr>\n<tr>\n<td>json->get string<\/td>\n<td>json->string<\/td>\n<\/tr>\n<tr>\n<td>senses->snap camera picture<\/td>\n<td>senses->take camera picture<\/td>\n<\/tr>\n<tr>\n<td>senses->has camerea picture<\/td>\n<td>senses->has taken camera picture<\/td>\n<\/tr>\n<tr>\n<td>senses->camera picture<\/td>\n<td>senses->taken camera picture<\/td>\n<\/tr>\n<tr>\n<td>web->deep zoom link<\/td>\n<td>web->link deep zoom<\/td>\n<\/tr>\n<tr>\n<td>web->hyperlink<\/td>\n<td>web->link url<\/td>\n<\/tr>\n<tr>\n<td>web->image link<\/td>\n<td>web->link image<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>v1.0.0.0 beta #0 (4\/9\/2011)<\/h3>\n<p>Read the <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/blogs.msdn.com\/b\/nikolait\/archive\/2011\/04\/09\/announcing-touchstudio.aspx\">announcement blog post<span class=\"sr-only\"> (opens in new tab)<\/span><\/a> for an overview.<\/p>\n<ul>\n<li>v2.10.0.0, 8\/28\/2012<\/li>\n<li>v2.9.0.0, 6\/25\/2012<\/li>\n<li>v2.8.0.0, 5\/26\/2012<\/li>\n<li>v2.7.0.0, 3\/21\/2012<\/li>\n<li>v2.6.0.0, 2\/21\/2012<\/li>\n<li>v2.5.0.0, 12\/20\/2011<\/li>\n<li>v2.4.0.0, 11\/11\/2011<\/li>\n<li>v2.3.0.0, 10\/7\/2011<\/li>\n<li>v2.2.0.0, 9\/13\/2011<\/li>\n<li>v2.1.0.0, 8\/18\/2011<\/li>\n<li>v2.0.0.0, 8\/2\/2011<\/li>\n<li>v1.2.0.1, 5\/27\/2011<\/li>\n<li>v1.1.0.0, 5\/2\/2011<\/li>\n<li>v1.0.0.0, 4\/9\/2011<\/li>\n<\/ul>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/li>\n\t\t<li class=\"m-0\" data-wp-context='{\"id\":\"accordion-content-8\"}' data-wp-init=\"callbacks.init\">\n\t\t<div class=\"accordion-header\">\n\t\t\t<button\n\t\t\t\taria-controls=\"accordion-content-8\"\n\t\t\t\tclass=\"btn btn-collapse\"\n\t\t\t\tdata-wp-bind--aria-expanded=\"state.isExpanded\"\n\t\t\t\tdata-wp-on--click=\"actions.onClick\"\n\t\t\t\tid=\"accordion-button-7\"\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\tCollaborators\t\t\t<\/button>\n\t\t<\/div>\n\t\t<div\n\t\t\taria-labelledby=\"accordion-button-7\"\n\t\t\tclass=\"msr-accordion__content\"\n\t\t\tdata-wp-bind--inert=\"!state.isExpanded\"\n\t\t\tdata-wp-run=\"callbacks.run\"\n\t\t\tid=\"accordion-content-8\"\n\t\t>\n\t\t\t<div class=\"msr-accordion__body\">\n\t\t\t\t<h2>External Collaborators<\/h2>\n<p><span id=\"66a74b4a-b61c-409a-9e0c-cc361025f885\" class=\"ImageBlock fn\"><img decoding=\"async\" id=\"Image66a74b4a-b61c-409a-9e0c-cc361025f885\" src=\"https:\/\/www.microsoft.com\/en-us\/research\/wp-content\/uploads\/2016\/02\/touchdevelop-nigel-small.jpg\" alt=\"\" \/><span id=\"ImageCaption66a74b4a-b61c-409a-9e0c-cc361025f885\" class=\"ImageCaptionCoreCss ImageCaption\"><\/span><\/span><\/p>\n<p><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/webhome.cs.uvic.ca\/~nigelh\/\">Nigel Horspool<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>University of Victoria<\/p>\n<h2>(Former) Interns<\/h2>\n<ul>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/sites.google.com\/site\/xushengxiaoshome\/\">Xusheng Xiao<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/marat-akh.in\/\">Marat Akhin<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.touchdevelop.com\/bvqn\">Grant Bronsdon<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.touchdevelop.com\/zkrp\">Marina Golubtsova<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/iacoma.cs.uiuc.edu\/students\/duan.html\">Yuelu Duan<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/csiflabs.cs.ucdavis.edu\/~vmle\/\">Vu Le<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.touchdevelop.com\/zyke\">Angela Rocchi<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/junkato.jp\/\">Jun Kato<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li>Michaela Montstream<\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/ru.linkedin.com\/in\/mikhailbelyaev\" target=\"_blank\">Mikhail Belyaev<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/www.ic.unicamp.br\/~ra045840\/\" target=\"_blank\">Rafael Auler<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/www.linkedin.com\/pub\/jake-magill\/50\/561\/5b\" target=\"_blank\">Jake Magill<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"https:\/\/www.touchdevelop.com\/nvqya\" target=\"_blank\">Zach Frohardt<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<\/ul>\n<h2>(Former) Visiting Researchers<\/h2>\n<ul>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" href=\"http:\/\/ranger.uta.edu\/~csallner\/\" target=\"_blank\">Christoph Csallner<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<\/ul>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/li>\n\t\t<li class=\"m-0\" data-wp-context='{\"id\":\"accordion-content-10\"}' data-wp-init=\"callbacks.init\">\n\t\t<div class=\"accordion-header\">\n\t\t\t<button\n\t\t\t\taria-controls=\"accordion-content-10\"\n\t\t\t\tclass=\"btn btn-collapse\"\n\t\t\t\tdata-wp-bind--aria-expanded=\"state.isExpanded\"\n\t\t\t\tdata-wp-on--click=\"actions.onClick\"\n\t\t\t\tid=\"accordion-button-9\"\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\tLinks\t\t\t<\/button>\n\t\t<\/div>\n\t\t<div\n\t\t\taria-labelledby=\"accordion-button-9\"\n\t\t\tclass=\"msr-accordion__content\"\n\t\t\tdata-wp-bind--inert=\"!state.isExpanded\"\n\t\t\tdata-wp-run=\"callbacks.run\"\n\t\t\tid=\"accordion-content-10\"\n\t\t>\n\t\t\t<div class=\"msr-accordion__body\">\n\t\t\t\t<ul>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"https:\/\/www.touchdevelop.com\/\">touchdevelop.com<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/facebook.com\/pages\/TouchDevelop\/135666819851249\">TouchDevelop on Facebook<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<\/ul>\n<p>You might also like:<\/p>\n<ul>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/pex4fun.com\/\">Pex4Fun<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, also as a <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/redirect.zune.net\/External\/LaunchZuneProtocol.aspx?pathuri=navigate?phoneAppID=db980958-7c4a-e011-854c-00237de2db9e\">WP7 game<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<li><a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/rise4fun.com\/\">Rise4Fun<span class=\"sr-only\"> (opens in new tab)<\/span><\/a>, also as a <a class=\"msr-external-link glyph-append glyph-append-open-in-new-tab glyph-append-xsmall\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"http:\/\/social.zune.net\/redirect?type=phoneApp&id=c7565db5-1d50-e011-854c-00237de2db9e\">WP7 app<span class=\"sr-only\"> (opens in new tab)<\/span><\/a><\/li>\n<\/ul>\n<p>Associated research groups:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.microsoft.com\/en-us\/research\/group\/rise-working-group-on-program-analysis\/\">RiSE<\/a><\/li>\n<\/ul>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t<\/div>\n\t\n","protected":false},"excerpt":{"rendered":"<p>Create apps everywhere on all your devices! For Windows Phone and the web. In the TouchDevelop programming environment you write scripts by tapping on the screen. You do not need a separate PC or keyboard. Scripts can perform various tasks similar to regular apps. Any TouchDevelop user can install, run, edit, publish scripts. You can [&hellip;]<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"msr-url-field":"","msr-podcast-episode":"","msrModifiedDate":"","msrModifiedDateEnabled":false,"ep_exclude_from_search":false,"_classifai_error":"","footnotes":""},"research-area":[13554,13560],"msr-locale":[268875],"msr-impact-theme":[],"msr-pillar":[],"class_list":["post-170758","msr-project","type-msr-project","status-publish","hentry","msr-research-area-human-computer-interaction","msr-research-area-programming-languages-software-engineering","msr-locale-en_us","msr-archive-status-active"],"msr_project_start":"2011-07-20","related-publications":[238011,168409,167997,238359,167514,166362,166131,164503,164607,163370,162742,161962,161761,161633,161174,161988],"related-downloads":[],"related-videos":[187107,187741,188114,188172,188324,188656],"related-groups":[],"related-events":[],"related-opportunities":[],"related-posts":[287447],"related-articles":[],"tab-content":[],"slides":[],"related-researchers":[{"type":"user_nicename","display_name":"Peli de Halleux","user_id":32253,"people_section":"Group 1","alias":"jhalleux"}],"msr_research_lab":[199565],"msr_impact_theme":[],"_links":{"self":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/170758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project"}],"about":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/types\/msr-project"}],"version-history":[{"count":3,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/170758\/revisions"}],"predecessor-version":[{"id":477693,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-project\/170758\/revisions\/477693"}],"wp:attachment":[{"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/media?parent=170758"}],"wp:term":[{"taxonomy":"msr-research-area","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/research-area?post=170758"},{"taxonomy":"msr-locale","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-locale?post=170758"},{"taxonomy":"msr-impact-theme","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-impact-theme?post=170758"},{"taxonomy":"msr-pillar","embeddable":true,"href":"https:\/\/www.microsoft.com\/en-us\/research\/wp-json\/wp\/v2\/msr-pillar?post=170758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}