Skip to Navigation | Skip to Content



Archive for the 'ruby' Category

MerbCamp and Merb | October 15th, 2008

The first MerbCamp went down in San Diego this past weekend and Nitobi joined the fray in force by sending four Ruby hackers and as an awesome sponsor.

Sprint!

Brock Whitten (aka sintaxi), Rob Ellis (aka silentrob), Joe Bowser (aka infil00p) and I (aka brianleroux) arrived in sunny San Diego on thursday evening. After a good nights sleep, we dispatched to the Merb Sprint to help the guys get Merb 1.0RC ready for prime time.

I’m not entirely sure I personally was much help; but we did uncover bugs and tested for new ones. First impression: the Merb core is a solid group of guys. They care about a quality release before anything else and a quality release is bug free and simple for anyone to get up and running quickly.

What I do know is that I learned a tonne. I was a real treat to pick up Merb from the guys who are authoring it. Not so much about Ruby, how to or anything. I learned about the motives and philosphy behind Merb. The Merb opinion, if you will.

In Merb’s opinion you should have an opinion of your own

Merb is the evolution of opinionated software popularized by Rails. While Merb does possess very strong opinions they remain weakly held. Its about optional opinion and future proofing technology. Sure, you can be up and running with a default Merb stack in couple of minutes (and build yourself a shitty blog in another three). If you don’t share an opinion about the choice of ORM, templating or JavaScript technology (or any aspect of Merb actually) it is easily customized, extracted or supplanted.

Opinion, practice and technology change. The variability of change is the only constant in technology development we can depend on. The flaw with the Ruby on Rails framework is that opinions do not scale. Choosing a technology or approach and prescribing to it wholly is choosing maintenance hell if not historical obscurity. Enabling software for change and evolution is future proofing it. This is not about convention over configuration. We can have convention, less configuration and options at the same time. Merb is on the path to achieving a Ruby web framework that does this.

The first key architectural choice in Merb is that absolutely everything is a gem. This enables some rather obvious benefits of package, dependency management and of course a unified distribution model. Merb is innovating here utilizing the concept of a meta-gem which is just an empty gem with dependencies for merb-core, merb-more, etc. I’m expecting this concept will influence future versions of RubyGems.

The second critical architectural choice is a supported Public API and event hooks for extending and integrating directly into Merb. Adding functionality via monkey patching is powerful and utilized extensively by Rails. However, monkey patching (and alias_method_chain) is a slippery slope that falls into the dark pit of unexpected consequences; It leads to mysterious behavior violating the principle of least surprise and, as an effect, collaborative extension and maintainability becomes increasingly difficult. Having a supported public api that the core development team is committed to maintaining enables extension and integration in a sane and maintainable way.

Read the code

Having absorbed all this. I promptly returned to our hotel and started pouring over Merb’s code. Well, I might have had a few beers first, but seriously: read that code. Merb’s codebase chooses clarity over cleverness. No fucked up metaprogramming backflip nijitsu (perhaps a little bit but its well documented: mime.rb for example). Well documented. Clearly organized. It is some of the very best Ruby code I’ve had the pleasure of looking through. I came to Merb largely at Brock’s encouragement and its internalized attention to performance. I’m staying for the readable code and philosophy.

The actual Camp

Others have done the blow by blow blogging and, I personally twittered the shit out of each session, so I’ll spare you the nitty gritty details of everything. On a higher level: this was one of the very best organized events I’ve attended. The wifi was strong but if that wasn’t enough the venue had drops for power and ethernet (and of course Joe had a lan cable) in every single seat. Each presentation was streamed live. IRC was packed. The lunches where great. The swag kicked ass (tshirt, flipflops AND a frisbee). The content of each session was meaty and everyone speaking was candid, open and genuine. Awesome? Yeah man. Awesome.

Thanks MerbCamp. We’ll see you next year.

Posted in JRuby, Uncategorized, brian.leroux, nitobi, ruby, software | No Comments » | Add to Delicious | Digg It

Ruby recognized | March 10th, 2008

Each year O’Reilly publishes on their blog a State of the Computer Book Market analysis. It is an excellent indicator of computer programming language trends. Geeks love their books and programming geeks adorn their desks with as many reference books as possible. Despite living in a hyper connected world we cannot risk even one moment without access to the more obscure and arcane intricacies of our chosen languages and toolsets.

And Ruby is cleaning up: officially recognized as a “Mid-Major Programming Language”. And in good company too with Visual Basic and ActionScript.

Perhaps its the growing body of knowledge or perhaps its just the beauty and simplicity of the language itself. Probably a little bit of both. Its nice to see such a fun and rewarding environment growing into the hearts of the mainstream. We love Ruby here at Nitobi and we have grown a good number of Ruby projects and expertise. With Java and, soon, .NET support we’re looking forward to bringing Ruby to even more places. And adding more books to our shelves!

Posted in .NET, IronRuby, JRuby, java, nitobi, rails, ror, ruby, software | No Comments » | Add to Delicious | Digg It

Vlad sports a new Rake | January 15th, 2008

Or, something cool like that anyhow.

Posted in Uncategorized, rails, ror, ruby, software | No Comments » | Add to Delicious | Digg It

Thoughts on Zed’s Rant | January 4th, 2008

I resisted the urge to comment on this but so many opinions are floating around and most of them are fucking stupid so I had to comment.

Zed’s rant means nothing to the technology of Ruby or Rails. His rant was about people he had taken issue with. Thats it. I’m reading absolutely retarded ’sky is falling’ responses about failure of the technology. There was no failure of technology. This rant was the product of failed communication. I don’t agree with the opinions or the approach but I sure found it funny. Zed is an excellent flame writer and should probably awarded a medal for best troll ever written in the history of the internets.

I’m reading posts all over the place that are using Zed’s rant as a rally against the technology of Ruby and that is bullshit. Zed predicted that technology will change. Here, read that again: Zed predicted that technology will change.. No shit it will. Of course better solutions are going to emerge and evolve. It doesn’t mean the technology isn’t valid today.

I agree with Tim Bray and Dion Almaer. Rails is a solid technology appropriate for some scenarios but not all. Use it or don’t. Thats it. Calm down. Take a breath. Read the rant for the humor it is intended to be.

Lastly, if you are a programmer, take this rant as opportunity to teach yourself some Python or Scala or Erlang or even Ruby. Then you can draw your own, intelligent, rational and possibly objective arguments for or against a technology.

Posted in rails, rant, ror, ruby | 2 Comments » | Add to Delicious | Digg It


Search Posts

You are currently browsing the archives for the ruby category.

Archives

Categories