5 ms·
merb http://merbivore.com http://merbivore.com is exactly the kind of full-stack framework ruby needs. Paired with datamapper http://datamapper.org http://data
by jhancock 18y ago
merb http://merbivore.com http://merbivore.com is exactly the kind of full-stack framework ruby needs. Paired with datamapper http://datamapper.org http://datamapper.org it is a clean room rewrite of what rails could have been. I'm not knocking rails. It is what it is, but the rails code base has its problems and is not written for performance or enterprise security from the beginning. Merb is the best thing I've seen in the Ruby world that fixes this.
http://shellshadow.com http://shellshadow.com switched from rails to merb earlier this year and I couldn't be happier with this decision.
- jamesbritt 18y agoWhat's your take on Ramaze?
- jhancock 18y agoI haven't used ramaze seriously enough to give an opinion on the quality of this work. I like the modularity and ORM and Template and HTTP server agnostic approach, which is similar to merb. One of key benefits of merb over the many other lightweight and more modular ruby frameworks is it has the necessary critical developer mass and funding behind it from Engine Yard http://engineyard.com http://engineyard.com
- jamesbritt 18y agoThe backing of Engine Yard is important. There will be a Ramaze talk at the upcoming RubyConf in Orlando; hopefully it will attract more people to give it a whirl.
- ducktyped 18y agoHere's why I love ramaze: multi-app, multi-db app, ~50 lines, one file, zero proprietary plugins, rake tasks, generators, etc. No bending of the framework whatsoever. Use require, use modules, pure ruby, pure joy. :) require 'rubygems' require 'ramaze' require 'sequel' # Models module AppOne DB = Sequel.sqlite('app_one.db') class Post < Sequel::Model(DB[:posts]) set_schema do primary_key :id varchar :title text :body end end end module AppTwo DB = Sequel.sqlite('app_two.db') class Post < Sequel::Model(DB[:posts]) set_schema do primary_key :id varchar :title text :body end end end AppOne::Post.create_table! AppTwo::Post.create_table! AppOne::Post.create(:title => "app one title", :body => "app one body") AppTwo::Post.create(:title => "app two title", :body => "app two body") # Controllers module AppOne class MainController < Ramaze::Controller map "/app_one" def index @post = Post[1] "#{@post.title}<br/>#{@post.body}" end end end module AppTwo class MainController < Ramaze::Controller map "/app_two" def index @post = Post[1] "#{@post.title}<br/>#{@post.body}" end end end Ramaze.start :adapter => :mongrel Run, go to /app_one and /app_two respectively. Enjoy. Here's some of what ramaze is missing: * Some conventions (simple modules, no "plugins" please) and a space (website) to share code, such as rake tasks for sequel migrations, authentication boilerplate, etc. Ramaze needs an ecosystem of modules to allow developers to benefit from each other. I'm not a fan of cargo-culting, but rails/merb plugins do speed up development. * Marketing/evangelism. (I'm trying). * A more nicely integrated restful router with urls a la rails/merb conventions. While "technically" somewhat silly, all the cool kids want something like it.
- jhancock 18y agoThis is good stuff. I certainly hope frameworks like ramaze stick around and gain their own niche market share. For http://shellshadow.com http://shellshadow.com I had to make careful decisions about being able to eventually hire others to do the web app dev, which meant making sure my framework picks wouldn't be too obscure. I had to get away from Rails. In fact, if other frameworks like Merb, Ramaze, datamapper, and Sequel didn't show up, I would have had to dump ruby. I like Sequel http://sequel.rubyforge.org/ http://sequel.rubyforge.org/ quite a lot. It blazes new territory for an ORM. It was a tough call to go with datamapper. In short, Merb showed promise and I bet on the strength of its backers in addition to what I saw as solid software engineering.
- deleted 18y ago[deleted]
- jamongkad 18y agoWhile I did try out Ramaze a few months back. I had a hell of a time trying to setup the ORM. The documentation has a looong way to go compared to other frameworks. So far the best documentation I've ever had the pleasure of reading is CodeIgniter and Django. I would love to use Ramaze on future projects but unfortunately it's documentation needs work. [EDIT] I love how Sequal was designed to allow the developer to craft their data with a high degree of granularity compared to most ORM's that try to do too much magic behind the scenes.
- jamesbritt 18y ago"While I did try out Ramaze a few months back. I had a hell of a time trying to setup the ORM. The documentation has a looong way to go compared to other frameworks. So far the best documentation I've ever had the pleasure of reading is CodeIgniter and Django. I would love to use Ramaze on future projects but unfortunately it's documentation needs work." Ramaze does not have an ORM. While I see a trend towards using Sequel, it is not part of Ramaze, is not shipped with Ramaze, and so you will not find much docs about it on the Ramaze site.
- 18y ago
- davidw 18y agoIt would be helpful if someone came up with a reasonably objective comparison between Rails and Merb. The Merb guys should also come up with some marketing type material showing really compelling reasons to switch. I've invested a fair amount of time in Rails, am happy with it. I'm not sure I'd jump for something that's "a bit better".
- ashleyw 18y agoExactly! I've learnt to use and love Rails and it has a massive community spanning many years, so I'm not going to jump ship because others said its cool... Thats not to say I'm ignorant to new methods of doing things, if something is better I want to try it - but why is merb better? If you compare rails 2.2 (thinking ahead) with merb, what can I do better, faster and safer which will be worth the time I put in to learn the quirks of the framework?
- ezmobius 18y agoOne big advantage is the runtime efficiency. Merb processes use less then half the ram of a rails process and can serve 2-5 times the traffic. This means you save a lot of money scaling your app for traffic demands. Merb also does not lock you in to a specific way of doing things. It's very easy to bend the framework to your will. Rails is great for the 80/20 rule. Rails will take you the first 80% faster then any other framework. But rails will make it super difficult to get that last 20% and will cost you double the hosting fees(over merb) or more when you have to scale.
- jhancock 18y agoYou shouldn't jump ship because others say its cool. You jump ship because "if Rails isn't working out for you", "then you an analyze other options." You say your happy with Rails, so do nothing. I was not happy with Rails for the work I needed to do http://shellshadow.com http://shellshadow.com. I have a very deep background in App Framework development. I wrote the worlds first full-stack app framework in Smalltalk in the early 90s. I also wrote may have been the world's first ORM (also in Smalltalk in 1988). I also wrote similar full stack App Frameworks in Java. I'm out of the framework business now but have a more critical eye than most when it comes to analyzing frameworks. I have not put together a comprehensive list of why merb is better for me than rails. You will either have to do this for yourself or wait until someone bothers to spend the time to publish compelling and objective analysis. This will come with time, I'm sure. But if you are happy with Rails, do nothing...keep chugging along. I won't disrespect you for it. Rails just wasn't for me.