element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
STEM Academy
  • Learn
  • Learning Center
  • STEM Academy
  • More
  • Cancel
STEM Academy
Blog TouchDevelop: A Killer Programming Language
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join STEM Academy to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 15 Jul 2015 9:44 PM Date Created
  • Views 2176 views
  • Likes 5 likes
  • Comments 13 comments
  • programming_languages
  • scratch
  • stem
  • python
  • microsoft
  • micro_bit
  • touch_develop
  • microbit
  • programing
  • arduino
  • touchdevelop
  • stem space
Related
Recommended

TouchDevelop: A Killer Programming Language

shabaz
shabaz
15 Jul 2015

Introduction

Up until yesterday, I’d not seen a programming language which would go from a graphic oriented (pseudo Scratch-like) environment to a conventional source code view, from browser based execution to microcontroller execution, to mobile phone app execution. It was possible however to achieve all of this within a matter of hours!

 

image

TouchDevelop is a programming language created by Microsoft – it can instantly run in a web browser if Internet connectivity is available, otherwise it can be locally installed too to run as a local web server. I tested a quick local install on Linux but of course it can be installed on Windows too.

 

TouchDevelop will be used with the micro:bit that Element14 and the BBC have developed together with Microsoft, ARM, Freescale and others as well as product champions including the IET and Cisco.

 

What can it do? How does it work?

Some key characteristics are:

• Browser based development environment (private server, or public cloud)

• Cloud storage of your programs

• Development environment optimised for touch interface for rapid copy/paste/delete and so on

• Forward/backward conversion between graphical block coding and text coding at any time

• Run anywhere - in a browser (i.e. any platform) or on hardware (microcontroller or mobile app for Android/IOS/Windows Phone)

• Will be supported for the micro:bit

• Open source – run local copies on any platform and OS (Linux, Windows, etc), and fork it and improve it!

 

This is how to use it to write code:

image

 

The nice thing is that programs can be developed anywhere and retained in a cloud provided you have a suitable account (based on delegated authentication so it doesn’t have to be a Microsoft account).

Although the install instructions were for Windows, it was relatively straightforward to install on Ubuntu and get coding.

Here is my attempt at turtle graphics:

image

 

There is also Arduino capability (see example code screenshot below) that can convert your program into C++ that can be used by the usual Arduino software tools – I didn’t get that compiling on Linux but I see no reason why this wouldn’t work with a little effort. The instructions for Windows are all published. With some more effort, other microcontroller platforms could in theory be supported since the output is standards based C++.

image

 

The screenshot above shows the blocks-based code view – clicking on the ‘plus’ symbol inserts a line. The syntax in blocks below changes dynamically as you create each row of the program.

Another option is to target your mobile device; if you have Android Studio and Apache Cordova installed then this is a quick affair (and I’ve never written a mobile app before) - here is the turtle program running on a Nexus device simulation:

image

 

As a personal opinion I think it is a far easier-to-use language than Scratch or Python, and the libraries and development environment are geared for modern scenarios where people want to be able to write code rapidly anywhere on any machine, even touch-based machines (e.g. iPads), and still have the flexibility to convert to the (relatively) low-level C++ so that native code can be built too, to run on as many different platforms as possible including resource-constrained ones such as Arduino.

 

Summary

The above was a very quick examination of TouchDevelop’s main features and what it could do. No real steps recorded since I was just exploring, but I think it is highly interesting and worthy of further investigation.

 

I think it is extremely powerful to have a single, simple language to learn for young and older people, and yet be able to target so many scenarios. The ability to write and access the code easily from any device is a significant advantage too.

 

A Getting Started guide will follow and will be indicated here so click on the Bookmark button if you’re interested to read it.

  • Sign in to reply

Top Comments

  • shabaz
    shabaz over 10 years ago in reply to ntewinkel +3
    Hehe I noticed that, the tutorials point out exactly where to click, so it is impossible to code wrong! Very well implemented.
  • ntewinkel
    ntewinkel over 10 years ago in reply to mcb1 +2
    She's a really good web designer, and has fixed plenty of issues with WordPress (which is kind of like coding I suppose), but she's never done any application coding. Recently she's been designing the…
  • mcb1
    mcb1 over 10 years ago +1
    Nice ... 12blocks is a similar concept http://onerobot.org/products/12blocks/ Mark
Parents
  • ntewinkel
    ntewinkel over 10 years ago

    Awesome! I just built a flappy-bird game by following the tutorial image

    VERY easy!  It seems that TouchDevelop has all the building blocks that are required for building games already included!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 10 years ago in reply to ntewinkel

    Hi Nico,

     

    Very cool : ) Do share it once you have perfected it hehe. I'm programming with it on my phone as we speak, while waiting at an airport : )

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • ntewinkel
    ntewinkel over 10 years ago in reply to shabaz

    Hehe oops I threw it out (as in closed the browser window) after I showed it to my dearest. I'm still trying to get her into coding, but still no luck image. I really thought Flappy Bird would do the trick!

     

    The tutorial and the dev environment are so easy though, it won't take long to do it again. And I'm not saying that as a software guy - I mean the tutorial actually tells you exactly what to select and type, and even warns you if you type the wrong thing!

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mcb1
    mcb1 over 10 years ago in reply to ntewinkel

    I'm still trying to get her into coding

    I thought she was already a sucessful programmer ...

     

     

     

    last I heard she had you follwing her to the shopping mall. image

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz over 10 years ago in reply to ntewinkel

    Hehe I noticed that, the tutorials point out exactly where to click, so it is impossible to code wrong! Very well implemented.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • shabaz
    shabaz over 10 years ago in reply to ntewinkel

    Hehe I noticed that, the tutorials point out exactly where to click, so it is impossible to code wrong! Very well implemented.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube