Tech politics aside, kudos to you Microsoft.
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...
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.
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?
While TouchDevelop is really cool, it's been a few years since it came out :)
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.
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!
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.
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.
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.
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
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.
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!
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.
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/LivelyKernelI'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.
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?
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".
"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."
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.
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.
That's quite a large repository. Do they have collaborations with schools and organizations helping kids code?
Does anyone know which framework they've used to make this ?