Hacker News new | comments | show | ask | jobs | submit login
Microsoft TouchDevelop (github.com)
500 points by pykello on May 14, 2015 | hide | past | web | favorite | 71 comments



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.


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.


Microsoft Research is strongly expected to have an impact on the business side of things. It just so happens that Microsoft is willing to incubate projects like Midori* that have long runways (decade+) and may completely fail. The hope is that some new emerging tech long plays will become huge business boons (Cortana, Kinect, ..). There's lots of investment in NLP, vision, and OS research over at MSR.

As far as other tech companies with large R&D budgets, look at Google. However, Google's R&D investment areas are different than MSFT's (apparently they don't do OS research): http://money.cnn.com/2013/11/20/technology/mobile/apple-rd-s...

* http://en.wikipedia.org/wiki/Midori_(operating_system)


Is it? I suppose I just assumed it wasn't expected to have any impact on the business side of things as they are the only company (again besides IBM) that does research in theoretical computer science. Not only that but they publish all their results in public.

I know that Google also does a lot of R&D but from what I can tell, it's usually directly related to what they are doing.


Peter Norvig wrote an article "Google's Hybrid Approach to Research" http://research.google.com/pubs/archive/38149.pdf


Microsoft Research is full of very cool projects like Singularity, Drawbridge, Midori, Barrelfish, Bascule, M#, F#, F*. Also sponsoring Haskell and OCaml.

And these are only the subjects I personally care about.

.NET compilation to native code via MDIL (Windows 8) and .NET Native, F#, Windows containers are some examples of work that started at Microsoft Research.


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.


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.


The ones who care about building stuff in an environment that's more or less the only one of its kind, and where the definition of a successful research project isn't "we published a paper" but rather "we enabled a product that hundreds of millions of people will use more so than any other object in their life".


It might be an evolution of Microsoft Small Basic - an easy programming language for beginners with a simple IDE: http://en.wikipedia.org/wiki/Microsoft_Small_Basic


Any company worth its salt and isn't cash strapped would have an rnd/skunkworks arm, this has been the case since the 1900s.


TouchDevelop has been around for quite a while; I remember first installing it on my WP7 phone back in 2012. I'm very happy to see the editor open-sourced.

I think this is a great example of Microsoft's new-found desire to promote learning and openness, rather than fight against it as they did in the past. My opinion of them over the past few years has slowly been swinging towards positive, and even though I'll likely never give up on Slackware and OpenBSD on the desktop and the server, I'm happy to see this new vision bearing fruit.


All that glitters isn't gold. Wake me up when Microsoft makes a serious effort to make Visual Studio a cross platform development suite.

We all know the only reason this exists is because Microsoft has little traction in the smartphone market and app developers won't target their hardware. If Microsoft phones were the market leader they would not give two fucks about portability.


https://code.visualstudio.com/#alt-downloads

I mean it's not everything, give them a little time though.


https://dev.windows.com/en-US/uwp-bridges/

Sounds like a serious effort to allow you to develop native iOS apps in VS instead of xcode. You're right the motivation is heavily to minimize the cost of porting/releasing iOS apps to WP/Windows.


(Speaking as someone who knows the folks behind the project) Actually, the reason this exists is because Peli, Nikolai and some other folks wanted to create a way to program your phone using only the phone (i.e. how do you make apps for your phone if that's your only device).


At the rate Microsoft has been releasing open source code and porting .NET over, I wouldn't be too surprised to see Visual Studio geared towards cross-platform development. They did already launch "Code" which, admittedly, doesn't hold a candle to VS. It looks to me like they're slowly releasing more and more framework tools so that VS running on OSX could actually be a possibility.


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...) 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?


>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 :)


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.


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!


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.


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/

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.


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.


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.


It's the same project that was released for Windows Phone 7. The original name was TouchStudio. It became TouchDevelop around the time Windows Phone 8 came out, IIR.


Here's the landing page: https://www.touchdevelop.com/


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


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/) 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 for more history.


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


>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.


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...


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


Wow, supercool, thanks!


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!


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.


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/


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


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.


Microsoft is becoming truly awesome!


Here's some info about the language used:

https://www.touchdevelop.com/docs/language


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?


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".


An alternative: 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."


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.


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


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.


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


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.


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.


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.


Input of Chinese/Japanese characters.


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.


No way. Nobody is going to take my keyboard away and have me poking one finger around on a smudgy screen, and still call it programming. So many ways that is worse. Pipe dream.


I know right? Touch screens are just perfect for finger painting. Still, I prefer an Etch-a-Sketch if rectilinear lines are required.


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


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.


This paper: http://research.microsoft.com/en-us/um/people/moskal/pdf/bey... 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.


This paper describes some aspects of the system: http://research.microsoft.com/pubs/189242/pldi097-burckhardt...


They also support compiling their language to Arduino C++.


>> 253523 scripts published

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


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


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


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


Wow .

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


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


Heads up: build failing + dependencies out of date.


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

http://i.imgur.com/QVzTlqD.png


Chrome is certainly one of the supported browsers, and we do use TouchDevelop on desktop all the time. This is actually fixed in our beta version, see https://www.touchdevelop.com/app/beta


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


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




Applications are open for YC Winter 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: