There are limits to my joy, though. I immediately miss:
- emacs. Or at least Textmate. When I press ctrl-a and I get "select all" instead of move-beginning-of-line, I sigh inwardly.
- git. Although the "snapshot" feature is awesome and is arguably all that many people would want in a tool like this.
- autotest. This is a big one. I'm not much of a Rails wizard, but already I'm hooked on the joys of autotest.
Rather than ask for any of these potentially obscure features, however, let me ask this: how about a secure API that lets me (a) run rake tasks remotely and receive their output in return; and (b) upload/download any of my source files? Then I believe you can leave autotest, emacs, and perhaps even git support as exercises for the student. :)
Congratulations, you have built an app with one user!
Now, if you want more users, and your home machine has a static IP, and port 80 is open, no problem. Except for the part where you will live in terror of any security holes. Oh, and the part where you've only got one server -- if this is your production server, where do you do your development? And then there's the part where you have to set up an init task to launch your server when the computer reboots. And the backups, of course.
Now show me how to give three remote collaborators secure access to your app's source code, but no access to anything else.
The default Rails install workflow is really nice, don't get me wrong. And Capistrano is great, and Slicehost is pretty easy to work with. But for a quick-and-dirty Rails demo, particularly in a teaching environment, Heroku appears to kick serious ass.
Yes, servers should be maintained by people who know what they're doing. This means you need to hire a third party (e.g. Engine Yard) or learn how to admin a server.
I'm not knocking Heroku -- you're right, it definitely looks like it'd be great for people just getting into web development or programming in general. I bet that most people who get into programming these days start off thinking "I want to make a website", and tools like this cater to that crowd.
You've given some good reasons for why it's complicated to install and configure a web framework. But the claim here is that ruby and rails are difficult relative to other programming languages.
Having installed and configured other frameworks for dev work, I'd say that rails is exceptionally easy, but I can't really speak to the challenges at the production level. For that, I use Joyent, which has been fairly easy as well.
Fixed. The port was actually "rb-rubygems", not "rubygems".
I'm no rails fanboy by far, but it's unfair to claim that rails is a hard environment to use when in reality rails goes out of its way to make RoR development dead simple.
I'm no ruby developer so I decided to push your example a little further just to see how trivial it really is.
Unfortunately the next instruction you offer didn't work either:
powerbook.local 105> sudo gem install rails
Password:
Bulk updating Gem source index for: http://gems.rubyforge.org
ERROR: While executing gem ... (Gem::GemNotFoundException)
Could not find rails (> 0) in any repository
A little googling reveals that at least on OSX, you need to do this:
But then the next command you wrote blows up again:
powerbook.local 110> ./script/server
Cannot find gem for Rails =1.2.6.0:
Install the missing gem with 'gem install -v=1.2.6 rails', or
change environment.rb to define RAILS_GEM_VERSION with your desired version.
Who knows? Perhaps DHH doesn't follow jey's instructions to install ruby and start a rails project?
In any event web services like Heroku make it a moot point. I've yet to try it out but I can easily see the attraction when a trivial google search of "ruby install error" returns 100,000 hits.
I'm not claiming other languages are easier to install. I'm saying there is value in offering development tools over the web in a way that eliminates any need for installation.
I'm excited to beta test. Who needs a MacBook Air to create your own interesting RoR project? This will let me hack Ruby on an ancient laptop. For bonus points, eventually, perhaps they could offer for-fee code reviews...
I know that Heroku's IDE is plenty efficient, even on older hardware. People have a hugely mistaken impression of what can and cannot be done in JavaScript.
I would more likely import an existing rails project onto heroku rather than code the entire thing through the web. I have my own preferences when it comes to things like IDE's.
Very nice. I had this same exact idea a couple months back with the focus of tying it into a thin client computer. You buy the hardware and you instantly have access to all of these browser based applications that are hosted and built through a web service.
I'm on the sign-up list, can't wait to give it a try.
There are limits to my joy, though. I immediately miss:
- emacs. Or at least Textmate. When I press ctrl-a and I get "select all" instead of move-beginning-of-line, I sigh inwardly.
- git. Although the "snapshot" feature is awesome and is arguably all that many people would want in a tool like this.
- autotest. This is a big one. I'm not much of a Rails wizard, but already I'm hooked on the joys of autotest.
Rather than ask for any of these potentially obscure features, however, let me ask this: how about a secure API that lets me (a) run rake tasks remotely and receive their output in return; and (b) upload/download any of my source files? Then I believe you can leave autotest, emacs, and perhaps even git support as exercises for the student. :)