Posted by jhsu802701 on September 29, 2011 at 4:45am
It was great meeting you tonight at the Drupal User Group meeting.
Is there anyone here with experience in BOTH Drupal and Ruby on Rails? I'd like to hear your perspective on when you prefer using Drupal and when you prefer using Ruby on Rails. Also, how does the difficulty of learning Drupal compare to that of learning Ruby on Rails? (I'm currently learning Ruby on Rails, and it's proven to be FAR more difficult than I expected. Learning Python was so much easier.
Comments
Drupal vs RoR
I was doing Ruby on Rails work before I got repurposed as our "web guy" at work. I think it's very hard to compare the two since they're both so different and also so similar.
When learning Ruby on Rails you're learning Ruby and Rails, for Drupal you'll be learning PHP and Drupal. Drupal is built on the concept of modules, while Ruby on Rails makes use of gems. That's a 30,000 foot comparison of course.
It's likely that either could be used to solve the same problem, but each isn't necessarily well suited to the same problems. I could imagine Drupal being used to create a CRM system, but RoR is likely the better choice there. I'm sure there are exceptions which will prove the rule, but if you compare audience to contributors you might be able to make a line-in-the-sand judgement. If there are more viewers than contributors (a blog, or bulletin board perhaps) then Drupal is the go to choice. If there are more [or equal] contributors than viewers (a payroll application?) then perhaps RoR should be your go to.
Bugzilla is a nice example that confuses this even more... it wasn't written with either, however it wouldn't be too far of a stretch to "easily" recreate at least the base functionality with both.
Consider the strengths of each and what's included right out of the box. Drupal has built-in permissions, log in, data caching, etc. RoR is based on the MVC design pattern.
A quick "drupal vs ruby on rails" Google search turns up many comparisons that talk about it much better than I can while low on coffee ;-)
I use both.
I use both regularly, and honestly I can't say I prefer one or the other. They are just different.
Drupal is a product, that is built around a framework (drupal core). Rails is just a framework. When you install rails you have nothing, absolutely nothing. You need to create a new project, and even when you do that, you still don't have anything. When you install drupal you have a website, complete with users, pages, comments, etc... You have a lot without writing code. With RoR there are plenty of plugins and gems to get you most of the way to where drupal is, but you need to write code to glue it together.
My personal rule of thumb is this:
I use drupal for projects that will be eventually handed over to the user / customer or where the customer needs the ability to change things themselves (add new pages, menu links, etc...)
I use RoR for things where changes will only ever be made by the developer (me).
Personally I like working in ruby / rails. I can do fairly complicated things but the code still seems "clean" to me. For me that's worth a lot. That said I have more drupal projects than Rails projects.
-ray
Nerd at work
Drupal vs RoR and the more general question
To generalize this class of questions, I ponder... "what would a decision tree look like, to help decide when best to use, or NOT to use Drupal?" Perhaps by defining the latter boundaries, the choice for using other frameworks might be clearer.
We keep getting more project work - and we keep taking progressively harder Drupal projects - and I'm wondering if at some point we'll Drupal ourselves into a corner? Some of my friends assure me Drupal can do everything. Other friends tell me to learn yet-another-framework, like Ruby on Rails. So I'm learning Ruby on Rails too.
On a theoretical level, I suppose I could answer... if Drupal can't do it, then neither can PHP?
Apples and oranges
PHP and Ruby are programming languages. Superficially similar: both are dynamically- and weakly-typed interpreted languages. Below the surface however, they're quite different. PHP's heritage is functional, and more closely related to web application development. Its current incarnation includes object-oriented features, but the Drupal community has been slow to adopt them. Ruby, on the other hand, was designed as a general purpose object-oriented language. (I'm sure I'm inviting a flame war here, but if you care about the beauty and elegance of your language, then it's clear to me that Ruby is far superior).
Rails is a general purpose web application framework for Ruby. It's designed to help programmers be more productive in building web sites of all types, not just CMSs. And note that it's for "programmers". Unless you intend to write server-side code, you can't hope to get much done with just Rails alone (but if you do intend to write code, both Ruby and Rails are known to be very productive).
Drupal is a Content Management System, of which there are hundreds. It happens to be written in PHP, but it's modular design and large collection of available modules and themes make it possible to design and implement a large variety of web sites without writing a line of code. Most importantly, though, at its core (pun intended), it is a CMS. The further your site's needs are from the CMS sweet-spot, the less likely it is that Drupal will be your best choice.
There are CMSs written in Ruby. Refinery, for example. I think you'll find there is a much smaller community contributing to Refinery and other Ruby-based CMSs, and thus fewer off-the-shelf components available (i.e. fewer problems already solved for you).
In the end, you need to start with your site's requirements and who you are. If you don't need a CMS, but some other type of web site, then maybe Rails (or Java+Struts, or Python+Django, or PHP alone, etc) is a better direction. Otherwise, do you think of yourself more as a programmer, or more of a site designer/builder? If you're a coder, compare Ruby to PHP, and the APIs and other tools available for each. Otherwise, compare Drupal to something like Refinery, and the off-the-shelf components available for each.
Good luck!
My Requirements
I am supposed to develop an application for an start up. People there are not very good at programming and all. There is a fair chance that I will not be maintaining the things for a long time (They may hire professionals later). At the very first meeting when I suggested that I will be using Drupal, he asked me whether Drupal professionals are easy to find.
My application has 3 entities let us say A, B and C. A contains some three or more roles. When A add/update something then B and C has to be notified depending on some filters. Similarly for B and C.
I have to use some AI techniques too.
Can you further suggest me what to do?
Drupal is about people and their data
The thing that I've always loved about Drupal is the way that it puts people directly in touch with their data, and allows them to exert control over it.
When I use Drupal in an architecture planning meeting, it usually doesn't take much time to design and draw out a few content types and associated fields. As long as you don't preface the conversation with, "what I'm about to tell you is going to be a really scary and technical thing," it's actually common sense to get people to start talking about "things" and the "stuff" that belongs to those things.
The next thing that happens is the site owner will start throwing out ideas of her own, like "hey I see what you mean if that author is related to these posts and then the posts are also on the author's page. But what if we relate the posts to this other topic and they show up there too?" That's when I know they're hooked. And because I have a picture in my head of how Drupal already does things, I know which ideas can be implemented rapidly and which ones need a little pushback.
Thus, someone who really knows how to rock Drupal, combined with someone who really knows their own domain, can make a lot of progress very fast. It's also possible, if desired, for that site owner to take total control over her content. She can learn how to add fields without my help, or she can create advanced search pages, feeds, and views without my involvement.
Most of the really great Drupal projects just build upon this mindset. Filefield/Imagefield came from the notion that some of the stuff that belongs to things is pictures. That work became image handling in core, which is infinitely more flexible than cramming a gallery into Drupal would have been. The Date module came from the idea that sometimes your things are associated with dates and times, so you should be able to add those whenever you need to.
I would like it if Drupal were called a "Data Management Engine" rather than a "Content Management System", because that's really what it is. Content is just "stuff on the web", and I think it's more powerful to think about your articles, authors, events, topics, locations, inventory items, etc. as thriving and discrete components in your overall big picture. And it's amazing to give "ordinary people" the power to shape and relate to that information in new and different ways.
Back to the original question, I think that the difference between a programming framework and something like Drupal is where the time investment and skills requirements lie. If your project is about people and their data, and - as Ray says - you're going to make people responsible for that data in the long haul - then Drupal is a good choice.
However, if it's not about people and data, but you really need to micro-manage some specific business process or complicated workflow, you're going to need to rely on programming expertise. In these cases, it's important to consider the tools and languages that will make your programmers the most efficient.
Navigating all the options out there
I have spent so much time messing around with different CMS options. I am stoked to give this a go. Also, I'm digging on the term "data management engine." Thanks for the insight everyone!
drupal db app, ruby service app
I prefer drupal for database application and ruby for service application.
Drupal vs. Ruby on Rails
Each has its strengths and weaknesses. But Ruby on Rails is a perfect programming language to make high-performance apps. And..learning Ruby on Rails can be very advantageous for anyone, as you will manage to be on top of the team. I've found some information here: https://mlsdev.com/blog/100-ruby-on-rails-vs-php-it-s-time-to-set-the-re...