This could be a simple tool that creates some rudimentary iOS apps (plenty of apps in the App Store would be considered subpar anyway), and purchasing it should include a free developer’s license for kids to get started programming.
I can't believe this article quotes Mark Pilgrim and yet inexplicably fails to note the presence of the first-class, top-quality, absolutely free Javascript runtime that is built into every iPad. No license required, and you can built more than just rudimentary tablet apps with JS if you are so inclined. Bonus: They will run on your friends' machines too, even if those machines don't run iOS.
So this article is just a giant pile of fallacy.
And, yes, if you are a young hacker who has exhausted the possibilities of web apps and who wants to develop for iOS you will have to spend money. To wit: you need at least a second-hand Macintosh, and to actually run your apps on a device you need a $99/year developer subscription.
But how soon we forget that to write first-class apps for, say, the Apple II also cost money. One reason that I was a lousy Apple II assembly programmer is that I never owned a real macro assembler [1], because those cost real money:
The cheapest commercial assembler in this list, the "four character" Microproducts Assembler, was "inexpensive at only $39.95" in 1980. But $39.95 in 1980 dollars is $102.67 in 2009 dollars.
I didn't know about that assembler back in 1980. Instead I vaguely knew that real programmers used Merlin, but I remember Merlin costing real money. I can't find reference to the original price, but it must have been at least, say, $75 1980 dollars ($193 in 2009) and might have even been several hundred dollars ($400+ in 2009).
What I really wanted to use in the 1980s was Pascal. I taught myself Pascal from a book, circa 1984; I wrote all my code on pieces of paper and never executed it because it was another two years before I got my hands on my first Pascal compiler. The Apple Pascal compiler cost hundreds of dollars. It came out in 1979 at $495. ($1443.88 in 2009 dollars). No way I was going to afford that.
Of course, eventually we were all saved when Turbo Pascal came out, and later Turbo C. Turbo Pascal 1.0 was legendary for being inexpensive and accessible: It was only $54.95 (with shipping) in 1984. Of course, that's $112 in 2009 dollars. And you needed to own an IBM PC or a CP/M machine, which I did not, and which could not be bought on Craigslist for a few hundred (2009) bucks the way a second-hand Intel Macintosh can.
Of course, you could pirate Turbo Pascal. If you could find someone else who owned it and was willing to give it to you. In the days before broadband and BitTorrent that was much more difficult: You had to learn about BBSes, and about such esoteric concepts as leeching, and you had to learn to live without the documentation.
The scrounging process is now much easier. Obviously, "piracy" is now simple and fun, but you needn't even resort to that: You can scrounge everything you need for iOS development legally and fairly easily -- schools own Macs, libraries own Macs, xCode can be downloaded for five bucks, and the docs are all free and legal, and even the emulator is free. The only thing you can't fudge is the $99 license to install your apps. But you can find one friend or teacher who has the license and convince them to install your app for you, legally. If there's popular demand for school libraries to own iOS developer licenses we could easily start a charity to donate some.
---
[1] Though this is just the least embarrassing reason, not the most significant reason.
Since the earliest days of personal computers the trend has been toward greater access to the OS while more powerful programming tools have been made available at a lower cost.
In iOS Apple has reversed these trends not only by restricting access to the OS but by limiting the available tools as well. With yesterday's announcement that Xcode will henceforth cost money, Apple has taken another step to thwart casual programming.
$5 is a low threshold. Requiring App Store download of the installer is perhaps more so because it requires MacOS 10.6.
In the larger picture, it costs $99/yr to publish applications or get the provisioning certificate to load an application, which is the primary money barrier.
If it was just the recent $5 charge then a slippery slope argument would be weaker. [http://en.wikipedia.org/wiki/Slippery_slope] But Apple is well down the road - don't forget the approval process. Now, they have further tightened control.
Xcode 3.x is STILL available for download from Apple, and it is STILL FREE.
Only the new update costs money, which some people are speculating is due to Tax laws. Apple has always given Xcode away with their latest OS, never have they done a full version upgrade before a new OS has been released.
Does the rule apply to hardware sold only or what? MS seems pretty comfortable giving new versions of software(IE7,IE8,IE9, Media Player, etc. etc. in SP2) to run on XP sold in 2001.
It has more to do with how Microsoft does their accounting, versus how Apple does their accounting. Just like the whole iPod Touch upgrade costing money, or the Wireless enabler for older Mac's that enabled Wireless-N ($0.99) and a whole range of other reasons.
I'm sorry, but you seem to be responding to a strawman. No one is claiming you can't make apps that target an iPad: they are saying there is no rudimentary way to make apps USING an iPad.
The original comment was that people don't need Macs anymore: that kids can just have an iPad. This article claims that that overlooks the importance of programming.
Meanwhile, the points in the article are both about a lack of a development environment /and/ that the input mechanisms available aren't even appropriate for the task.
You can disagree with those points if you want, but you can't just claim "dude: JavaScript", and believe you won some battle. Yeah: there's JavaScript... now what? Can I edit HTML files on the device and load them? No.
An argument you /could/ try to make is that anyone can get an account on EC2 and then use iSSH from the App Store and the bluetooth keyboard to do development, attempting (painfully) to task switch between a browser that barely has a memory cache (and has no disk cache) and an SSH client that is killed if you leave it in the background for longer than a minute. Of course, that's all assuming you manage to get your EC2 server bootstrapped using the web console, which I think might actually be a flash app... I guess there are other hosting companies, right?
There's an app called Textastic that let's you code in many languages, but if you are doing HTML then you can actually run/preview the page, and it will also link to resources in the same folder, like JavaScript or CSS files. There's also Code2Go which sends your code to a server and returns the output. It has shells/compilers for many languages.
Okay, my mistake, I apologize. One of the problems with living in a fast-moving world is that sometimes I lose track of what is obvious and what is not.
... so at the moment it is blindingly obvious to me -- apparently so obvious that I forget to mention it to other people -- that you could easily build an HTML5 app that allows students to edit and run Javascript from Safari on the iPad. Having grasped that, I have already started assuming that such apps exist and acting accordingly. But I'm ahead of myself, so I'll concede: It might be impossible to usefully write executable Javascript on an iPad today. We might have to wait a few more weeks.
If iPad-friendly HTML5-powered Javascript editors don't already exist, I don't know why not. Perhaps there is too little demand. Perhaps we were all waiting for something like Orion to provide the proof of concept. Perhaps nobody has gotten around to it yet. Perhaps the founders of the appropriate startups are still building it and haven't launched yet.
Or perhaps nobody wants to edit code on an iPad when PCs are a dime a dozen. I can hardly blame them for that. I like real keyboards for hacking, just as I like oscilloscopes for designing audio electronics. But it's not Apple's fault, exactly, that the iPad isn't particularly well designed for typing code. They make other machines for typing code. The iPad is designed for iPad things, just as my car is designed for daily driving and not for stock-car racing.
Why can't anybody write a decent javascript ide in HTML5 that uses all the goodies of multitouch and visual programming so that we can program on the ipad in a 2010s style. Something like yahoo pipes together with decent syntax completion and such alike. When I try to write a program in JS it feels so 80s that I could puke.
"As a professional Final Cut Pro videomaker myself, I was personally frustrated that Apple kept making it easier and easier for anyone to replicate my technical skills with much simpler tools."
Sounds like something a tosser would say if you ask me.
Agreed-this is akin to photographers who piss and moan about their market share being undercut by budget photographers who go out and buy consumer-model DSLRs and call themselves pros. Their real value is in the work they produce, regardless of the tools used during the process. If the tools make it easier for newbies to match this guys "technical prowess" then he needs to show he's above and beyond the rest.
Why the downvotes? The Luddites were skilled artisans objecting to advances in technology taking their jobs away. Doesn't that sound in the least bit familiar here?
I read it a few times, thinking it must be a joke, but there's nothing else in the article to suggest it is... unless the whole article is a joke. In which case it's not a very good one.
You can't create a guitar with a guitar either. Programming is only one type of creation, and not every computing device must support programming. The mindset that "computers are for computing" is holding the industry back.
The author makes the argument that if you can't create applications for the iPad with the iPad, youth will experience a disincentive to build programs. I posit two things:
A) That disincentive is offset by the appeal of the iOS platform and the "magic" of a solid touch platform (hardware and software)
B) Not every musician wants to make their own instrument
The author also holds up the rejection of Scratch as proof of his other arguments. I view applications like Scratch as a distinct issue, separate from "professional" application tools on iOS. I understand why Apple doesn't want to allow tools like Scratch -- because they don't want to create loopholes -- but I do find it disappointing that they don't make an exception for educational products. I've not seen a computing device that reaches kids like the iPad does, and it would be great if we could at least introduce them to the concept directly on the iPad.
I believe there is a big opportunity here for web app developers to fill a void. Take a look at CoffeeScript. If someone can re-package Javascript in a way that resembles Ruby, I don't see why that template couldn't be pushed further.
This is the case for every website you visit, yet it doesn't seem to be a problem. Technology people often make the mistake of believing that the technology is the product. I believe we've passed the time in computing where that is a requirement. Anyone can grab a text editor and hammer out some code. What makes a product great is the confluence of all the factors that you can't write in code. The application is part of the equation. I'm not arguing that the code can be bad; I'm arguing that you need more.
For example, GitHub is driven by git. This is a tool that anyone can download and use. The entire GitHub interface is HTML/JS. I could run through and rip off every bit of their interface code and I'd be a large portion of the way toward running my own GitHub. There's the issue of the server-side code and scalability, but these are problems I can solve with a reasonable up-front investment and iterative problem-solving, just like everyone else. What I can't clone is the community and spirit of GitHub.
If the success of your organization relies on the inability of your competitors to copy your product, you have a much bigger problem.
The argument is that the javascript development is a reasonable substitute for native programming - and in terms of protecting trade secrets it is not.
For people who are truly concerned about it, I think that obfuscators do a good enough job for most non-enterprise purposes.
Also, from the perspective of education, this is actually a feature: it's very easy to learn from other people's Javascript code, and there's plenty to look at on nearly every website.
i downloaded tubotax for my ipad, fired it up, realized how much data input i'd be doing and how much of a chore it would be and headed for my desktop...
it's all about the right tools for the job, and i still believe that the ipad is best used for consuming.
programming is inherently a lot of typing, scrolling and adjusting. unless you hook up a real keyboard and/or a mouse or invent some damn elegant ui paradigms ... i'm just not seeing this being a strong tool in the programmers toolkit. reviewing code, perhaps? but the daily grind, not so much. at least not in the near future...
I'm quite lucky to be working with and developing on Apple hardware because while I paid for my MacBook, iPhone, iPad and ADC account my parents were paying for my access to university and I live with my parents.
But a lot of people don't have that, I hope Apple follows the line of MSDN Academic Alliance and partners with all walks of educational institutions to open up the Apple development platform to students for free. I don't mean give them a free iPad but give them Xcode 4 and a non-commercial ADC license for free.
With the continued growth of Apple Stores maybe they could run introduction to the Objective C and Cocoa frameworks for those who wouldn't normally have access to it?
This problem probably won't be solved by Apple, but it will be solved by others who are working on browser-based IDEs right now.
There are several browser-based programming sites such as http://www.playmycode.com/, cloud9, http://jsdo.it, jsfiddle, etc. Even Eclipse is coming out with a browser-based version soon (project orion). Now, some of these don't work on mobile or tablet devices yet (broken contenteditable in the browser), but they will. See for example the codemirror 2 editor, which does work on an ipad, albeit not perfectly: http://codemirror.net/2/
A related issue is what the author talks about - it's harder and slower to type on an ipad or smart phone than a device with a regular keyboard. I don't know of a solution to that yet. Perhaps it will involve better touch-driven keyboards (sort of like swype and related options - but tailored for programming), or perhaps using voice or the camera (gesture recognition) for input, or perhaps we'll just adapt and get used to the current on screen keyboards - kids aren't really complaining about them, and are pretty fast at using them, but there's a difference between typing a text message and programming with all the special symbols and indenting used (a pain without a regular keyboard). Or perhaps more scratch-like programming environments will gain popularity (program by dragging and dropping blocks instead of typing). See my post: http://edtechdev.wordpress.com/2011/03/03/contentnoteditable...
Its like a sports car enthusiast getting into a generic 'coupe' with an Automatic gearbox and whining about the lack of a stick shift.
It just doesn't make any sense, and these kinds of posts show that our community really doesn't understand exactly why the ipad is the success that it is.
I've developed a source code editor for iOS. It started out as an iPhone app for quick edits of PHP/Javascript files. I ported it to iPad before launch and the consumer demand for a more generic code editor beyond editing HTML over FTP connections became obvious. I'm currently wrapping up the 3rd overhaul of the text rendering engine (thanks to Apple finally including CoreText in iOS) and I'm finally poised to add all of the typical editor features such as find/replace and intelligent syntax highlighting. I hesitate to share the link because I think the pending update I'm working on puts the current version a little bit to shame: http://is.gd/nimbus
I realize the article is concentrated on actually building applications on the iPad itself, but I personally think that puts the overall user experience into a jeopardy that Apple isn't willing to risk. Just wanted to point out though that people ARE writing serious code on their iPads.
Kids will be growing up with desktop computers for a long time to come, and now they have a fun and lucrative platform they can write programs for. It's a great time to be a budding hacker.
That said, a sort of elementary tool to make toy apps or games on the iPad would be a good gateway drug.
Can't you just record a movie of yourself dictating your code line by line to camera and email that to India where it can be transcribed into XCode for you?
36 comments
[ 3.2 ms ] story [ 95.8 ms ] threadI can't believe this article quotes Mark Pilgrim and yet inexplicably fails to note the presence of the first-class, top-quality, absolutely free Javascript runtime that is built into every iPad. No license required, and you can built more than just rudimentary tablet apps with JS if you are so inclined. Bonus: They will run on your friends' machines too, even if those machines don't run iOS.
So this article is just a giant pile of fallacy.
And, yes, if you are a young hacker who has exhausted the possibilities of web apps and who wants to develop for iOS you will have to spend money. To wit: you need at least a second-hand Macintosh, and to actually run your apps on a device you need a $99/year developer subscription.
But how soon we forget that to write first-class apps for, say, the Apple II also cost money. One reason that I was a lousy Apple II assembly programmer is that I never owned a real macro assembler [1], because those cost real money:
http://apple2history.org/history/ah17/#05
The cheapest commercial assembler in this list, the "four character" Microproducts Assembler, was "inexpensive at only $39.95" in 1980. But $39.95 in 1980 dollars is $102.67 in 2009 dollars.
I didn't know about that assembler back in 1980. Instead I vaguely knew that real programmers used Merlin, but I remember Merlin costing real money. I can't find reference to the original price, but it must have been at least, say, $75 1980 dollars ($193 in 2009) and might have even been several hundred dollars ($400+ in 2009).
What I really wanted to use in the 1980s was Pascal. I taught myself Pascal from a book, circa 1984; I wrote all my code on pieces of paper and never executed it because it was another two years before I got my hands on my first Pascal compiler. The Apple Pascal compiler cost hundreds of dollars. It came out in 1979 at $495. ($1443.88 in 2009 dollars). No way I was going to afford that.
Of course, eventually we were all saved when Turbo Pascal came out, and later Turbo C. Turbo Pascal 1.0 was legendary for being inexpensive and accessible: It was only $54.95 (with shipping) in 1984. Of course, that's $112 in 2009 dollars. And you needed to own an IBM PC or a CP/M machine, which I did not, and which could not be bought on Craigslist for a few hundred (2009) bucks the way a second-hand Intel Macintosh can.
Of course, you could pirate Turbo Pascal. If you could find someone else who owned it and was willing to give it to you. In the days before broadband and BitTorrent that was much more difficult: You had to learn about BBSes, and about such esoteric concepts as leeching, and you had to learn to live without the documentation.
The scrounging process is now much easier. Obviously, "piracy" is now simple and fun, but you needn't even resort to that: You can scrounge everything you need for iOS development legally and fairly easily -- schools own Macs, libraries own Macs, xCode can be downloaded for five bucks, and the docs are all free and legal, and even the emulator is free. The only thing you can't fudge is the $99 license to install your apps. But you can find one friend or teacher who has the license and convince them to install your app for you, legally. If there's popular demand for school libraries to own iOS developer licenses we could easily start a charity to donate some.
---
[1] Though this is just the least embarrassing reason, not the most significant reason.
In iOS Apple has reversed these trends not only by restricting access to the OS but by limiting the available tools as well. With yesterday's announcement that Xcode will henceforth cost money, Apple has taken another step to thwart casual programming.
In the larger picture, it costs $99/yr to publish applications or get the provisioning certificate to load an application, which is the primary money barrier.
Only the new update costs money, which some people are speculating is due to Tax laws. Apple has always given Xcode away with their latest OS, never have they done a full version upgrade before a new OS has been released.
The original comment was that people don't need Macs anymore: that kids can just have an iPad. This article claims that that overlooks the importance of programming.
Meanwhile, the points in the article are both about a lack of a development environment /and/ that the input mechanisms available aren't even appropriate for the task.
You can disagree with those points if you want, but you can't just claim "dude: JavaScript", and believe you won some battle. Yeah: there's JavaScript... now what? Can I edit HTML files on the device and load them? No.
An argument you /could/ try to make is that anyone can get an account on EC2 and then use iSSH from the App Store and the bluetooth keyboard to do development, attempting (painfully) to task switch between a browser that barely has a memory cache (and has no disk cache) and an SSH client that is killed if you leave it in the background for longer than a minute. Of course, that's all assuming you manage to get your EC2 server bootstrapped using the web console, which I think might actually be a flash app... I guess there are other hosting companies, right?
----
[1]: http://itunes.apple.com/us/app/javascript-anywhere/id3634522...
I just saw a demo of Eclipse Orion:
http://jaxenter.com/eclipse-orion-the-new-ide-paradigm-33431...
... so at the moment it is blindingly obvious to me -- apparently so obvious that I forget to mention it to other people -- that you could easily build an HTML5 app that allows students to edit and run Javascript from Safari on the iPad. Having grasped that, I have already started assuming that such apps exist and acting accordingly. But I'm ahead of myself, so I'll concede: It might be impossible to usefully write executable Javascript on an iPad today. We might have to wait a few more weeks.
If iPad-friendly HTML5-powered Javascript editors don't already exist, I don't know why not. Perhaps there is too little demand. Perhaps we were all waiting for something like Orion to provide the proof of concept. Perhaps nobody has gotten around to it yet. Perhaps the founders of the appropriate startups are still building it and haven't launched yet.
Or perhaps nobody wants to edit code on an iPad when PCs are a dime a dozen. I can hardly blame them for that. I like real keyboards for hacking, just as I like oscilloscopes for designing audio electronics. But it's not Apple's fault, exactly, that the iPad isn't particularly well designed for typing code. They make other machines for typing code. The iPad is designed for iPad things, just as my car is designed for daily driving and not for stock-car racing.
Sounds like something a tosser would say if you ask me.
The author makes the argument that if you can't create applications for the iPad with the iPad, youth will experience a disincentive to build programs. I posit two things:
A) That disincentive is offset by the appeal of the iOS platform and the "magic" of a solid touch platform (hardware and software)
B) Not every musician wants to make their own instrument
The author also holds up the rejection of Scratch as proof of his other arguments. I view applications like Scratch as a distinct issue, separate from "professional" application tools on iOS. I understand why Apple doesn't want to allow tools like Scratch -- because they don't want to create loopholes -- but I do find it disappointing that they don't make an exception for educational products. I've not seen a computing device that reaches kids like the iPad does, and it would be great if we could at least introduce them to the concept directly on the iPad.
I believe there is a big opportunity here for web app developers to fill a void. Take a look at CoffeeScript. If someone can re-package Javascript in a way that resembles Ruby, I don't see why that template couldn't be pushed further.
For example, GitHub is driven by git. This is a tool that anyone can download and use. The entire GitHub interface is HTML/JS. I could run through and rip off every bit of their interface code and I'd be a large portion of the way toward running my own GitHub. There's the issue of the server-side code and scalability, but these are problems I can solve with a reasonable up-front investment and iterative problem-solving, just like everyone else. What I can't clone is the community and spirit of GitHub.
If the success of your organization relies on the inability of your competitors to copy your product, you have a much bigger problem.
Also, from the perspective of education, this is actually a feature: it's very easy to learn from other people's Javascript code, and there's plenty to look at on nearly every website.
it's all about the right tools for the job, and i still believe that the ipad is best used for consuming.
programming is inherently a lot of typing, scrolling and adjusting. unless you hook up a real keyboard and/or a mouse or invent some damn elegant ui paradigms ... i'm just not seeing this being a strong tool in the programmers toolkit. reviewing code, perhaps? but the daily grind, not so much. at least not in the near future...
But a lot of people don't have that, I hope Apple follows the line of MSDN Academic Alliance and partners with all walks of educational institutions to open up the Apple development platform to students for free. I don't mean give them a free iPad but give them Xcode 4 and a non-commercial ADC license for free.
With the continued growth of Apple Stores maybe they could run introduction to the Objective C and Cocoa frameworks for those who wouldn't normally have access to it?
There are several browser-based programming sites such as http://www.playmycode.com/, cloud9, http://jsdo.it, jsfiddle, etc. Even Eclipse is coming out with a browser-based version soon (project orion). Now, some of these don't work on mobile or tablet devices yet (broken contenteditable in the browser), but they will. See for example the codemirror 2 editor, which does work on an ipad, albeit not perfectly: http://codemirror.net/2/
A related issue is what the author talks about - it's harder and slower to type on an ipad or smart phone than a device with a regular keyboard. I don't know of a solution to that yet. Perhaps it will involve better touch-driven keyboards (sort of like swype and related options - but tailored for programming), or perhaps using voice or the camera (gesture recognition) for input, or perhaps we'll just adapt and get used to the current on screen keyboards - kids aren't really complaining about them, and are pretty fast at using them, but there's a difference between typing a text message and programming with all the special symbols and indenting used (a pain without a regular keyboard). Or perhaps more scratch-like programming environments will gain popularity (program by dragging and dropping blocks instead of typing). See my post: http://edtechdev.wordpress.com/2011/03/03/contentnoteditable...
You are not the ipad's target demographic.
The end.
It just doesn't make any sense, and these kinds of posts show that our community really doesn't understand exactly why the ipad is the success that it is.
Apple is worried that Netflix or Amazon will stream movies and ebooks through Scracth Apps and bypass the 30% cut or what?
I realize the article is concentrated on actually building applications on the iPad itself, but I personally think that puts the overall user experience into a jeopardy that Apple isn't willing to risk. Just wanted to point out though that people ARE writing serious code on their iPads.
That said, a sort of elementary tool to make toy apps or games on the iPad would be a good gateway drug.