Hacker News new | comments | show | ask | jobs | submit login
Microsoft releases tool for creating Windows 8 apps in the browser (touchdevelop.com)
175 points by kyriakos 1638 days ago | hide | past | web | 68 comments | favorite



To add some context to the title, this isn't a traditional IDE in the browser.

It's a kind of experimental touch-centric IDE with it's own semi-visual programming language (your not exactly dragging boxes around, but your not editing text either).

I only played with it for 2 minutes, but it's apparent that this is a "research" project. It's not meant as a replacement SDK for whatever is the de facto standard for Win8 apps.


DeFacto Standard is Visual Studio Express (free with basic info). Allows you to develop in any of the Windows 8 UI supported languages, including Javascript. About halfway done with my first game (a visual novel), and I could see where down the line being able to pick up my work wherever I am and whenever I have a few minutes could be very useful. Would love to setup an IDE pointing to Dropbox for assets etc. Of course I am hopeful that the Surface Pro will make this a little more possible as well.


Yep, this started as an app on WP7 from MSR. You could download and share various scripts/apps. The app was a little clunky but neat.


The first version was called "TouchStudio."


This is very impressive.

I got further with this in fifteen minutes on my iPhone lying in bed than an hour last night with the Windows Phone 8 SDK.

The APIs seem nicely designed and the interface works surprisingly well on a phone. I haven't seen anything else as likely to democratize programming since Click 'n Play back in the 90s.

It would be nice to see some kind of automatic wrapper facility for the full API, even if the syntax became necessarily horrible and it was hidden behind an expert panel. Sooner or later every large project will want to step beyond the bounds of the current garden, I think.


Initially released as a Windows Phone 7 app only, the driving force was to treat mobile as first class computing devices. Think QBASIC for mobile to allow user scripting of the device.

That idea is important because mobile phones are the way in which most of the world can experience owning a computer. Touchdevelop on the phone allows a poor Kenyan to express her potential as a programmer without obtaining a traditional computer.


Oh Microsoft... so it works on iOS Safari, but not on their own Internet Explorer on Windows Phone 8 :(


For windows phone 7 and 8 there is a native free app in the marketplace. Try that.


correct me if I am wrong, but I dont think he said anything about the iOS safari and internet explorer on windows phone. More like.. Because of this web version, he went further with windows development than when he tried to start with actual windows phone 8 development on his computer..


In order for Windows 8 to be a success from an app development standpoint, MSFT needs to make their apps the easiest to develop. Their SDK must be the best. They should have starter projects, and go crazy on supplying developer resources & starter apps. They need to make apples development & submission process look and feel outdated.

Windows is and will remain a huge OS with a ton of opportunity, but MSFT needs to do a better job incentivizing developers to build apps. Make it the easiest platform to get started with.


Developers want a market (consumers), consumers want content (by developers). A classic chicken-egg feedback loop.

Easier to develop apps is just one point that can ease the feedback loop, but its not sufficient...nor is it shockingly necessary (just look at Apple).

Disclosure: MSFT employee, just sharing what I've learned about platforms (and what many probably already know).


Learning curve != ease. The niceness of Cocoa Touch is one of the things that keeps me working on Apple's platform.


My point was that barriers don't matter much when you have a healthy market to receive your app. So while we might work on lowering barriers, its all for not if the store is a ghost town. This is very humbling to us PL/tools researchers.

What keeps you working on Apple's platform is the popularity of the app store, if you couldn't get customers; you would leave in a heart beat for a platform that had a healthier market. Look at all the people who learned Objective C...not because it was the best language, but because it was a technical barrier that was necessary to overcome to access a healthy market (and technical barriers are much easier to overcome than market barriers!).


I enjoy the aesthetic of Windows 8 and was really excited to start messing around with app development as a new hobby project. The WinRT API, though... it's very bare.

Perhaps I was naive thinking the WinRT API would be similar to .NET, but Microsoft could have made it much, much simpler for current .NET developers to start working with WinRT.

My biggest gripe is that WinRT seems to be 100% focused on mobile/tablet platforms. My laptop has Windows 8 and I spend all of my time in the desktop, away from apps. Why? Because there's a lack of "real" applications in the Windows 8 Store. Writing system utilities for a more technical audience is almost impossible. They replaced the excellent System.IO namespace with the Windows.Storage namespace, which doesn't give you access to much of the computer's actual storage [1].

Hopefully I'm wrong and someone posts a reply with an easy way to search through the computer's files and folders, but I'm not getting my hopes up.

[1] http://msdn.microsoft.com/en-us/library/windows/apps/windows...


>They replaced the excellent System.IO namespace with the Windows.Storage namespace, which doesn't give you access to much of the computer's actual storage

For security reasons. You can open a file picker, but you can't just spider directories on the hard disk, because Windows 8 has quite restrictive sandboxing.


Although for most purposes you can tell it to just use the "defined" Documents space (effectively user/MyDocuments) which means you shouldn't HAVE to worry about spidering down directories for your save files and such.

Not associated with MS, but currently developing for the Windows Store :-)


The typical mode of operation is developing apps in TouchDevelop and running them in TouchDevelop, in the browser (or the WP7 app). If you want, you can also export the apps and sell them in the store, but you will need a dev account.

TouchDevelop is a research project exploring programming paradigms that are more touch-centric.

Think of it as a way of programming your phone or tablet, whatever it may be, on the device itself.


Will Microsoft be seriously backing the TouchDevelop project as a commercial effort? (ie. marketing it to developers and cultivating a community?)

I have the feeling TouchDevelop is what a next generation IDE should feel like. Not just with the touch-friendly editor, which is nice, but also how the rest of the IDE is constantly reacting to what is happening in the editor.

Is the web-app a subset of the WP7 project? Will it be possible to define types like the 'Board' type in the demo? Perhaps by linking to javascript(/typescript) libraries? (the library functionality didn't work for me in Chrome so I assume it's just not implemented yet)

Congratulations on creating a truly impressive IDE :)


Thanks!

TouchDevelop is a research project, and as of now there are no plans of full-scale productization.

The webapp supports all programming language features of the WP7 app (and some more ;-). Not all library APIs are implemented though (some are obvious - it doesn't make phone calls - some are just still missing).

If something didn't work with the libraries for you, let us know!

It is possible to define record types (with fields but not methods). You can also define libraries operating on these. Libraries can be parametrized, much like functors in ML (but without the heavy type system). The interaction between records and libraries is not fully worked out yet, but we're working on it, time permitting.

Note that TD is not an object-oriented language - there is no inheritance or subtyping. I myself intend to keep it this way :) Still, we want to have something akin to C#'s extension methods as far as the syntax goes (i.e., method lib1->m(x:t,y:number) could be invoked as x->t(10)).


I can understand not wanting inheritance or subtyping, but then I think the language needs at least first class functions. Extension methods would be great. Perhaps you could have typeclasses like in Haskell?


"Sign in using your account on: Windows Live, Facebook, or Google"

Wow, that's really inclusive! I don't see Google or Apple reciprocating anytime soon...

I wonder if Google credentials can also be used to submit the final app in the Windows Marketplace.


I actually use my Google email address to log into my Windows account too - they know we don't want yet another email address to manage.


Clicking through the intro this was (oddly) one of the biggest thing for me.

> "We need to log you in first."

Argh...

> "You can login with your Microsoft, Facebook, or Google account."

... oh, yay! Microsoft figured out OpenID/OAuth!


Looks like Microsoft Research hasn't noticed Windows Live doesn't exist any more. It should say Microsoft Account.


BOOM. It's moves like this that are going to ensure that Windows 8 prevails in the end. I hate to make the comparison, but Microsoft's only competitor is Apple and now that Jonny Ive is helping out with the design aspects of not just the products but interfaces, Microsoft have forced Apple's hand so-to-speak.

I doubt we'll be seeing Apple make a web-based touch interface for building applications, but it'll no doubt force them to consider something because Microsoft are starting to make me even consider trying to build an app. And out of a C based language and web based builder, which has the lesser learning curve?

Very smart move. Well played, Microsoft.


I think you're being a little too optimistic here. There is no shortage of web-IDE or foo-Touch on any platform. They're all poping up for all the platforms at the same time, this is not some edge Windows 8 has over other platforms. (If there is any edge at all, it's probably Visual Basic 5.0 or later)

Windows 8 will succeed not because it has a web-based toy for making toy apps, but because people still want to run Windows95 applications.


Agreed, there are lots of tools like this around.


Microsoft's competition isn't just Apple, in fact I would say that their real competition is Google/Samsung which seems to be replacing what was Microsoft/Intel.

Also while easy to make apps is a great idea, sadly it may not be a game changer. If you look back at HyperCard it was a cool product, but it didn't save Apple from almost going under by the mid-90s.


>I would say that their real competition is Google/Samsung

Having just picked up one of the new ARM based Chromebooks, I am inclined to agree. Until now I have never fully appreciated how complete Google's offerings are, from paid apps in the Chrome web store to paid movies on YouTube... to say nothing of the inventory size of both.


I've only really seen screenshots of metro but this app looks like a bad recreation. Are the colors usually that bright and are the fonts that padded?


This is admittedly poorly executed and doesn't really follow a lot of metro conventions.


This was a very smart move on Microsoft's part. They recognized and accepted the fact that almost all the developers behind the most popular apps on Android and iOS are running OS X. Releasing an OS X IDE to cater to those developers would have been admitting defeat to Apple in that arena, so they cleverly sidestepped the issue by just creating a web-based IDE instead.


Could you please provide some hard numerical reference that shows that "almost all the developers" that produced "the most popular apps on Android and iOS are running OS X". That would be a great cross referenced treasure trove of data. It seems absurd and borderline illogical that one does not come to have contact with such a fountain of proof that supports the stated inference. This would be an invaluable source. Thank you in advance.


I'm not saying that asking for hard proof is ever a bad thing, but I will say that it's not illogical to make this claim without.

Anecdotally, I know exactly 1 programmer TOTAL that does not use a mac laptop when they develop out of the dozens that I know, and he just got hired at Microsoft. I know several that use Windows desktops, but exactly 1 that doesn't have a mac laptop.


Small detour; logic is a funny thing because it can be countered by insufficient measures of extent and intent even when it is expressed in the form of presentable proof. So assuming a counter point of view would also be acceptable by your own process of reasoning if an anedoctal could express it. That tells me you recognize your own confirmation bias and so should I recognize mine.

Had the poster said "the majority" instead of "almost all" it would have been much more agreeable to my own impression and my own limited anedoctal experience wich makes up the extent.

But I do take your response in the same good candid nature that you meant it. Still, a cross referenced data set on this you proposed would be amazing.


I'd like that too actually. Personally I think the fact that devs I know feel like they HAVE to have a Mac is a sign that Apple's growth is possibly not finished. w


This is a re-release from MS their secret weapon; http://rise4fun.com/. MS research is really good and they are working on important things other companies ignore. I think Norvig is not ignoring them but working on them from a totally different angle which will roll out in the coming years, but that's offtopic.


The on-screen keyboard reminds me of the good ol' days of ZX Spectrum (each key had a command assigned to it, you typically wouldn't type the commands but press the corresponding button)

http://zxspectrum48.i-demo.pl/zx-spectrum_keyboard.jpg


So I signed in, going to change my username and it says 'nickname is too short' (at least 8 characters). I uploaded my avatar image, it says 'Only proper JPEG files allowed' :(


If this was a social network, I'd understand your frustration. It's a developer tool tho — not sure what you expect.


It's meant to be an experimental app. I'm surprised it does so much already.


Am I the only one who finds the design and layout totally confounding on their desktop browser?

Might flow smoother on a touch tablet?


It seems very nice. It was originally an app for Windows Phone 7 [1], released something like one year ago.

[1] http://www.windowsphone.com/fr-fr/store/app/touchdevelop/fe0...


Still, I wouldn't say this http://imgur.com/pUlXu is the best way to drive adoption amongst the Microsoft faithful. Yes I know they need to draw the line somewhere, and IE9 (maybe IE anything... haven't tried 10) sucks, but this is quite a departure from the general Windows stance of "backwards compatibility at all costs" (why their hosts file still lives in an 'etc' directory is beyond me, for example).

Additionally, if you have cookies disabled it just sits there on the loading screen (in FF 17 at least) - I thought it was just broken at first.


It's a research project, not an actual product MS wants to sell. So how is this different from the dozens or hundreds of bleeding-edge experiments that demand a current version of Chrome/FF to work and refuse to do anything on any other browser?


As I said in my comment, it's not how Microsoft have done things, ever. IE10 isn't even shipping as a final product for the most widely deployed version of Windows, and Windows 8 has basically no market share.

The difference with Mozilla and Google is I don't need to migrate my entire OS to use their experimental stuff.


EDIT: I'm wrong. See Dan's helpful reply about exporting to a Windows 8 app.

---

I think the title is wrong. This doesn't look like it has anything to do with creating Windows 8 apps.


It's accurate. Once you create an app and publish it, you'll find an "Export to Windows Store" button. You need to sign up for a developer account and download the SDK (part of Visual Studio 2012 Express, free) to publish to the store, but this site will do all the work of giving you the app to publish.


Does that mean it only runs on Windows 8 Pro, or does it also run on Windows RT devices?


TouchDevelop runs in IE10, Chrome (including on Android), Firefox, Safari (on Mac and iOS). You can run apps you create right away, inside TouchDevelop, in the browser.

If you want to sell them, then they will run on Windows Phone, Windows RT and Windows 8. To submit them to the store you will need a Windows 8 PC and a dev account.


All Windows Store apps run on all versions of Windows 8.


    TouchDevelop Wep App Preview does not work with Opera.
    Please use Internet Explorer 10, Chrome or Firefox.
Why?


Because developing on that many web standards when the other three have such a huge market share is unnecessarily onerous.

Not supporting one browser or another is rarely if ever a stand against that browser, it's just a decision based on living in reality. I've used and liked Opera in the past, but I've never once tested so much as a web page in Opera since I stopped using it as my primary browser.


There's always a post like this. Who gives a shit about Opera at this point? It's hard enough making a complex web app work on IE, Chrome and Firefox as it is.


Perhaps more pertinently, then http://imgur.com/pUlXu


When they take away opera they will take away firefox, then they will take away the next one. One day we will all be using chrome.

I think they should warn about compatibility but allow us to proceed anyways. Often when I spoof opera to identify as firefox everything works fine. The `built only for this browser` scheme treats the browser as the platform and not the internet as the platform. I understand the practical motivation for perspective, having spent many hours making sure my design worked in IE and Firefox, but I dream of a world where every-browser will render things identically.

Ultimately, its called a webpage not a chromepage.


Not buying this slippery slope argument at all. Nobody has ever cared about opera. Wake me up when people stop supporting Firefox.


Well, I am an Opera user too, and I was happy to see that they did not say use a modern browser like Google tends to do.


Is this kinda like Google's App Inventor (before they gave up on it and gave it to MIT) ?


Uncaught SyntaxError: Variable 'handler' has already been declared

that's what i get when i try to run that thing.


They definitely need some js error tracking tool (like qbaka.net) to handle errors. Their main javascript size is 420K!


Thanks for the recommendation. We (I am in the TouchDevelop team) have an excellent crash tracking system in place, and whatever issues you see today might be fixed tomorrow. If you are curious how we build TouchDevelop, you can watch this video from a session at the recent Build conference: http://channel9.msdn.com/Events/Build/2012/3-018


Having seen the first announcement of TouchStudio (the previous name for Touchdevelop) on MSDN and installed it on my WP7 phone, I can attest that the development team is constantly improving and updating the project.

My only beef with the WP7 version is that the increases in integration with online content have at times disrupted fluidity by delaying loading of portions of the app.

It is great to see HN finally giving the project some deserved attention. Previous submissions regarding the project have fallen flat.

Thanks and keep up the good work.


Thank you for the link. I am curious and will try to find an hour to watch the video. Do you mind if I contact you by email (already googled it) to ask some questions about your error tracking? It seems that you do not use window.onerror so I wonder how exactly you track unhandled errors. Your experience may help me with my project.


Sure, send me an email. We might be missing out on some errors, appreciate any kind of feedback, and maybe can give some advice too.


Which browser/platform?


Windows , Chrome 24.


First my mom learns to use an Ipad, next she's hacking together a recipe book for her phone. Developers are losing their monopoly.




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

Search: