Microsoft TouchStudio Uses Phone To Program Phone 162
theodp writes "Over the weekend, Microsoft released the beta of TouchStudio, a free Windows Phone app that allows one to write programs for a phone on the very same phone, no computer required. According to the Microsoft Research project page, the work-in-progress TouchStudio aims to bring 'the excitement of the first programmable personal computers to the phone.' Among the code examples provided is a four-liner that scans a phone's music collection for songs less than three minutes long and produces a fairly slick, clickable playlist complete with track info and artwork. Easier than iPhone SDK programming, no?"
Never trust it (Score:1)
I never trust the "look at what we just did in only 100 lines or less" examples. Such examples rarely indicate a "thought of everything" programming environment, instead usually indicating a "we made assumptions about everything and you'll either like it or spend hours hacking around it" environment.
The four line example given doesn't make it clear what database it's pulling that from, what if the user has an Amazon Cloud Music service and player? Will it find those as well?
Re: (Score:2)
I never trust the "look at what we just did in only 100 lines or less" examples.
Really? How about this:
;-)
10 do while (iWantToWriteCode = true) {
20 self.goUseARealComputer = true ;
30 }
And I've got 97 lines to spare
Re: (Score:2)
Re: (Score:2)
Ow, my eyes!!!
What language is that?
BASIC#?
I think of it as 'pseudo code', but you can call it 'P#' if you'd like. BTW, if your pee feels like it's sharp then your distributable package may have an infection.
Re: (Score:2)
I never trust a native speaker who cannot use his own language correctly. "look at what we just did in only 100 lines or fewer".
Use fewer with objects that can be counted one-by-one.
Use less with qualities or quantities that cannot be individually counted.
Incorrect: There were less days below freezing last winter.
Correct: There were fewer days below freezing last winter.
(Days can be counted.)
Correct: I used less flour to bake the cake than she did. (you cannot say 'one flour, two flour')
The more you know!
There is no such thing as "correct" in the English language. There is no organization that dictates what is and what is not "correct." Even among linguists there are prescriptivists and descriptivists. The descriptivists say that "correct" is whatever most people understand and use in the current time period. Prescriptivists try and make rules to decide what should be correct. That's how words such as "ain't" make it in the dictionary. In the end, though, if people understand what you're saying withou
Late Again? (Score:3, Interesting)
So, it appears to be not true programming, but just script manipulation? Wouldn't that be like Tasker for Android?
http://tasker.dinglisch.net/ [dinglisch.net]
Re: (Score:2)
As I understand it, this TouchStudio has actual flow control and expressions, so it's more than simple cause-&-effect type scripts.
I don't personally know Tasker, but it looks far less flexible than what TouchStudio claims to be.
I wonder if TouchStudio has an "upgrade" path for budding new programmers who want to move from their TouchStudio-created apps to a more complete IDE. Perhaps a PC-based version of TouchStudio or C# code generating?
Re:Late Again? (Score:4, Informative)
It's "script manipulation" in the same sense that writing Python would be "script manipulation". TouchStudio contains a turing-complete scripting language that's tailored to working with/on a touchscreen phone.
eg. A screenshot [microsoft.com] I found on Microsoft Research [microsoft.com].
Re: (Score:2)
That is actually pretty damn cool.
I mean, I imagine that it's really only capable of creating second-class apps compared to a complete dev environment like iOS developer tools, the Android SDK, or the Visual Studio for WP7. But I do admire the premise of the product. The sheer complexity of learning an entire dev stack from scratch is pretty difficult for a non-specialist to overcome; hopefully this thing is simple enough that it can act as a good starting point for neophytes who just want to add "one littl
Re: (Score:2)
Like someone commented, "I like the part where he says developers [youtube.com].
Re: (Score:3)
Re: (Score:2)
The coolest part to me is that this has the potential to be to a new generation of kids what QBasic and TI calculator programming were for kids like me
Have you forgotten that these are smartphones with 70 dollar plus plans attached? These are not like the calculators and commodore64's of yesteryear and the overlap between budding 12 year old programmer and the people who will be carrying these things will be small.
Re: (Score:2)
Like, n900 having gcc and perl that's tailored to working with a keyboard, which that phone has? Makes sense.
(Nokia screwed the pooch with the default keybinding -- no basics like Esc, PgUp, PgDn, [, ], <, >, {, } and the like, but if you use a better one [angband.pl], it's just a notch worse than a laptop. Which sucks compared to a real computer, but is usable.)
Neat, actually (Score:2)
It's been a long time since that was my first raction to a Microsoft product, but this thing looks neat in every sense of the word -- a fine UI to throw some code together on a small display; and it reminds me of ChipWits, Lego Mindstorm and other such easily graspable perspectives on what is undeniably a very complicated topic.
The thing is, of course, how much integration this app has with the rest of the system. It can evidently hook into the file system, and I wonder if it can know, ask, or be told what
Re: (Score:2)
It can evidently hook into the file system, and I wonder if it can know, ask, or be told what other applications are installed and what they're up to (that is more or less what the HackMaster app did on PalmOS, which was exceedingly powerful yet relatively simple given that it was an event-driven (as opposed to multitasking) OS).
I say godspeed to this project, and I hope they'll allow others to follow in their footsteps.
My first reaction when finding this topic today was "Wow, neato". My 2nd reaction, after reading the above section of your post was : "Uh oh - a new era of VBS-type exploits and rampant malware problems on a microsoft platform."
Re: (Score:2)
'the excitement of the first programmable personal computers to the phone.'
now a question: who invented basic and for what? that's what they're referencing there.
but they're late because there's already phone where you can run a full gcc on. been for years, too.
that it's an interpreted thing that they got going is no surprise here though, it makes it so much more possible to do it on xna..
Re: (Score:3)
"The original Dartmouth BASIC was designed in 1964 by John George Kemeny and Thomas Eugene Kurtz at Dartmouth College in New Hampshire, USA to provide computer access to non-science students." -- Wikipedia
Why do you ask?
Re: (Score:2)
For me, it strangely reminds me of Hypercard ... and thus of current Mac OS X Automator. If you want even easier, I'd even go to Quartz Composer. Yet again things pioneered by Apple. I wouldn't create a full 3D game using that scripting system, it's totally different and not meant for the same thing.
People simply don't understand high-level versus low-level; both has merits.
Re: (Score:2)
So, it appears to be not true programming, but just script manipulation?
Looks like Apple Script for a phone, or for those of us with old memories it could even be HyperCard.
Re: (Score:2)
So, it appears to be not true programming, but just script manipulation?
But what is programming? It's just giving the computer instructions to perform later... Script manipulation certainly qualifies for that.
Re: (Score:2)
Not really. Scripting engines are often limited. Consider the difference between an MS-DOS batch file and Java or C or LISP. Then compare Python or Perl.
If all they've done is present a scripting language that binds some common functions (which would allow a 4-line "program" that accesses your music collection), then you really don't have a fully programmable system. You have a customizable system, but not one that is fully programmable.
There is definitely a non-arbitrary distinction between scripting langu
mShell and Symbian (Score:3)
Re: (Score:2)
Re: (Score:2)
no wonder, it's written in .net
they should have hosted it on a symbian phone, http://sourceforge.net/projects/raccoon/ [sourceforge.net] (the project seems sort of dead now, but it was a pretty far taken proof of concept that you could run apache on symbian and even have python scripts serving up the content. mobile use too. also a proxy system because most of these mobile connections are behind a firewall.
Re: (Score:2)
Not a new concept, mShell for Symbian
... or just N900's Maemo, for that matter. Not only can you write shell scripts, but also C or Java programs, and compile them on the phone itself.
Super awesome (Score:2)
It is a very cool tool.
I don't know if mshell or other mobile programming languages have any real system integration this thing does. Sort of reminds me of hacking in AppleScript.
Psion OPL (Score:1)
Reminds me of OPL (Open Programming Language) http://en.wikipedia.org/wiki/Open_Programming_Language [wikipedia.org] that was embedded by default on the Psion Series 5mx.
I had great fun making stupid applications on that thing back in high school.
Imagine this! (Score:3)
And here I am, reprogramming my phone with pliers, soldering iron, some wires, a(n) USB connector and a resistor. I must be doing something wrong.
Re: (Score:2)
a(n) USB
The use of a/an is one of those annoying special cases in English. If the following word starts with a vowel sound it is "an", otherwise it is "a". The U in USB, although a vowel, does not make a vowel sound in this case. If it did it would be pronounced "uh" rather than like the word "you".
I feel for those trying to learn English. Native speaker children have enough trouble with this kind of thing.
Unfortunately...ok a bit off topic (Score:2)
The
Re: (Score:2)
That is exactly what I said. The point is that unlike most rules which are based on the actual letter, the a/an rule is based on the sound. A vowel can be preceded by 'a' if it makes a consonant sound. That is particularly hard for non-native speakers whose pronunciation might not be that good.
I'm surprised this hasn't caught on. (Score:2)
I know Android has this capability [google.com] from third-party support; has anyone played around with this?
Re: (Score:3)
As there are > 300,000 apps already on the App Store, and continually growing, they don't really need to do anything to inflate numbers.
The reasons Apple limits programming to developing using the standard SDK and delivering through the App Store include:
1) It's a one stop shop for users. If they want an app to do something, then they know exactly where to find it. If it's not there it doesn't exist. For users, that's really nice and easy.
2) It means that if developers charge for their apps, Apple gets a
Re: (Score:2)
Re: (Score:2)
Why would apple want to do such a thing?
You're suggesting giving users more freedom to program what they want. This is blasphemy. Burn the Heretic!
Re: (Score:2)
look, if apple just _allowed_.. you would have all kinds of computer emulators on the store, complete with native basic, c compiler and so on support. but that doesn't fit in their business plan where they sell you the small apps you used to download from bbs's for free.
Android Scripting Environment (Score:3, Informative)
Re: (Score:2)
Android has had the ability to run scripts, sure. There is also a bunch of simple REPLs for various languages on the market (I have Ruby and Lua ones on my Xoom).
This thing, however, seems to be more about making a touch-friendly code editor / IDE than it is about the language itself. I'm not aware of something similar for Android. Though it would be nice if someone took a newbie-friendly language - Python or Lua would both do nicely - and write a similar thing on top of that.
UP? (Score:2)
So, when can be have an ultra-portable device with on-the-go programming in mind? I'd find it very amusing/interesting to pound out a program while waiting at the bus stop.
Re: (Score:2)
So, when can be have an ultra-portable device with on-the-go programming in mind?
That's what a netbook is for. I routinely whip a 10" Atom laptop out of my bag and fire up IDLE (Python editor) while riding the city bus to and from work.
Nice, but I am sure the /. crowd... (Score:3)
would be so much happier with a N900 running vi & gcc.
Can't think why (Score:2)
Re: (Score:2)
Vi.. on a smartphone??
Vi is a good text editor for a keyboard & monitor combo, but it's hardly ideal for a smartphone interface. Labview probably comes closest to the ideal type of programming environment for a smartphone...
Re: (Score:3)
Forgive me, but I work fine with vi on my N900. In fact one of the basic reasons I got it was because it is the only possible way I can work while riding the subway (in the common situation when I don't have a seat), and whatever the developments of touch screen keyboards I find them unusable for serious text entry, while the N900's hardware keyboard is decent.
Re: (Score:3)
Re: (Score:2)
exactly
After zillion clicks I got to actual demo:
http://channel9.msdn.com/Blogs/Peli/TouchStudio-Script-Your-Phone-ON-Your-Phone [msdn.com]
Basically the SDK allows you write code text using menu of text choices. So if you want to feel like Stephen Hawking doing some scripting, knock yourself out.
What I see as a decent environment for programming for ANY device that does not have a decent keyboard and screen is an SDK running on conventional laptop, desktop seemlessly connected to the device. You hit Run on your laptop
Re: (Score:2)
Basically the SDK allows you write code text using menu of text choices.
The menus are there to make it easier to write common constructs, but the very first option on the list is always "arbitrary expression", which brings you down to an editor. You still get helpers for characters that would be inconvenient to type on the usual keyboard (operators mostly, but also quotes), and arrow keys for precision navigation; but it doesn't really force you to go through menus if you don't want to.
What I see as a decent environment for programming for ANY device that does not have a decent keyboard and screen is an SDK running on conventional laptop, desktop seemlessly connected to the device. You hit Run on your laptop, your app is executed on your device.
This is pretty much how all mobile SDKs (iOS, WP7, and so far as I know Android as well) work
The /. Crowd is... What? (Score:2)
The "/. crowd" that you refer to has long since moved on. The current stable of users and contributors are primarily Wired readers and other "gadgeteer" types. Just don't tell that to the advertisers, who are being sold on the (now quaint) notion that the readership is comprised of IT Industry decision-makers.
So... (Score:2)
"TouchStudio aims to bring 'the excitement of the first programmable personal computers to the phone.' "
So Integer BASIC and assembler? Pinch me.
You guys are funny (Score:3, Insightful)
Re: (Score:2)
Seriously thought, its not gonna matter. Hating Microsoft is the svelte thing to do on
Re: (Score:2)
What are you giving up?
Likely, you're giving up the ability to actually make something. It seems that TouchStudio will allow you to do the things that the phone already does,
Re: (Score:2)
This thing is more like AppleScript, really. It lets you automate usage scenarios for the phone, and it works on high-level abstracted objects (e.g. if you "print" a music track, it'll actually print the nicely formatted metadata, complete with album cover).
It's still a Turing-complete language, and it does have what amounts to REPL, so you can do arbitrary complex calculations with it. But then there are apps that let you do the same on iPhone (at the very least, there's a bunch of JavaScript REPLs there,
Applescript (Score:2)
It can also be done in four lines of applescript:
So.. get on it apple. make applescript and smart playlists available in iPods and iPhones already...
yo dawg (Score:3)
we heard you like to program, so we put the program in your phone so you can program while you phone
Re: (Score:2)
...no, no, no. it's:
Yo dawg, we herd you like calling so we put a phone if yo phone so you can call while you call.
orrrr...
Sup dawg, we herd you like apps, so we a put a[sic] app in yo app, so you can use it while you use it.
Dumbest meme OF ALL TIME!
Excitement (Score:2)
It's not excitement unless you're programming in hand-optimized assembly like a real programmer.
Did that on Palm years ago. (Score:2)
I wrote Final Fantasy XI Timer for Palm [homeip.net] entirely on my Palm Tungsten W using the PP [ppcompiler.org] compiler. There where several other compiler for Palm as well.
I'm also hoping to write application on my Palm Pre. I already released [precentral.net] an update to Terminal by compiling it with gcc right on my Palm Pre.
Big Deal (Score:2)
I've been able to program on my phone since my Treo 650. The Nokia N900 just takes it to a whole [maemo.org] new [maemo.org] level [my-meego.com].
Re: (Score:2)
You can write in Ruby for Android, too. You can even have a Ruby REPL if you want.
No computer required? (Score:2)
Uh, the phone is a computer, dimwit.
Srsly, WTF?
Re: (Score:2)
Uh, the phone is a computer, dimwit.
It's an "appliance" these days, don't you know? Ever since iPhone munched competition for breakfast.
Exciting. (Score:2)
No.
Re: (Score:1)
Re: (Score:3)
The summary claims it is bringing 'the excitement of the first programmable personal computers to the phone.' No, to me it looks like it is bringing the excitement of visual basic to a ph
And last but not least (Score:4, Interesting)
The Nokia N900 came factory default with a text editor, xterm and a python runtime with sdl bindings.
Re: (Score:3)
Re:And last but not least (Score:5, Funny)
Probably because it came factory default with a text editor, xterm, and a python runtime.
Re: (Score:2)
Windows comes with a text-editor (albeit a crappy one), a terminal (also a crappy one) and runtimes for .NET, that doesn't seem to scare people off. It's not an either/or, you can have a user-friendly phone with advanced features, the less advanced users can just ignore the advanced features.
Carriers control which phones subscribers buy (Score:3)
It's not an either/or, you can have a user-friendly phone with advanced features
Unless the carriers don't want to carry your phone. In the United States, the big three wireless carriers have only a small selection of phones, and they tend to shun anything that gives the user too much freedom. Nokia hasn't been able to get any major U.S. carrier to take the N900 (for which I'd appreciate corrections), and buying a phone and service separately is something that the vast majority of subscribers just don't do, for various reasons. Verizon and Sprint, which use CDMA2000, are reluctant to ac
AT&T is buying T-Mobile USA (Score:2)
T-Mobile
I understand that currently, T-Mobile USA offers a plan designed for people who bring their own phones. I predict that this will end once AT&T completes its acquisition of T-Mobile USA.
Re: (Score:2)
It matters, but not in the way you think.
The biggest drawback for me (not for "the market", but for me) from iOS is you can't use it to make stuff. Until you can use an operating system to make stuff, it's a toy. That's why iOS is a top gaming platform. The iPad is not a phone, so if all it's going to be is a gaming platform, then it's in a different conversation than computers. It's fine, but it's not what I need. (again, yes I know it's the number one tablet, but the number one song r
Re: (Score:2)
This is the first time since the N900 that there will be a handheld platform you can make stuff with. For it to be Microsoft is somewhat surprising. It's not going to make Windows Phone 7 number one, but I really don't care what's number one.
You've been able to program on an Android phone for quite a while now. Android Script Engine (ASE) is an official Google project that binds Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, and shell to the Android API, and if you're a masochist, you can edit scripts right there on the phone.
I think I'd prefer to have a real keyboard, and a big screen, though.
No "Unknown sources" on AT&T (Score:2)
You've been able to program on an Android phone for quite a while now. Android Script Engine
Not if you have AT&T. From the android-scripting page [google.com]: "you will need to enable the 'Unknown sources' option".
Re: (Score:2)
I'm not on AT&T, so I'm going to treat this as a non-issue for everyone ;)
Oh, and if I lived in the US, I wouldn't buy my Android phone from AT&T, or any other carrier who disables the "unknown sources" option.
Re: (Score:2)
Even more reason that this notion of an SDK that you only can run on a jailbroke platform is a joke.
And AT&T can suck my balls for not allowing the Android Script Engine.
Re: (Score:2)
Even more reason that this notion of an SDK that you only can run on a jailbroke platform is a joke.
I'm not quite sure how to parse that sentence but, I can assure you the ASE runs on non jailbroken Android phones. Furthermore, anybody that is going to be writing code on their phones is probably up to the task of getting the runtime on an AT&T phone.
Re: (Score:2)
Sorry for not being clear. I wasn't referring to ASE, I was referring to the tools available for jailbroken iOS. Somewhere earlier someone was trying to devalue ASE and this new Windows Phone 7 SDK by saying "there have been SDK's for jailbroken iPhones"
Re: (Score:2)
Also, once again, if you're a programmer, I'm pretty sure you'll hate WP7 despite this. It is a nice start, and easy to program, but too much is missing.
Re: (Score:2)
I'm not just talking about programming. I'm talking about making anything beyond basic text editing and light photo-retouching.
I'm talking about making tools that can be used on the same platform.
Remember Hypercard? Apple had that idea once. How about basic scripting?
Re: (Score:2)
Re: (Score:2)
Before that, PalmOS users could install PocketC on their device right out of the box. That was back in the good ol' days before the iPhone, when you didn't have to jailbreak PDAs.
Also before this, you could write Python/C/Perl/whatever apps on a Maemo phone and run it on the same phone, right out of the box.
Re: (Score:1)
I agree (Score:1)
I admit that this can't be done on a stock iPhone, but the whole innovation is that they're writing code on a mobile device, which people have been doing for years, in fact completely set up by end users.
This is very important because they will probably try to patent this idea with a view to stopping other people doing it. Having a ready list of prior art could prevent that
Re: (Score:1)
Laptops and PDAs (Score:2)
but the whole innovation is that they're writing code on a mobile device, which people have been doing for years
They've been doing so since laptops were invented. And if you mean mobile devices that fit in a pocket, they've been doing so since Python was ported to Pocket PC. What's the big difference?
Re: (Score:2)
Re: (Score:2)
Or python, perl, lua, tcl, with Qt, Gtk or Tk on the N900. I'm always amazed how companies like Microsoft and Apple manages to first push the paradigm that "less is more"...
How many times more iPhones ship than N900s? It makes far more commercial sense for companies to spend their finite time creating products that are easy and pleasurable for ordinary people to use than ones that have everything slashdot geeks wish for.
Re: (Score:2)
Any ideas how it will be able to run the code through emulators to verify it works on older or newer Windows Phone vers
Re: (Score:2)
Until it can print it can't be considered a true development environment with that tiny screen because debugging usually requires a view larger than a few lines of code.
Then how did applications for Apple II or Commodore 64 get written on a platform with a roughly 320x200 pixel screen?
Re: (Score:2)
Then how did applications for Apple II or Commodore 64 get written on a platform with a roughly 320x200 pixel screen?
Very different level of programmer. The OP stated:
Teaching everyone to program on an affordable platform like this is a very neat move, and undoes the damage done by companies that provide "Mothership System" based software development.
Any programmer of the early set of micro computers ilk is not the intended target of this 'product' nor the OP's comment.
Re: (Score:2)
Until it can print it can't be considered a true development environment ... because debugging usually requires a view larger than a few lines of code
I'm not quite sure I see what printing has to do with it being a true development environment or not... I haven't printed code in years, except when doing some BPM diagram programming and needed to make notes about what wasn't viewable on the screen at one time...
Granted, maybe it's not an ideal debugging environment, but it sure sounds like a development environment to me if you can use it to create programs... Perfect? Powerful? Maybe not...
Re: (Score:2)
Re: (Score:2)
tower [...] Total value of $30 or less.
For one thing, how does one become aware of university sales? For another, you can't use your tower on the bus while commuting to and from work, unlike my netbook.
Re: (Score:2)
Re: (Score:2)
My local uni has a surplus department. Anyone can walk in anytime, and purchase whatever's available. Currently late-model P4 and early Core2Duo class machines are available, $40-$80. Once they've been there for a certain amount of time unsold, the price drops by 60%. The last machine I got from them was a P4 3.something GHz with 1.5GB of RAM. I paid $17. It's nice 'cause it's one of those little desktops (HP, I believe) that are nearly silent.
There's also lots of beat-up furniture, and occasionally some hi
Re: (Score:2)
Wow, we're catching up with what Symbian could do in 1998
Palm in 1996?
http://www.hotpaw.com/rhn/files/CBASPAD.TXT [hotpaw.com]
If there's one truth of IT / CS / gadgets its that everything old, is eventually new again.
Re: (Score:2)
Palm had OnBoardC as well, a full C compiler and editor. . I wrote the prototype for a PalmOS text editor in it.
Re: (Score:2)
Re: (Score:2)
There are plenty of scripting choices on Android. My personal favorite is Lua (search for "SigmaScript" in Market).
What would be nice is to have a touch-oriented IDE for those things.