
Microsoft TouchDevelop - pykello
https://github.com/Microsoft/TouchDevelop
======
alexggordon
When I see tools like this, that allow children and adults to make things,
using the same platform, I can only think Microsoft is it literally investing
in the future. It's so easy to get wrapped up in what a tech company can
produce now, or in a year that often times people forget about creating
awesome tools. Tools last a lot longer than platforms or devices. While
Minecraft is a slightly different example, its core success is simply that it
is a creativity tool for all ages and skill levels. When I look at something
like TouchDevelop, I see similarities. It's a tool that can let people create
awesome things, easily. Something that oversimplifies things at first, but
encourages and gives you the ability to push it farther if you desire.

Tech politics aside, kudos to you Microsoft.

~~~
rifung
Seems like this was made by Microsoft Research. I'd argue Microsoft Research's
very existence shows Microsoft is heavily invested in the future, more so than
any other tech company as far as I know. Maybe besides IBM I dont know any
other company that still funds research which isn't expected to have some
relationship to the business side of things.

~~~
amelius
They do so because all serious researchers will want to publish, as part of
their career building process. Therefore I can't understand what type of
researcher would want to work for a more closed company like e.g. Apple.

~~~
detaro
One who doesn't want to deal with the hassle of publishing. If you don't
intend on returning to academia/other places that care about it it isn't
necessary for career building.

------
alaskamiller
I'm glad all the MSFT research initiatives are getting attention and/or the
development stage. There's so much new amazing things to make the future so
shiny and great.

As Steve Jobs pointed out, MSFT's overall design and communications have and
are still... astoundingly nerdy. Yet this new MSFT, one that notes they made
something with WUV!, is such a departure from Micro$oft of yore.

This is almost... dare I say, embryonic of an earnest attempt at something
new? Almost as if this new MSFT is a startup of a corporation in a landscape
dominated by the most valuable corporation on earth (AAPL) and the most useful
corporation on earth (GOOG) and the most cutthroat corporation on earth
(AMZN).

I imagine in another year or two there will be a major overhaul of Microsoft's
design process to bring about cohesion. I'm hoping the likes of hiring Andrew
Kim ([http://www.minimallyminimal.com/blog/2012/7/3/the-next-
micro...](http://www.minimallyminimal.com/blog/2012/7/3/the-next-
microsoft.html)) and other young talents will greatly influence that as it is
sorely needed, much like how Google invested much into Matías Duarte and
Material design.

Wow, imagine that. When the old question was can Apple be Google faster than
Google can be Apple and now it's can Microsoft be Google faster?

~~~
dropit_sphere
>This is almost... dare I say, embryonic of an earnest attempt at something
new?

While TouchDevelop is really cool, it's been a few years since it came out :)

~~~
TheOtherHobbes
Which is true, but I've been thinking for a while there's a very interesting
company trying to get out from under the dead weight of the old 90s and 2000s
era MS.

A single product won't change the culture, but it's obvious the ship is being
steered in a different direction. Even if it takes a while to change course,
it's obvious cool new stuff is happening.

I only hope MS can sort out its management culture to take full advantage of
the cool new stuff.

------
boothead
I've been doing the hour of code with my 7 yr old daughter. She really enjoys
it, so much so that I now get bugged more to "do coding" than to help her with
her homework. She's going to love this!

As an aside - To all of you focused on making it easier for the next
generation to learn and use these skills:

Thank you so much!

------
orf
This is the coolest thing I've seen in a long long time. If I remember
correctly Microsoft released something similar for Windows Phone but the UI
was really clunky. This version (?) is amazing though, so much better.

I've just spent 10 minutes playing around and building a simple app sat on my
sofa, I highly recommend spending a little bit of time using this.

~~~
darkmighty
There's very good precedence too with Scratch and it's derivative Android App
Inventor (currently App Inventor 2), but it's nice that this is platform
independent! (it does miss out on some cool things that are platform
dependent, like fiddling with sensors and communication)

[https://scratch.mit.edu/](https://scratch.mit.edu/)

[http://ai2.appinventor.mit.edu/](http://ai2.appinventor.mit.edu/)

GUI-oriented programming has much to offer and I'm excited in developments in
this area, not only for kids but as a general enabler of coding without a
large learning period.

~~~
Moter8
We used both these in what would be 11th year / Age 16-17 (1º de Bachillerato)
in IT class (optional) in my highschool which is located in Spain.

Scratch was quite nice, we used the offline version. Sometimes it would
corrupt our files though, ugh.

AppInventor was also quite nice to use except that the internet slowed down
quite a bit when 20 people used it at once. It was not quite well-made as
Scratch imo.

Generally the people didn't care that much about learning this stuff, few if
any got interested in programming through these, sadly.

~~~
GuiA
16-17 is a little too old for Scratch. I've run dozens of Scratch workshops,
and they've managed to deeply engage the students, but they work best with
kids under 13 or so. Web programming, RPG Maker/Game Maker, Python/Ruby,
Processing, and Arduino are some platforms that work better with teenagers.

------
adamb_
Here's the landing page:
[https://www.touchdevelop.com/](https://www.touchdevelop.com/)

~~~
amadeusw
They have some cool tutorial that introduce coding to newcomers. extraordinary
Jetpack Jumper is my favorite! Every change to the code is annotated and
explained with a short video

------
neovive
It's great to see so many great investments in creative tools by Microsoft.

For those interested, Microsoft Studios (Team Dakota) has a great desktop/Xbox
One game called Project Spark
([http://welcome.projectspark.com/](http://welcome.projectspark.com/)) that is
essentially a 3D game builder enabling you to build 3D games from scratch or
"remixing" other games from the community. Games are constructed from visual
blocks called "Kode". It evolved from a previous XBox game called Kodu Game
Lab which was targeted strictly towards the education market [1]. You can
install Project Spark for free on Windows 8 (I have it running in a Bootcamp
partition on a Mac Mini and it performs well and is very fun).

[1] See
[http://en.wikipedia.org/wiki/Project_Spark](http://en.wikipedia.org/wiki/Project_Spark)
for more history.

------
janpieterz
Just played around with it a little bit!

Super interesting, can certainly see a couple of applicable use cases! The way
the tutorials are setup will actually be handy for education, certainly if it
would be possible to create your own tutorial.

Edit: Typo

~~~
mfisher87
>The way the tutorials are setup will actually be handy for education,
__certainly if it would be possible to create your own tutorial. __

WOW, that 's a good idea. The amount of work (and other resources) that goes
in to creating a high quality online tutorial really is much more than is
required to teach a concept well. Making tutorial-making easy would be a HUGE
win.

~~~
RotsiserMho
I had the same thought and found they have a section of the website devoted to
this. Very nice.
[https://www.touchdevelop.com/docs/creatinginteractivetutoria...](https://www.touchdevelop.com/docs/creatinginteractivetutorials)

~~~
mfisher87
There's even a "convert to tutorial" plugin... excellent foresight on MR's
part.

------
Cshelton
I haven't been able to check it out fully yet, but all this hour of code stuff
looks amazing!

Being able to launch a little tutorial project right in the browser with
videos and all, for free...great job Microsoft!

I'm not a teacher but I can already see the amazing educational potential
here. I love helping people who are learning to code, and then watching them
complete their first small project on their own, very satisfying; this is a
great tool.

Edit: The more I keep looking at this the more excited I get...really great
job Microsoft Research!

------
M4v3R
This is awesome. And what's even more cool, that it seems to be localized to
other languages! I'm a polish speaker, and when I launched one of the
tutorials (Jetpack Jumper), not only the interface was translated, but even
the intro video. I had friends that wanted to jump into programming but
couldn't start because of the language barrier. That could turn out as a great
tool for them!

Edit: Just noticed that they use Microsoft Translator for most of the
tutorials, but still kudos to them for taking time and providing a proper
translation in at least one of them.

------
turingbook
The web page from the TouchDevelop team at MSR is more helpful to know what
the project is: [http://research.microsoft.com/en-
us/projects/touchdevelop/](http://research.microsoft.com/en-
us/projects/touchdevelop/)

------
e12e
It's like lively-kernel[1] with a layer of Scratch on top -- except it doesn't
use WebDAV for storage, and you can't self-host the whole stack.

Still, very nice.

(Now I wonder if there's a service that allows you to list intersection of
contributer to github projects... hmm.. there's an api, isn't there:)

    
    
        npm install -g json
        cons=(https://api.github.com/repos/{LivelyKernel/LivelyKernel,Microsoft/TouchDevelop}/contributors)
        comm -12 <(curl -s ${cons[0]}|json -a login|sort)\
                 <(curl -s ${cons[1]}|json -a login|sort)
    
        #ed:spoiler alert: no overlap
    
    

[1]
[https://github.com/LivelyKernel/LivelyKernel](https://github.com/LivelyKernel/LivelyKernel)

------
codeshaman
Very nice. But why not have full keyboard support for the PC ?

I'm working on a very similar experimental editor for Clojure/lisp and my
intention is to make it vi-like - navigate and perform the edits with the
keyboard.

Some other ideas I'm experimenting with:

Customisable icons or even specific shapes for functions.

For example the function "show loading screen" can be represented as the
actual visual screenshot of the loading screen.

The idea is to get rid of most of the syntax and leave only the user-defined
names.

In 'interactive' mode, each form (block) can be executed and arguments can be
entered right inside it.

Each function block could have a 'back side', where all the meta data about
the function resides, like documentation and unit tests.

So visual programming is a new hot topic and there's a lot of stuff to explore
in this area.

------
interdrift
Microsoft is becoming truly awesome!

------
snarfy
Here's some info about the language used:

[https://www.touchdevelop.com/docs/language](https://www.touchdevelop.com/docs/language)

------
zmmmmm
I looked at this a while ago while seeking out a good language for my daughter
to learn some simple programming with. While I liked it, I can't help feeling
that all these "visual" substitutes for programming languages are counter
productive. It is so tedious to create even simple loops and logical
structures. Consider a simple for loop such as in python:

    
    
        for thing in ["cat","dog","tree"]:
            print thing
    

I can explain this to her and she can run it and see it do something, modify
it in small ways, etc etc. The same thing in TouchDevelop actually looks
_more_ complicated and is _harder_ to experiment with. I feel like we should
teach computer languages as _languages_ and not try to turn them into lego
blocks.

I'm curious if others feel the same way or not? Have people had success
starting with something like TouchDevelop and then transition to a non-visual
language? Or do kids just get good at playing in the visual sandbox and never
make the jump?

~~~
yukinon
Granted, it's not the same, but my programming career started with RPGMaker.
It's a point-and-click interface to make simple 2D RPG games for Windows. Much
of the point and click interfaces let you create programming constructs like
if-else conditions, go-to statements, and loops.

I was intimidated by the idea of using a real language, instead I liked just
pointing/clicking my way through things. This was the case until I wanted to
make something sufficiently complicated that doing it in RPG Maker would
create spaghetti code.

For me, after spending years playing with RPGMaker 2000 (I was 11 when I
started), moving onto a real programming language like Python was completely
effortless. It was a transition from "I need to click this to make this if-
condition" to "I need to write this if-condition here".

------
dyukqu
An alternative:
[http://www.algoid.net/index.php](http://www.algoid.net/index.php)

" _Algoid is an educational app that uses a simple but complete language
called Algoid Language (AL) to teach programming.

Target Audience: Kids, teenagers and adults interested in learning computer
programming._"

------
thebouv
Pretty cool. Just sent this to my daughter to look at as well. She liked
code.org's visual building, till it got in her way. This looks like you can
dive into actual code if you want to. I think she'll like that.

~~~
tarr11
I might integrate this into the web based platform we use to teach kids. Very
cool.

------
baggers
I'm very glad this project is available but somewhat surprised how in awe some
comments are here. How does this do a better job at teaching than etoys? Yes
being able to deploy easily is a big deal, but given the length of time the
smalltalk/squeak/etoys folks have been working on this idea I don't see how
this project is garnering the level of admiration it is from HN folks.

------
meritt
Oh. At first glance I thought this was simply a text editor that was actually
usable on a phone/tablet. Maybe one day...

~~~
0xffff2
I think you're going to need a hardware solution for that problem. No amount
of software will ever overcome the fact that touch screens are not efficient
input devices.

~~~
jng
Touch screens are much more efficient that keyboard and mice for some types of
input (not for others: e.g. typing). Not only that, the intuitiveness of an
obvious "hands-on" touch-screen interface allows toddlers to learn to use it
before they even learn to speak (I've seen it first hand, as I guess many
others must have). I believe there are forms of programming that can be done
better with a touch-based interface. It's just that programming languages and
tools have to evolve until we get there. When we get there, I believe it will
mostly obliterate the current approaches to programming, the same way we're
not entering machine code manually through a front-mounted panel with LEDs, or
writing assembly language. Of course some exceptions always remain.

~~~
Retra
Don't you think having your hands in front of the screen is inherently
problematic? It's hard to image where that would enhance efficiency.

~~~
s73v3r
Input of Chinese/Japanese characters.

~~~
freehunter
Being able to draw enhances that. Having your fingers in the way does not.
That's a use case for a stylus or a pen, as they don't block your vision
nearly as much as a hand does.

------
haberdasher
Am I the only one that found this cumbersome? That struggled to write a "hello
world" in under 5 minutes?

------
Isamu
Very interesting! So the language looks similar to Scratch and Blockly, but
targeted to mobile web. I would like to see a comparison overview.

Anyone have a link to a published paper? This is from Microsoft Research so I
would expect there to be one, eventually, relating this to similar efforts.

~~~
mmoskal
This paper: [http://research.microsoft.com/en-
us/um/people/moskal/pdf/bey...](http://research.microsoft.com/en-
us/um/people/moskal/pdf/beyond-open-source.pdf) describes the basic idea
behind integrating an IDE, GitHub-like collaboration, and an app store.

The main thing about the interface it's that it's touch-optimized and has this
unique semi-structured editor, where the expressions (as opposed to
statements) are edited token by token, and not as a tree. This was proven to
work better on touch-devices.

------
myth_buster
>> 253523 scripts published

That's quite a large repository. Do they have collaborations with schools and
organizations helping kids code?

------
M8
I was always thinking it's C# and XAML, but it's actually JS :(.

------
vjdhama
It somewhat looks like better and flatter version of scratch by mit.

------
istvan__
I really enjoy the beginner mode, much more fun than using vi :)

------
throwaway43
Wow .

Does anyone know which framework they've used to make this ?

~~~
alexggordon
Looks like they custom rolled a bunch of custom stuff on top of Node, if
that's what you're referring to.

------
rileyt
Heads up: build failing + dependencies out of date.

------
neals
Little buggy on desktop chrome, but may that is not the intended browser?

[http://i.imgur.com/QVzTlqD.png](http://i.imgur.com/QVzTlqD.png)

~~~
daok
Chrome is definitely in Microsoft intended browser. Most of the dev are using
Chrome at Redmond while developing.

~~~
frik
MS should do more dogfooding of their IE11/Edge "F12" developer tools. "F12"
is years behind Chrome&Firefox dev tools.

