Eileen joins Rails core

We’re proud to welcome Eileen M. Uchitelle to Rails core. Eileen has worked tirelessly on Rails for three years, and just completed a major integration bit to have Capybara-backed system tests in Rails 5.1.

Her fingerprints are all over Active Record, she’s been reviewing tons of community pull requests, pushed testing ever forward, and written a bunch of needed documentation. A very well-rounded involvement indeed!

Eileen is Rails core member #14 and our first woman on the team ❤️🎉👏

Kasper joins Rails core

It’s a privilege to welcome Kasper Timm Hansen to the Rails core team, and I’m not just saying that because he’s a fellow Dane, though it helps 🇩🇰! Kasper started contributing to Rails during the 2013 Summer of Code program where he worked on the new Loofah-backed sanitizer. It was a big job and Kasper aced it.

Since then he’s racked up almost seven hundred commits on a wide variety of projects and PRs. He’s helped countless contributors polish their pull requests to the point that their work can be committed to the framework.

He’s also continued making substantial, individual contributions, like the new partial collection caching scheme, wildcard template dependencies, and big improvements to the test runner.

He joins the core team as lucky #13 😎✨👏

Matthew joins Rails core; José joins Rails alumni

Please join us in welcoming Matthew Draper to the Rails core team!

Matthew is a kick-ass collaborator. He’s gone above and beyond PRs and technical contributions (which are sharp and on-point) by mentoring student groups, by coaching beginning Rails developers through their first apps alongside experienced developers working through design decisions & tradeoffs, by volunteering forserving on the Rails security team, and by emerging as a natural steward of the Rails way. His mindfulness for programmer experience & happiness puts Rails—the framework and our community—in good hands. Welcome, Matthew! 👏

Also, please join us in ushering José Valim into the halls of Rails alumni. José was once a Rails patch monster without peer, and has gone on to create the Elixir programming language and build a fantastic community around it. Gratefully, for everything: Thank you, José. ❤️

Senny and Godfrey to Rails core, Yehuda to alumni

The Rails core team has just accepted Yves “Senny” Senn and Godfrey Chan into its ranks.

Yves had his first patch committed to Rails back in 2011 and has since racked up 1256 commits of improvements to the framework. He’s a developer with 4teamwork from Bern, Switzerland, and we couldn’t be happier to recognize his great work by admission to Rails core!

Godfrey Chan has been on a tear this year to help making everything Rails better. A lot of work and commits and reviews have come from Chan to ensure Rails 4.2 is the best it can be. He had his first commit in 2012, and has since racked up another 255. Welcome as well!

Finally, Yehuda Katz is retiring from active core participation and will join the hallowed halls of the Rails alumni. We thank him dearly for all he has done to improve Rails and Ruby. It’s been a pleasure to argue with him endlessly over things big and small, and doubt that’s going to stop just because he’s now alumni.

Thanks to Yves, Godfrey, and Yehuda, and to everyone else working on improving Rails, for their service. The community is grateful!

What Is New in Rails Contributors

What is Rails Contributors?

Rails Contributors is a website that keeps track of all contributions made to the Ruby on Rails code base.

The application tries hard to give credit as accurately as possible, which is something you cannot do with git log. For example, according to Git the author of this commit is “@schneems and @mattt”, but you do not want to credit “@schneems and @mattt” right? Rails Contributors automatically splits the string, applies mappings, and gives credit both to Richard Schneeman, and Mattt Thompson.

Known typos, emails, and handles are associated to a canonical name to have everything aggregated per contributor rather than scattered in several unrelated listings. Heuristics also capture contributors from commit messages, and even from CHANGELOGs in the diff of commits imported from Subversion.

The purpose of all this work is to give credit, provide visibility to your contributions to Rails, and last but not least, to say thank you.

What Is New?

A new version of the website has just been published, changes are:

  • More mappings: the application knows about more mappings and false positives.

  • New page for releases: There is a new shiny page for releases where you can see who contributed what in any of them. The breakdown is approximate for old releases, since all we have from Subversion is the Git history. Commits are classified with git rev-list.

  • Better Unicode handling: Some names with non-ASCII characters came up from Git using different UTF8 byte representations. The application applies now NFC normalization thoroughly to address that.

  • Robust commit import: about one thousand commits were missing in the previous version because they were unreachable from the branch tips due to rarities in the git history. The commit importer is now more aggressive looking for commits.

  • Credit for Rails core in Subversion commits: Rails used Subversion in about its first four years. Subversion does not distinguish author and committer, you only have the committer. If the application determines that the author is not the committer using its heuristics, the committer now gets also credited. This is fair with what happens nowadays, where the committer gets credited by his work on a pull request via the merge commit.

  • Internal changes: A lot of work has no external visibility indeed, you know. We migrated from grit to rugged, and there were significant refactors and speedups.


The People Behind Rails 4

Rails 4 is coming along nicely with a ton of new stuff, but this major release would have not been possible without the help of some people whose contributions have been outstanding. We want to dedicate this post to them, to show our appreciation and recognition for their extraordinary work:

Arun Agrawal has been helping with some housekeeping tasks. He puts a lot of effort to remove warnings, fix broken builds, remove some unneeded code, and ensure Rails works well with JRuby.

Vijay Dev leads the docrails front. He reviews documentation patches, which is a lot of work, and cross-merges docrails and Rails master periodically.

Guillermo Iguaran is a regular active core contributor. Recently he has extracted old-style mass-assignment protection to the new protected_attributes gem, and is helping with the assets pipeline related projects.

Toshinori Kajihara (kennyj) helps to fix and give attention to Active Record issues, which are the most part of Rails open issues.

Steve Klabnik is working on Rails issues like crazy. I mean, GitHub notifications generated by his activity flood your inbox. Giving sensible feedback, dynamizeing threads, and closing issues. He has been key in halving the number of open issues.

Francesco Rodríguez has mainly contributed to the documentation, and also helps with tickets and code. Francesco has extracted page and action caching out to gems.

Piotr Sarnacki is an old-timer. Piotr helps constantly in the project and has done a remarkable work on Rails engines and Action Pack.

Prem Sichanugrist has been helping regularly since the Rails 3 days in many ways. He recently performed the daunting task of converting all Rails guides from Textile to Markdown.

Carlos Antonio da Silva is among the most prolific Rails committers. He contributes in all fronts, code, docs, issues, discussions, etc.

Andrew White has also been helping regularly for a couple of years or so. He is a solid contributor in several areas and in particular knows routing very well.


Ruby Hero Awards 2011

Ruby Heroes

It’s that time again to take a moment to think about those who have impacted the Ruby community this year but have not received the recognition they deserve. We have given away eighteen awards in the past three years at Railsconf, and this year we are preparing to give away six more.

But we need your help.

So, if you know someone who has contributed greatly this year please take a moment to show some gratitude by nominating them on RubyHeroes.com. In two weeks the Ruby Heroes from last year will look at the nominations and decide who should receive the awards (this way there’s no popularity contest). However, your nominations do matter, so please take a moment and spread the gratitude.

The winners will be announced live on stage at Railsconf 2011.

Rails Envy strikes .NET and CakePHP

The fantastic team at Rails Envy is back with their Apple-style commercials comparing Ruby on Rails to a variety of competing environments. This time they have a one-two punch first striking .NET and then doing PHP/CakePHP. As always, it’s funny stuff and really nicely done. Keep it up, boys!

Two Years of Rails Podcasting

Two years ago today, Scott Barron published the first episode of the Ruby on Rails Podcast. — Geoffrey Grosenbach

Wow, has it been two years already? Geoffrey’s been a major positive force in the Rails community even longer then that, starting with the humble Pluralizer, which helped us all figure out what table names our ActiveRecord models were supposed to be using. For his next podcast, he’s turning the tables and letting himself be interviewed by Dan Benjamin. Be sure to send in some challenging questions (see Geoffrey’s blog post for details).

Congrats on the milestone, Geoffrey, Scott, and everyone else that’s been involved with the Rails Podcast!

Ruby and Rails continues book bonanza

O’Reilly has analyzed the book sales once again. Here are the juicy bits about Ruby and Rails books:

In the Web design and development area, it’s worth noting that Ruby on Rails has continued its blazing growth, but Ajax books have not. The decline of both PHP and ASP are striking…

…Rails in the bottom middle was a small speck in last year’s first quarter post. Now the size of the box fits the size of its name at least. And its market share is almost equal to SQL and has surpassed VBA, Perl and Python. Python is also experiencing good growth, just not at the blazing velocity of Ruby. I would expect by next year, we will see Ruby have an even larger share/square.

Computerworld names Rails #1 tech to know

Computerworld is pinning Rails as the #1 technology to know in 2007. As the only piece of software among group of hardware including NAND drives and new CPUs. About Rails they write:

Equal parts design philosophy and development environment, Rails offers developers a few key code-level advantages when constructing database-backed Web applications. One of the central tenets emphasizes using less code for application development by avoiding redundancy and following Rails conventions. This means increased performance and, ideally, decreased development times.

JRuby enters the home stretch for Rails support

We’re on the home stretch now, and Rails is getting more and more solid every day. With you all helping, we should be able to finish off the remaining failures, clean up major outstanding JRuby issues, and kick out a pretty sweet “Rails-supporting” JRuby release in the next couple weeks. — Charles Nutter

I’m not a Java guy by any means, but I don’t think anyone disagrees that this is great news. Why? The idea of dynamic languages on the JVM is very appealing, even Ryan Tomayko thinks so.

Now, being a recovering C# programmer, I had no idea how to get JRuby installed and running. So, here’s a quick newbie guide for you Mac OSX users. If you have good instructions for other platforms beyond what’s in the JRuby blog, please post or link to them in the comments. Also, be sure to use the proper reporting channels for any bugs you come across: the Rails Trac for Rails bugs, and JRuby’s JIRA for JRuby issues.

  • First, you need java. Luckily, it happens to ship with Tiger. “java -version” tells me I have v1.5.0_06. Awesome.
  • I actually set this up over the weekend, and used ‘ant test’ to build and test JRuby. This required me to install JUnit to proceed. I just created a directory to act as my CLASSPATH, and threw junit-4.1.jar in there.
  • Set up a few environment variables (see below for the list).
  • Add /path/to/jruby/bin to your PATH.

export CLASSPATH=/path/to/junit-4.1.jar
export JRUBY_HOME=/path/to/jruby
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
export JRUBY_SHELL=/bin/zsh

After this was done, I was able to run jruby or jirb directly. Depending on where you add the jruby/bin path, you may or may not be using the JRuby gem script or not. Use ‘which gem’ to check.

There you go, you should be all ready to help the JRuby folks out.

The Rails Edge

I’ve been wracking my brain trying to come up with something to say about The Rails Edge that isn’t already obvious. The problem is that everyone already knows that Dave Thomas and Mike Clark have been delivering top-notch Ruby on Rails training since last year, so I don’t have to say what a good deal this event will be. All the speakers are already famous Rails peeps in their own rights and don’t need their virtues extolled (even Marcel). And I certainly don’t need to tell anyone how much fun it is hanging out with a bunch of Rails folks for three days.

One thing I can offer is a personal testimonial as to the quality of the Pragmatic Studio programs. I took the Rails Studio back in January. Up until then I’d only dabbled with Rails. After taking the studio I had the knowledge to build real applications, and now I’ve got a job doing Rails development full time and am an author on the official Rails blog.. One can never know what might have been so I can’t say I owe it all to that training, but I certainly got a lot from it and happily give it credit for getting me going in the right direction.

This year, RailsConf and RubyConf both sold out in a matter of hours. There is a huge demand for conferences - people want to learn what’s up in the Rails world, to meet other Rails developers, and to improve their Rails development skills. We’ve started to see some regional conferences being organized which could potentially be pretty cool, but there is always a place for a professional production like The Rails Edge. If you’re looking to get more involved in Rails, you should check it out.

Just in time for the holiday season, the Peace Library

The Peace Library is an online index of Conflict Transformation & Peacebuilding information featuring research papers, reports, and news related to the Sri Lanka peace process put together by the non-profit web media company InfoShare.

It’s in “beta” but already features 207 publications wrapped in an attractive interface. Read more about them here.

Yet another nice app riding the Rails.

ThoughtWorks wins big contract on Rails

Obie Fernandez has a great story on how ThoughtWorks recently won a $800,000 bid for a critical application against another consultancy. They probably do that all the time, but the interesting part about this particular bid is that they made it powered by Ruby on Rails. The other consultancy bid a million dollars for a Java-based system, but the CIO picked the Rails solution from ThoughtWorks.

So saving $200,000 was obviously a big advantage of the Rails bid, but more interesting is the second-level concerns. Obie writes:

Analysts from Gartner and Forrester and even members of his personal grapevine are all abuzz about Ruby… Ruby may not be a corporate standard (yet), but don’t even get him started on his organization’s dismal track record building J2EE applications… The risk of late delivery is much, much scarier to him than proceeding with a relatively unproven technology that the whole world seems to be talking about as the successor to Java.

This story comes hot on the heels of Stuart Halloway’s exposure of how Rails makes it possible for his consultancy to win accounts over Java solutions due to higher productivity. As he put it:

Developers have more fun, make more money, and customers get better products cheaper and faster.


UPDATE: The story is indeed “fictional”, but with the very deep underlining of “inspired by real events”. Obie has no permission to speak on specific deals of ThoughtWorks, so names have been withheld to protect the real involved parties and the exact figures, estimates, and so on.

.NET'ers tell Scoble why they left for Rails

Microsoft’s Robert Scoble is concerned about the exodus of developers like Phil Ripperger that are leaving .NET for Ruby on Rails. Phil put it like this:

Scoble, as a web developer who is now doing freelance work for a living, my framework of choice is Ruby on Rails. Mostly for the reasons listed here. And also because Microsoft’s web development technologies have lost their appeal. I can remember being blown away by ASP.NET when I first saw it. I now feel even more strongly about Rails. And when I talk to businesses and friends who are developers, I make sure they know about Rails.

Sure, I know about the new Visual Studio, ASP.NET 2.0, the new SharePoint, and the new SQL Server. And I just don’t care. Microsoft needs to capture some of the 360 magic and use it on their web development technology or they will continue to lose developers like me.

Scoble is inviting people to tell him and Microsoft why .NET and family just isn’t doing it for them any more. If you have a good story to share, do let them know.

How picking Rails over Java affects bidding

Stuart Halloway explains in numbers how picking Rails over Java affects the bids he puts in for consulting jobs. Since the actual programming is only one part of the bid, Rails naturally only has a chance to affect that part. But still, the approach that Stuart takes in differentiating between the two is quite interesting.

For applications that Justin consider “within the sweet spot of Rails”, the bid will usually be 30-50% lower. For stuff outside that sweet spot, the bid will still be about 10% lower than the equivalent Java one.

Ruby the Rival: What does Java look like post-Rails?

O’Reilly’s ONJava.com had a chat with four prominent Java developers under the title of “Ruby the Rival”. Half of them has switched a big chunk of their development to Rails.

James Duncan Davidson notes about the maintainability of Rails applications and the size of the apps that can be built with it:

Can a team write a Ruby on Rails app that performs a large number of features, does it well, and is maintainable over time? Yes. No question. After working with Ruby on Rails for a while, I would be confident tackling any size web application problem with it. But, that’s because I’ve spent some time with it and now have seen that it’s possible to write a well-designed application.

Bruce Tate on what increased productivity means for organizations:

What if the productivity numbers are real? What if you really can get a 5x boost? Then, you can do the work of divisions with a department, and the work of departments with a team of two.

Do read the whole thing.

Chinese Slashdotting of Rails

I’m guessing that the article is talking about the News.com feature today, the BBC announcement, and the fact that the Sun CEO was dropping us link love, but I’m not sure. No matter what, it’s pretty cool to get a Chinese Slashdotting.

Rails and Zvents on Digital Life TV

Tyler Kovacs, CTO of Zvents, had a great segment in the DigitalLife TV episode 10 where he got to showcase his Rails application and talk about Ruby on Rails and Ajax in general. Thanks a bunch for the kind words, Tyler. It’s great to see Rails getting some TV coverage.

Tim O'Reilly: 'Rails has taking the world by storm'

Tim O’Reilly responds to a concerned programmer that is pondering the relevance of Perl in the face of competition from PHP, Python, and the statics .NET/J2EE.

Tim concurs that other languages have been gaining rapidly while Perl hasn’t. And as the original question didn’t mention Ruby nor Rails, he takes the opportunity to present the O’Reilly perspective on the duo:

The other scripting language (in addition to Perl, Python, and PHP) that we’re paying a lot more attention to these days is Ruby. The Ruby On Rails framework has taking the world by storm, and has gone one up on PHP in terms of making database backed application programming a piece of cake.

Welcome to the era of quick’n’clean.

Not knowing where it hurts in ASP.NET

Demetrius Nunes is feeling the pain of going back to maintenance on an ASP.NET project after spending considerable time in Ruby on Rails. He writes about why there might not be more ASP.NET developers looking around for a replacement. When you don’t know where it hurts (or even if it does at all), it’s hard to contemplate improvement:

The main problem here is that until you have the actual experience of working with a good framework like Rails to ease your pain, you don’t feel the pain at all! Or maybe you do feel it, but you just don’t know where it hurts. And to make matters worse, there are very few people that do things differently from you, so you just convince yourself that’s just part of the work.

Traditional ASP.NET development means coding everything on your own, following some of the .NET industry “best practices” promoted mostly by Microsoft – their blueprint examples all do things ‘traditionally’, and then you assume to be the best way to do it. That includes writing stored procedures for every tiny database mangling you need to do and using Datasets and their brothers and sisters for carrying data over the layers, and so on. Object-relational mappers? Who needs them, right? WRONG!

He also recommends a couple of approaches to do if you for some reason have to do ASP.NET and can’t do Ruby on Rails.

'These folks have their priorities all wrong'

Brian McCallister is frustrated that Ruby on Rails is taking away his joyful life as a tool smith. Always creating new libraries and frameworks. Now with all that stuff taken care of, he’s left having to do the actual work:

Along comes RoR, now I find myself having to bear down and implement the actually business functionality for the application. Now it is “implement a SOAP/HTTP service to allow the Swing client to post back its offline changes” and “build an arbitrarily queryable entity-change audit report.” This is no fun compared to writing a config file parser or persistence abstraction layer that can transparently swap out any number of relational databases, orm frameworks, ldap backends, or transaction log based in-memory systems!

That’s bad news when you’re a self-professed “library and framework writing junky”. At least he gets to talk about it. Brian is doing a session at ApacheCon Europe later this month entitled Cheap, Fast, and Good: You can have it all with Ruby on Rails.

Have a great conference, Brian!

\'You\'re probably sick of hearing this\'

Luke Sutton can’t help but share his recent discovery:

OK look, I don’t wanna seem like a total fan-boy and I know the hype has been almost too much. I know you’re probably sick of hearing this and I know you are probably a bit dubious — sceptisim is an admirable trait. I really really really have to say this though; Ruby on Rails totally kicks arse.

'Agile development seems natural'

Joe O’Brien is teaching Ruby on Rails to the consultants at his company and is especially enjoying how the language and framework two-pack makes agile development so natural:

Ruby and Rails have captured my heart and mind, not only because of the simplicity of the language itself, but also because of how much easier I can use agile development techniques without feeling as if I’m doing something outside the norm. No, I’m not saying agile development with Java is impossible, but I’m saying with Ruby and Rails, agile development seems natural, and almost a part of the language.

We call that “best practices by invitation”. By generating test stubs, having wiring for mocks ready to be dumped in, following a consistent directory structure all makes it easier to do the right thing. Less chores, more benefits.

'Rails is one of those economy changing tools'

Pelle from Stake Ventures augments Joe Kraus’ It’s a great time to be an entrepreneur with the notion that on top of cheaper hardware and free infrastructure, we also have better frameworks today:

It is a lot easier and quicker now to bring a new service from concept to launch. One of the biggest things helping this is the emergence of new practical web frameworks like Ruby on Rails . This allows single person or tiny teams to incredible things in very short time.

There are other similar frameworks where you could do similar things quickly, but really Rails is one of those economy changing tools that is and will cause a lot of turmoil in the world of web applications.

Productivity improvements are a big part of the push from the bottom. Skipping the need for scaling up in people makes it much easier to get off the ground. $100K is quite a lush sum if all you need is three people for a couple of months.

Going from ColdFusion to Ruby on Rails

Michael Buffington from Adaptive Path talks about his experience going from ColdFusion to Ruby on Rails. Here’s a choice bit:

I’d say it took me less than 10 hours to build wordPhoto.org, which includes image uploads, thumbnail generation, email notifiers, a user login system, extensive data validation, clean urls, and various Ajax tidbits. That’s super impressive.

ASP.NET vs Rails analysis from a veteran

On a the topic of ASP.NET vs Ruby on Rails on the ruby-talk mailing list, Christian Romney wrote a long analysis over his experience with the two. Here’s my choice bit:

I disagree that ASP.NET is more productive than RoR. I have been FAR more productive with RoR after just a few months of learning Ruby and a few weeks of using RoR than I am with .NET even though I’ve been coding on the MS platform for 10 years, with half of that time spent almost exclusively working on web applications.

Romney especially likes Active Record and the “architectural guidance” of the framework. But there’s definitely also some love for .NET where he especially likes the transaction support and enterprise features like message queueing. Read the full thing.

Javalobby founder: 'Ruby on Rails is a powerhouse'

Dave Thomas is turning them into believers by the dozen at the No Fluff Just Stuff symposiums. His one-two of Ruby for Java Programmers and Ruby on Rails talks are delivering just the cocktail to get a whole lot of people interested.

One of those people is Rick Ross, the founder of Javalobby. Under the heading of Ruby on Rails is a powerhouse, Rick wrote the following in the most recent newsletter from Javalobby:

I didn’t get to spend much time at the No Fluff Just Stuff symposium here in Research Triangle Park this past weekend, but one noteworthy session I did get to attend was Dave Thomas’ presentation about “Ruby on Rails.” I was amazed as I sat through the 90-minute presentation watching Dave knock out feature after feature of a real-life web application in record time and with more compact code than any I had previously seen.

The Rails developers seem to have carefully considered the recurring pattern needs of web apps, and the framework provides full functionality for a typical database-backed CRUD (create, read, update, delete) application in a matter of minutes. Rails uses intelligent reflection to map database tables to Ruby objects, and the apps you generate with the Rails scripts form a very reasonable foundation for extending and customizing to meet your specific needs. Unit testing is built-in by default, as is a full web server for testing and debugging.

The next time you need to get the job done very quickly you may want to try out Ruby on Rails for yourself. I don’t know enough yet to say how much it can scale, but Rails is quite clearly a major step forward for those who want web application development to be easier. Dave has a new book in beta, check it out here.

Thanks a bunch, Rick. And keep it up, Dave.

Happy thoughts on IRC

Some times you just need an evening smile and IRC can deliver just that. Glancing over at #rubyonrails, I caught this one from matram:

Rails is the best! I was just on the phone with a client and made some changes while we were talking without telling her and she freaked and was so excited she raved about it for like ten minutes.

James Duncan Davidson embraces Rails

James Duncan Davidson and Mike Clark have been working together on a commercial Rails project for a few weeks now. And while Mike has long been singing the praises of Rails (much appreciated!), I’ve been quite curious to hear James’ thoughts. I’m very flattered on behalf of the Rails team to quote the following:

Rails is the most well thought-out web development framework I’ve ever used. And that’s in a decade of doing web applications for a living. I’ve built my own frameworks, helped develop the Servlet API, and have created more than a few web servers from scratch. Nobody has done it like this before.

He goes on to talk about how Rails is of course not perfect, but that he really likes the Convention over Configuration and says “…if I never see another damn XML configuration file in my life, I’d be happy as a pig in mud”.

I can’t wait to see how all these great Java minds are going to unleash their ideas on the platform. There’s a melting pot brewing with the influx of programmers coming from PHP, Java, .NET, and other environments as well as all the designers picking it. Great things in the making.

Appreciating the functional testing in Rails

Jonathan Nolen and his buddy David has been having a lot of fun practicing eXtreme Programming with Rails over the weekend. He’s most impressed by the support for functional testing:

With Rails, however, you can easily functional testing — where they go, how they’re routed to get there, and whether or not they have the data you expect when they finally render. And it’s done in a dead-simple way. No Cactus, no mock container, no extra framework to install. It’s all built right in. Now, it won’t cover everything — browser differences, javascript, etc. But it covers so much more than we’ve been able to manage in our Java project.

Thanks, Jonathan. We’ve tried really hard to make testing so easy that it feels like fun, not a chore. Now that you’ve checked out functional tests, do dig deeper into the great mock support in Rails.

"Two hours later my .NET career was over"

Tim Case was playing the .NET game when one destined Saturday afternoon sent him a wakeup call:

Last November one Saturday afternoon I was pissed off and frustrated trying to get NHibernate to work with my middle-tier C# layer, and in the midst of my difficulties I did what all great people do when faced with tough problems and hardship… I procrastinated by surfing the net. From Prag Dave’s site I made it the the rails site and in attempt to further prove that techology lies I ran the 10 minute intro video…

10 minutes later, I couldn’t believe what I had just saw, so I started doing the Rails academy tutorials…

One hour later, my jaw was on the ground as I stared at my todo application running from MySQL so I started investigating rails further…

Two hours later my .NET career was over. It literally happened that afternoon. I no longer had any interest in NHibernate or even seeing Visual Studio ever again.

Tim Case also wrote an interesting article called “Where the Rails came from…” that traces the influences of Kent Beck (TDD), Eric Evans (DDD), Martin Fowler (PoEAA), Dave Thomas and Andy Hunt (Pragmatic Programmer), and a lot more. We’ll see if we can get that online shortly.

Seeing is believing, part 342

Tobias Luekte gave Medsphere where Todd Berman works a visit and quickly turned doubt into believing:

Tobias, in one day, with rails was able to put together a webapp for us that would normally take a week at least to write. For even more coolness points, it used ajax where it made sense, and did a full postback where that made sense. It was absolutely amazing to see someone use this. Up until then, I was kinda doubtful about rails, but now I am totally sold. As far as a web application platform, I can’t think of a single thing better.

This was just one of a few stops Tobias made on his trip down to Orange County. A trip that was as much about personal believing as convincing others:

Its great to talk about rails with people face to face and Its even greater to see the adoption rate increase so radical and even make it into new industries daily. Its exciting times and It will only get better. Rails is where its at.

"This era' true revolution in web development"

Phu Ly is a software developer working out of London that seems to quite fancy the Rails:

Ruby on Rails has to be the one of the real breakthroughs in Web Development and indeed, development itself…

This is no hyperbole. Far more so than Ajax, this is this era’s true revolution in web development. The majesty of the framework is sufficient for me to make a long term commitment to Ruby; In fact, calling RoR a Ruby framework understates things; it’s probably the killer app for Ruby itself.

Thanks, Phu.

Allowing developers to use the tools they love

Hank Roar is the customer on a project being developed by ThoughtWorker Obie. He’s quite pleased with the progress:

Never under estimate the importance of allowing developers to use the tools they love. I don’t personally know Obie well, but I think he feels passionate about Ruby and Rails. This, coupled with the fact that the simulators will not go to my ultimate users, has resulted in the simulators being fun to use, not just simple data entry forms. The executive sponsor was very impressed with the simulator. I think the sponsor really enjoyed how much fun it was to use.

Jon Udell discovers Ruby on Rails

Jon Udell discovers Ruby on Rails and shows special affection for Active Record in Separating code from its environment:

I’ve only scratched the surface of Ruby, but when I recently started a project that required a Web-based interface to a SQL database, I reached for Ruby on Rails, because I’d heard it’s a great way to automate the tedious chores of Web development. If there is another object-relational mapper that is as powerful and yet as lightweight as Ruby on Rails, I haven’t seen it.

Justin Gehtland is back with numbers to back it up

Justin Gehtland is back with numbers to back up his original claim that “Rails is actually faster” for his application than the Java/Spring/Hibernate/JSTL stack powered version was. Through various benchmarks, he has found Rails to be roughly 15-30% faster than the old Java version. Interestingly enough, it seemed that Rails was especially better performing on deeper domain features:

What I found was that, the less complex the feature, the faster the Java app served it relative to the Rails app. The more complex the feature, the slower the Java app served it relative to the Rails app.

Looking at pages that are a good fit for caching, the difference is a lot more startling. While Justin admits that there was probably a lot more work with tuning and tweaking that could be done on the Java versions (where page caching in Rails is triggered by 1 line of code), his tests shows the Rails version to perform 1,754-1,785 requests/second vs the 80/88 requests/second on the Java side.

The blistering performance is naturally due to the way that Rails steps out of the way for page caching and lets lighttpd serve the caches straight from the static cached files. So while the difference is 20:1, it’s not that interesting a comparison. Except for the point that this type of page caching is integrated in the Rails framework and used by default. So it requires no effort to get this type of performance.

But even though Justin now has the numbers to back up his claim about his particular application, such numbers are not in generally all that interesting. I concur with Justin that the interesting conclusion is that Rails isn’t naturally dog slow because its in Ruby and a Java/Spring/Hibernate/JSTL-stack app not automatically blazing fast because its in Java:

To me, the eye-opening revelation isn’t “Rails is faster than Java/Spring/Hibernate”. It’s “Rails can be very fast”. I think that there is a lot to be said for Rails, and it deserves much of the press it is getting.

Size of the application
Just as extract general lessons about performance from particular applications, so is it hard to compare the size and complexity of two solutions implementing the same application. So measurements such as KLOC are hardly the be all, end all. They’re merely indicators.

But as such indicators go, Justin serves a rather nice one with the comparison on his application. The Rails application was done with 1,277 lines of code and configuration while the Java-stack application required 4,454 lines. About a factor of 3,5×. And here comes the kicker, the Rails application includes a month’s worth of new features added over the abandoned Java version.

So what does all this mean? Justin concludes…

I think that the application I’m working on is perfectly suited for Rails and Rails is perfectly suited for it. I think that I have had more fun working on the Rails app than the Java version. However, I think that the Java version is just as capable, and could be just as performant, as the Rails app.

I think there are plenty of applications, and development teams, that are better suited to Java and its immense universe of available support libraries. I certainly am not going to stop developing in and learning about Java just because I’ve discovered Rails. On the other hand, I am going to spend more of my time trying to find projects that I can use Rails on.

Justin Gehtland is the co-author of Spring: A Developer’s Notebook due out this month (congratulations!).

O'Reilly's CTO praises Rails to the chocolate skies

Rael Dornfest seems to be having a chocolate good time digging into the crunchy Rails. As the Chief Technology Officer at O’Reilly Media, he certainly has a good touch with the pulse of the industry and this is what he’s been seeing:

The chocolate in this equation is Ruby on Rails: a framework for building database-driven web applications. But far from being yet another web development framework, Rails is known for its small footprint, low barrier to entry, flexible-yet-powerful, “more joy and less code” approach to application building.

Indeed, we’ve been seeing interest in Ruby explode over the past few months: no doubt in large part due to the swift adoption (or at least tire-kicking) of Rails.

Ruby on Rails was off to a good start even before bringing Ajax on board; and it’s only gone from strength to strength since.

Thanks a bunch, Rael!

Scaling the productivity gains on larger projects

Evan Rabble is the lead developer on the forthcoming podcasting portal Odeo. He’s being working with Rails for some time now and has just done a write-up on how the productivity of the environment scales on a larger (than a todo example) project. Great perspectives. I especially like the one on the learning curve:

Another thing which i think is important when looking at web app frameworks is learning curve. I’ve had 4 other people pick up and contribute to the code base. Three of those people working remotely. They’ve all picked up and be able to understand the system quickly. The learning curve was very short and the code was generally readable.

This contrasts to my experience with zope, perl frameworks, and java. All three of those technologies had steep learning curves which required lots of face to face collaboration to bring people up to speed. With the exception of Florian, nobody had previous experience with rails or ruby beyond building a weekend example app and reading the tutorials.

Best of luck with the launch of Odeo!

Going to the good video store

Josh C from the Eggplant Coop sent me the funniest switcher quote I’ve seen in a while:

We compare moving to rails from our in-house perl web framework to the scene in “Clerks” where Randall goes to the good video store ;)


Another pair of ThoughtWorkers pick up Rails

Obie Fernandez and Carlos Villela are ThoughtWorkers following the lead of other company programmers, like Aslak (who’s getting DamageControl on Rails) and John Wilkers, in exploring Rails further.

And while the first hit was free, the addiction is now setting in. Carlos writes:

…more often than not it’s hard to stop coding; more than once I’ve looked at the taskbar and gasped in disbelief – over the past month, I’ve coded way past 2 AM after having worked the whole day, and even though I needed to wake up early the next morning, I was not tired at all. So, to put it in another words, careful – this thing is addictive.

Obie takes a slightly more bullish approach and compares it with the woes of his day job in Java:

At work, as of this monday I started work on a project that would have most Java open-source fanatics salivating. Custom web app running on Java 5, Tomcat 5.5, Hibernate 3, Webwork… Cutting edge stuff, right? Right?

No way. Web development with Ruby leaves Java far, far behind.

Overall, the productivity loss is giving me withdrawal symptoms. I can’t wait to get back to my beloved Ruby this weekend.

ThoughtWorks is the company that employs Martin Fowler as their chief scientist. I asked him for an opinion on it all and got: “At the moment what I’m waiting for is to see if some us can use Rails on an actual project.” Very much looking forward to hear his and the rest of the firm’s evaluation once ThoughtWorks is able to land its first Ruby on Rails contract.

Maybe the client Obie Fernandez is working with would be a good prospect. In the comments to Obie’s withdrawal posting, Hank Roark writes:

I just happen to be the customer of the project Obie is working on. And I’m pretty happy with the team’s progress. I’m afraid that my expectations have been lowered by years and years of experience in the Java realm. Obie may convince me to use Ruby Rails, yet.

It’s great to see so many ThoughtWorkers getting into Rails. I had the good fortunes to hang with their JAOO 2003 delegation shortly after I had picked up Ruby, while Rails was still a mere twinkle in my eye, and thoroughly enjoyed it. Rock on.

Craig Walls: 'Honestly, I'm quite impressed'

Craig Walls is the coauthor of both Spring in Action and XDoclet in Action. Recently, he had “…come to the conclusion that I could not ignore Rails any longer”. This is what he found:

Honestly, I’m quite impressed. I found that the productivity claims surrounding Rails to be quite accurate. After writing only a single line of code, I had a reasonably functional application. Adding a couple of more lines, I had a one-to-many relationship between two model objects. The biggest chunk of work comes in customizing the view, but that’s to be expected because there’s no way that Rails can anticipate your desired look-and-feel. All in all, I spent 15 minutes putting together a simple application that might have taken me several hours with any of the other frameworks that I’m familiar with.

My emphasis. This is the same conclusion that Bruce Tate has been talking about. It actually does rapidly improve your ability to deliver working software. Is the factor 2, 5, or 10 times? Who knows (and cares?). How about we just settle it at it’s enough of an improvement that you ought to try it out for size.

Bruce Perens' glowing ode to Rails

When Bruce Perens first showed up at the #rubyonrails IRC channel, we were honored by his presence. Bruce is a thought leader on free and open source software and the series editor of Bruce Perens’ Open Source Series from Prentice Hall. He’s also an avid Ruby on Rails convert and asked me to post this endorsement here:

In 1981, when I started working on Unix, I remember being blown away by the power of the command-line pipes-and-filters paradigm. You could get real work done with simplicity, clarity, and economy of notation that wasn’t available in anything else at the time. I’ve worked with lots of programming environments since then, but none of them gave me that feeling of being able to write a solution so well that working code just flew off of my fingers. Until now: Ruby on Rails achieves for web programming the same sort of conceptual leap that Unix made for file-handling. You’ve got to try it!

As one who rarely misses an opportunity to tout the Rails horn, this is almost too kind. Thanks so much, Bruce!

'Ruby on Rails hurts developer productivity'

I tried to warn him, but he wouldn’t listen. Jakob Skjerning, who helped redesign rubyonrails.com and whom I worked with on Daily Rush, has been sucked into the Rails vortex:

After having gotten used to RoR for a private project or 2, all the web development stuff I do at work feels ugly, clunky and unproductive, simply because I am not using Ruby on Rails for it.

So take my advice: If you are stuck doing legacy work on a legacy system, don’t think about learning RoR – you might never want to go back to work if you do.

So let that be a warning to all of the prospect Rails programmers out there. Be careful what you get started with.

We actually have a thread on feeling dirty about not doing Rails on the mailing list right now. Rick Olson writes:

Going back to ASP.Net development makes me feel dirty. What? I have
to update the stored procedure, the model, the DAL, the form, and
create a new server control just to add a property???

Tim O'Reilly mentions Rails at ETech

Tim O’Reilly opened the Emerging Technology conference today with a talk on pattern remixes. Much to our delight, Tim choose to highlight Ruby on Rails during the talk. I don’t have much specifics outside of what few notes the blogosphere has jotted down, but Jeff Clavier blogged the quote as: “Ruby on Rails: being able to develop real-world applications with simple design and almost no code.” Not a bad summary.

If you’re at ETech, don’t forget to check out Jason Fried’s presentation, which follows the form of the one he gave a few days ago with great success at SXSW.

\'It\'s like your programming back in Assembly\'

Shanti A. Braford is being forced back into PHP after getting jiggy with Ruby on Rails. He’s not liking it one bit:

Programming a web application in PHP feels a lot like reinventing the wheel, after having learned Ruby on Rails… Welcome to the world of a Rails developer who has drunk the Kool-Aid but has gone back to the world of PHP. You’re used to things just working so easily and intuitively, like magic almost, yet they don’t anymore… It’s like your programming back in Assembly after learning a high-level language like Java or something.

With this level of discontent, I sure hope he has deeper reasons for going back than not wanting to make a Ebay WS wrapper (should hardly take more than a few hours, tops) and a responder to a DHTML cropper (RMagick is wonderful).

Is the trade really worth it, Shanti?

'I set out to prove those Rails folks wrong'

Steven R. Baker was “…depressed by web development”, but he also pretty sure that “…sophisticated applications wouldn’t be any easier to build with Rails”. So what did he do? He gave it a try:

So I did what any self-respecting skeptic would do: I set out to prove those Rails folks wrong. I was asked to write a web application for customer and work order management. I decided that this would be a good chance to learn Rails, and prove those Rails folks wrong. Rolling with Ruby on Rails told me that I would write web applications ten times faster using Rails. I prepared a schedule as though I was writing the app with PHP, and quoted my client one quarter of the estimated time (three weeks). In the space of that three weeks I went from having not written a line of Ruby outside of text book examples, to developing a fully functioning (and mostly tested) Rails application for a client.

The borg is at work. Baker finishes off with:

In mid January, I set out to prove those rails folks wrong. Now I’m one of them. Prove me wrong.

'Broke down, saw the light, whatever you want to call it'

Rails is certainly going through rapid improvement. Marcel Molina used to joke on #rubyonrails that he was so busy refactoring his application to take advantage of all the new goodies coming out that he didn’t have time to do any real work.

The rapid improvement is increasing the number of people for whom Rails hits the sweet spot, though. Kellan Elliot-McCrea from LaughingMeme writes:

Broke down, saw the light, whatever you want to call it, but I finally whipped up my first Rails app last night.

When I first looked at Rails a few months ago, I liked what I saw but was frustrated by the extreme magicalness of the framework which baked a number of assumptions into your app I wasn’t willing to concede. Turns out Rails hit the sweet spot of being good enough, the sweet spot where people pile on and the framework has improved rapidly.

Did you look at Rails a few months ago and decided it wasn’t you yet? Perhaps it is now.

The power of readable metaprogramming

Oliver Steele is Chief Software Architect at Laszlo Systems and he’s digging into Ruby on Rails:

During my last vacation it took about five lazy vacation days with Ruby on Rails to implement a fairly sophisticated 40-page web application with five models, two metamodels, CRUD, cookies, image upload, and login. (I’ll write more about the application itself, if I find a few free weekends to harden it for public use.) For comparison, it took me about the same amount of time during my previous vacation to write a much simpler ten-page PHP web application that had only one model. And I already knew a little bit of PHP, whereas I was learning Ruby and Rails from scratch.

He explains how much of this productivity stems from the fact that “…Ruby is one of the rare languages with a readable embedded syntax for metaprogramming”, which in turn “…lets the library user write in a concise domain-specific language that embeds Ruby”. The unique power that gives us Associations and Validations.

I’m really glad that Oliver looked into Rails because that has in turn lead me to really dig into Lazlo. It looks pretty darn neat! I’d definitely love to see someone do a Rails backend with a Lazlo frontend.

Ease of development, speed of execution, pick two

Justin Gehtland has been working on an application using the Java/Spring/Hibernate/JSTL stack for about 5 months. He started redoing it in Rails as an experiment and found something surprising:

I’ve been able to re-implement 80% of the functionality in just under four nights of work. Some of that most assuredly has to do with the fact that I understand the domain pretty thoroughly by this point. But a lot of it has to do with the sheer productivity of the framework.

He attributes this to convention over configuration, and how the “…configure, compile, deploy, reset cycle for running tests is time consuming on my original stack, and non-existent with Rails”. But all that is just the familiar tune on “ease of development”. Here’s the real kicker:

Rails is actually faster.

At runtime, the Rails implementation is at least as fast as the original stack in almost every case, and for a not-insignificant portion of actions, actually performs better. I haven’t run benchmarks yet, but I will as this effort progresses, but I was shocked (shocked, I say) to discover this.

Justin is the co-author of Better, Faster, Lighter Java and Spring: A Developer’s Notebook.

Welcome on over, Justin! I can’t wait to read more about your adventures with Rails. And best of luck convincing your customer to dump the 5-month effort in favor of your 4-night rewrite. I’ll be cheering for you.

Rails praise from around the web

The latest article by Curt Hibbs and the excellent Four Days with Rails are working wonders to attracting new people to Rails. Here are some of the snippets from people who’ve been blogging their discovery of Rails the past few days.

Nicholas Jon lists Ruby on Rails as Things to Learn:

Everyone seems to be all-a-twitter with this framework. I started messing around with this last weekend and am hooked. At this point it’s a little like listening to an Italian opera — I can tell everyone’s saying beautiful things, I just haven’t a clue what any of it means.

…in the comments, Todd follows up with:

The more I use Rails the more I like it. Partly because it’s improving all the time and partly because I find out new ways to make development less painful with it. I was burning out pretty bad using PHP.

Shane picks up on the over-serving riff and writes:

Rails fills a gap that has existed in web frameworks for a long time. You have J2EE which is geared towards the most complex projects, and then you have server side scripting which can be used for simpler projects. Rails fits right in the middle, which I believe satisfies the requirements of a majority of the projects out there.

Zef Hemel is digging into the scaffolding fun and ease of installation:

I love Ruby on Rails. It’s very easy to use and seems very productive. I’ve often complained about the amount of work that you have to put into applications that basically don’t do much more than adding, editting, linking and removing entities. RoR makes this very easy… What I also liked is how easy it was to get started. On Windows all I needed was to download the Ruby installer and MySQL and I was ready to go. It was very easy to install RoR by using gems and as RoR came with the Webrick webserver, there was no confusing Apache configuration or anything.

Bruce Tate discovers Ruby on Rails

Bruce Tate is the author of Bitter Java and Bitter EJB, so if you were just judging by the titles of those books, you may not be too surprised that Tate is at least interested in an alternative. There’s a long way to get a conversion out of it, but Tate at least haves Rails on the radar and are seeing some of the possibilities:

Which brings me back to Ruby on Rails. It’s got that magic. I’ll just give you a little taste. When you’re mapping a Java class to a schema, you must often type the name of a property five times. FIVE TIMES Count them. Three in the bean: the getter, the setter, the instance variable. One in the schema: the field. Two in the mapping: the property, and the column. In Ruby, you type it once. Reflection and inspection of the database handle the rest. You use intelligent defaults and naming conventions to handle the rest. You can always override differences, but you don’t have to.

Keeping DRY is a big part of what makes Ruby on Rails special compared to the Java world. Getting rid of the bane of compilation in the development cycle is another big one.

'They won't ever fit together like Rails'

Matt Grayson is another Python programmer that despite his love for Python “…haven’t done much Python lately”. He blames Rails, which he declares “…is worth the hype.”. On the prospect of seeing Python on Rails, he offers:

The closest thing I’d found to Rails in Python is a combination of CherryPy, SQLObject and Cheetah. But as much as I like each one of those pieces individually, they won’t ever fit together like Rails – which is why I don’t have a lot of optimism for things like Subway. I’ve got nothing against Subway. Could they pull it off and put together a really good Python web framework? Sure. But, given the track record of past attempts at web frameworks within the Python community, I won’t hold my breath.

And Jake from Maui is yet another Python programmer that has been getting into Ruby through Rails:

Every time my work took extra time, it’s because I was expecting a level of complexity that wasn’t there. Wow. It’s not often that one of the tools I use humbles me, but finally I’ve found something that allows me to write code as fast as I think.

Soo many quotes, so little space

Xavier Defrang characterizes himself as a “…a frustrated Python-lover writing object-oriented PHP code”. He has contributed to the O’Reilly Python Cookbook and initiated the french translation of Dive Into Python. Despite his pythonic love, he has also managed to post the single most flattering article about Rails I’ve yet to stumble across in which he compares Ruby on Rails to Java, Python, and PHP.

The number of quotes and passages I want to pull out are so plentiful that I can hardly decide. Here goes a few:

  • The recent Trails video walktrough just showed that J2EE zealots were definetly not getting it: the What is as important as the How
  • I consider myself a real Pythonistas… and I’ve never thought of Ruby as attractive because of its syntax I (still) find a bit too sweet… But now that there is a killer app for Ruby which appears to square the circle of web development, can you think of a better time to look at it?
  • I predict that a lot of high-profile PHP developers will soon or later switch to RoR. As a frustrated Python-lover writing object-oriented PHP code, Rails really fits as the best-of-both-world solution.
  • The productivity boost offered by Rails is similar to what I experienced when switching from C++ to Python as my main development language. Everything is so simple and natural that it feels just like your own framework you would have grown yourself after years of trials and errors.

Anyway, go read the whole thing before I reveal all of it through quotes. It’s either a man who really gets it or a terrible suck up. Depending on your own personal enthusiasm about Rails :)

Comparing Struts to Action Pack/Railties

Nicholas Mommaerts is a Java programmer that “…spend[s] 8 hours a day programming with Struts in a big company”. After becoming interested enough in Rails to do his blog in it, he also got interested in comparing his work environment to his newfound fun environment. So he went ahead an made a comparison analysis between Struts and Action Pack/Railties available both as a PDF and a 4-installment HTML series (1, 2, 3, 4).

Do read the full comparison, but here’s the conclusion:

Rails eliminates a lot of the boilerplate code we see in a normal web application, it adds just enough to the default stack of web standards to make programming a web application almost enjoyable (or boring). It relies on configuration through convention, but let’s you override where needed. It’s lean, self-contained, uses only one (great!) language and encourages testing. Rails is flexible because it remains so simple, so unobtrusive.

Struts eliminates boilerplate code only by replacing it with it’s own. Struts is a big, fat, hairy monster with which you have to fight constantly when programming. It is very flexible but this comes with such a high cost it makes you wonder if it’s worth it.

Rails beats Struts down, kicks it in the groin and leaves Struts crying for it’s mama.

Nearing a tipping point for LAMP with Rails

Tom Purl believes we’re getting near a tipping point for LAMP in the enterprise and that the missing piece, “…this bridge appears to be Ruby on Rails”:

So in addition to being able to use LAMP and increased productivity, why would large companies wan to use Ruby on Rails? Well, for starters, large companies are already using the MVC framework extensively with J2EE and .Net, so another slightly-different framework wouldn’t be too hard to swallow. Also, Ruby is is an object-oriented scripting language that shares many features with Java an C#. It certainly has its differences, but nothing compared to the differences between Cobol and Java or VB 6.

Becoming a better programmer with Rails

Justin French have survived the first week on his transitionary journey from PHP to Rails. I have special sympathy for refugees from that camp as I used to do a lot of PHP myself not too long ago. Justin sums up his experience with:

I also think that a Rails developer is inherently a “better” programmer by force. PHP makes it very easy for anyone (myself included) to slap together some poorly planned procedural code and claim the title of “PHP Web Application Developer”. Rails on the other hand at least tries to make us better programmers by default.

It’s certainly possible to write PHP that doesn’t succumb to the draw of becoming a big ball of mud, but the structure is completely self-imposed. Easy to slip if you’re not careful.

Seems like Justin has quite a following of other PHP’ers curious about Rails, so its great to see that he’s continuing to blog the transition and hopefully instill others with the courage to do the same.

Off the Treadmill, Onto the Rails

Mike Clark, author of Pragmatic Project Automation, caught up with me for a few quick questions about the automation of Rails. A snippet:

Mike: Everybody who tries Rails raves about how it makes them super productive. What types of automation does Rails employ to help developers create great apps so quickly?

David: The basic philosophy is to encourage good behavior through invitations. So, for example, when you use the generator to create a new model or controller, it also creates unit test stubs that are all hooked up. You just enter a new test case and off you go. The same goes to fixtures, where a YAML file is already created and hooked up, just waiting for you to input the data…

We also talk about Rake and continuos integration with Damage Control. Additionally, it was great to see Mike so excited about Rails:

Rails projects are popping up all over. I just started converting a small J2EE project to Rails, and let me just say that Rails is highly addictive stuff.

Pedrosa on Rails vs WebWork: 'Language DOES matter'

Joao Pedrosa has been using both Rails and WebWork and iterates five key points on why “…WW is clearly inferior to Rails in every aspect” before arriving at the following conclusion:

Although I think RoR is superior to all Java web framework I used so far, I really respect the WW guys for building this framework which is one of the coolest in Javaland (unfortunately still ruled by crapware like Struts) but there is absolutely NO WAY any Java framework can compete with RoR… just try to build some real life app with it to figure out yourself how much precious time you’ve been wasting until now.

Time to shutdown IDEA and launch TextMate, 2005 will definetly be the year of Ruby on Rails! :)

'Ruby on Rails is unbelievably good'

Daryl discovers Ruby on Rails:

Ruby on Rails is unbelievably good. It’s too good to be true almost… Quite honestly, in an afternoon I built a completely working web application without the fancy css frills and such mind you, but completely usable that would have taken me the weekend with other methods… I’m still kind of in shock as to how productive I was this weekend with RoR. And this was while learning how to program in Ruby.

Welcome to the new world, Daryl!

CD Baby leaves PHP behind for Ruby on Rails

Derek Sivers have just announced that CDBaby.com is about to embark on an application rewrite that’ll replace the 90,000 lines of PHP code with an alternative built using Ruby on Rails.

CD Baby is a very successful etailer of independent music. They list 82,443 artists that together have sold 1.2 million CDs! And unlike the cartels, CD Baby is all paying back to artists — $12 million has made it back into artists’ pockets.

Derek describe the reasoning behind his departure from PHP to Ruby on Rails as follows:

Now, with Rails, there are a team of passionate geniuses contributing to this web-making framework daily. It’s small enough that you can stay on top of it, and watch this framework get more and more powerful by the week. Improvements that are pragmatic not political. People using it to make effective websites, contributing to the shared framework around it as they go. Why not take advantage of all this brilliant work?

Congratulations, Derek! And congratulations to the star team of core Rails contributors that he has chosen to assist him in the transition: Jeremy Kemper (bitsweat) and Tobias Luekte (xal). Without a doubt two of the very finest Rails developers out there. Great choice!

Also, I love how Derek prefaces his comment section:

Please no flames about Python, PHP, Java, or MySQL. My choice to use Ruby + Postgres was due to my love of them, not hate of something else

Loving Ruby, loving Rails is not about hating something else. It’s not a zero-sum game where love must be balanced with equal amounts of hate.

Rails tutorial on O'Reilly's ONLamp

Curt Hibbs has written a great tutorial called Rolling with Ruby on Rails. It takes the reader through setting up Ruby on Rails, scaffolding an application into immediate use, and tailoring the results. It’s focus is especially on setting everything up and using it with a Windows machine. It has been published by O’Reilly with their ONLamp.com site. A small note from the introduction:

What would you think if I told you that you could develop a web application at least ten times faster with Rails than you could with a typical Java framework? You can—without making any sacrifices in the quality of your application! How is this possible?

I’m always hesitant to provide any exact measures of productivity increases, but the 10x number has been echoed by more than a few of the Java programmers I’ve known coming over. Of course, most projects involve lots more than just programming, so this would hardly mean a project completed 10x — or whatever multiplier you fancy — but the difference is indeed startling.

In any case, awesome work, Curt! Let this serve as an encouragement for other Railers to spread the good work by getting their knowledge published by outfits like O’Reilly.

It\'s all about the applications

While videos and talk are all nice and good, it’s the applications built that has the power to propel frameworks into stardom. Basecamp has served as a flag bearer for a long time, but with the launch of 43 Things, it’s finally getting some assistance from another high profile public site. Alexander Payne takes note:

43 Things was built on Rails. Rails delights me in portions of my being that I never knew existed, much less were capable of being delighted by a web application framework. My infatuation with Ruby, dormant two long years, has been mightily rekindled by Rails. I really quite genuinely want to drink a beer or 12 with David Heinemeier Hansson.

Sure thing, Alexander. I’ll be in Seattle from the 26th until the 30th. Maybe we can figure out a night out for Rails developers and interested.

But what does "proven" really mean?

Michael J. discusses the obligation of the consultant to pick proven technology for custom jobs, but comes to the conclusion that the question is out of sync. It should focus on potential, not risk. When it does, you start questioning terms like proven:

But what does “proven” really mean? It is important to consider the case where something new takes off fast. At lunch we were specifically discussing Ruby on Rails. Two of us thought it looked pretty good, and one person was thinking about a small test project to check it out. Ruby on Rails has the opportunity to take off quickly because Basecamp was built on it, and everyone who’s used it knows that Basecamp is an awesome product. When they find out it was developed in two months by one guy they cannot believe it. Why only two months? Ruby on Rails, supposedly. Sometimes “new” becomes “mainstream” very quickly. It appears that this could happen to Ruby on Rails this year. That brings with it a host of potential problems, but obsolescence isn’t one of them.

Rails runs through XP Cincinnati

Jim Weirich is a member of the Extreme Programming Cincinnati user group that up until their last meeting was largely a Java gathering. Then something happened as Jim started to show the rest of the group what Rails could do. Mark Windholtz summarized it on their mailing list:

We watched a 10 min Rails video… It blew us away how easy it was to build a minimal web app in 10 minutes. After the video Bill announced that he had a Rails server installed and running. Gerard commented that it took us 2-3 meetings to get Tomcat configured for peoples PCs, while it took Bill about 20 minutes to get a page showing in an unfamiliar technology.

And we realized that XP is not just java (for goodness sake!). We can pair, iterate, and test with Rails just fine. In fact it is probably more XP in that we may be able to talk more about OO design issues that if we were stuck in java land. So it turned out unanimous that we would load-up on Rails and next month start developing something.

I think this is going to be huge amounts of fun.

Welcome to the fun, Mark and the rest of the XP-cincinnati group! You guys should come hang out in #rubyonrails at your next meeting and report on the progress. We’d love to hear how it’s going.

UPDATE: Jim just wrote me with the correction that he wasn’t even at that meeting. The group has upon their own volition found their way to the video and gotten interested off that. That’s even more impressive!

Brian discovers the default logging goodness

Brian McCallister started working on a new Rails application and discovered the goodness that is the default logging setup:

This is sort of what using Rails is mostly like. You stumble on a really nice gem — the default logging giving you a breakdown of execution times, translating it to requests per second, giving you any sql, execution times on the sql, etc. Oh yeah, nicely color coding and bolding as well. Then you stumble on another gem. It feels like programming in ruby, where things surprise you by being just really well done, and easier than expected.

It is indeed a powerful tool to have a tail running on while developing as you get an early warning system for performance problems and a minds eye into the internals of the system.

Ruby on the German Rails

I love picking up Rails praise in a foreign language through the wonder that is Google Translate:

…within fewer days it was my small Webapp finished and I a realization enrich: I like Python still rather than Ruby, but Rails rockt without end!

And even if David evangelisiert sometimes somewhat too much , then he is right nevertheless nearly always :)

Because with Ruby on Rails I had to have developed first time fun a Web application and to have written also the feeling somewhat elegant and none dirty PHP chopping.

Thanks for the kind words, Florian Munz. I apologies for publishing your words in a much “gebrochen” English. If you’re fluent in the language of commands, you’d probably prefer the un-mangled German original.

UPDATE: More German praise from Mornography: “Ich hab’ Spaß”.

"Some amazing web apps appear on Ruby on Rails"

Luis de la Rosa is predicting the highlights of 2005, which includes plenty of Java goodies, such as Eclipse and Java 1.5 by default on OS X Tiger (that would be a nice move). But more importantly, Luis picks the rise of dynamic languages for spot number five:

5. Dynamic languages gain ground: Ruby and Groovy increase in usage, but no full-time jobs appear. Some amazing web apps appear on Ruby on Rails.

Luis made a safe bet predicting that “amazing web apps” will come barring the banner of Ruby on Rails: It happened on the 1st day of 2005! 43things.com launched and it is indeed an amazing web application that has the most lofty of goals: Push human ambition higher!

Luckily, Luis is already kinda wrong on “no full-time jobs appear, will be fully wrong half-way into the New Year, and even silly wrong by the end of December 2005. Companies around the world are already employing full-time Railers, like ”http://www.combustionlabs.com/“>Combustion Labs (4 developers), ”http://www.robotcoop.com/“>The Robot Coop (4 developers), ”http://www.collaboraid.biz/“>Collaboraid (3 developers), ”http://www.basesys.com/“>Base Systems (2 developers), ”http://www.37signals.com">37signals (2 developers), and of course a legion of independent consultants and tech departments in tons of universities and big corporations (read more).

But I agree with Luis that big companies won’t be picking up Ruby on Rails for real before 2006. So that’ll leave the front runners and early adopters among small companies with a significant competitive advantage for the entirety of 2005. Congratulations, guys.

Giving up on Java for lack of love

Kate Rhodes is yet another developer leaving Java behind for the lack of love. As she says: “I’m really good at Java. I know my way around it but I don’t love the language.” Life is indeed too short to be spend toiling your days away without feeling a passion for the tools of your craft.

As many other Java developers just getting out, she naturally expected that life in the shade would be just as hard as under the Sun. But then she found Ruby on Rails and this was what she saw:

I decided to see how much work it would be to reimplement my project management app in Ruby and Rails with the expectation that it would probably be just be too much work to port it and rewrite the thousands of lines of code. But after spending a few hours just poking around, learning what methods to use, I’ve already gotten about a third of the infrastructure implemented and working.

It’s very encouraging to see that Java experts like Kate, who co-authoredProfessional Java Tools For Extreme Programming, can recognize the competency trap and get out of it. Welcome to Ruby on Rails, Kate!

"Simple design that even my grandma can understand"

Hamilton Verissimo captures the essence of what Ruby on Rails is about:

On the other hand I’ve coded the Castle on Rails, which is based on Action Pack. I have no merits here, the credits should go for the original author of Ruby on Rails, which implements an incredible simple design that even my grandma can understand how it works and how to create new controllers and views.

Good design doesn’t need to be hard to use. Best practices should be implemented, then hidden away. Programmers shouldn’t need to remind themselves how clever they are by applying the same complicated pattern over and over again. Extract, abstract, move on!

Drew McLellan predicts "More Rails" in 2005

Among predictions of having a beard will be the hot thing in 2005, Mr. All in the Head highlights Rails as having an especially bright coming year:

David Heinemeier Hansson’s Rails framework for web application development in Ruby is set to hit the magic v1.0 in early 2005. Rails is really picking up momentum, and for good reason. It’s the web app dev framework for the MVC generation, or something. If you haven’t checked it out yet – especially if you do a lot of big development in dynamic languages such as PHP – do so.

Reacting to customer requests in real time

Collaboraid recently had a visit with their client on that major intranet project for the still concealed client. Here they learned just how much of a difference it makes to work in a truly productive environment:

Yon, my colleague, would demo the work-in-progress to someone, and—as expected—we’d uncover some room for improvement here and there. But what turned out to be really fascinating was that most of the time, I was able to fix the problem on the spot, and we could re-test the improved version 10 minutes later.

Larger things, we’d do in out hotel rooms later that same night (after dinner and drinks with the client, of course). That’s what the power and productivity of Rails is like. In addition to just saving time, it also helps spur people’s imagination in constructive ways, when they see the kinds of changes that are possible on the fly like that.

Collaborative development and participatory design have long been the hallmarks of the Scandinavian school of software development. How wonderful to see it practiced using Rails.

Rails: Technology of the Year #1

In 2004 Computing In Review, Justin Williams proclaims Ruby on Rails to be his Technology of the Year #1:

“Without a doubt, the most fun I have had programming in the past few months has been with Ruby on Rails. While the majority of my year was dominated with Cocoa stuff at work, I have been working almost exclusively in Rails for the past few.”

As #2, Justin likes TypeKey for cutting his comment spams from 30/day to zero, and as #3 enters RSS.