#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    5
    Rep Power
    0

    Ruby versus PHP. And which CMS?


    Our church is in the planning stages of creating a website. With the ever-continually expanding role and function of websites today, our church sees the potential of having a website and its many benefits to fulfil our communication needs. We will first survey the members of our church who are involved in communication and the distribution of information and we will be setting up a committee to determine our needs.

    Initially we have determined the three main purposes our church website:
    1. information
    2. evangelization
    3. to create community

    I am aware that it is important not to jump to conclusions too early in selecting a technology to address our needs, however I also feel it is beneficial to be aware of the technologies currently in use which are commonly available as a starting point to making decisions about the overall scope of this website development project.

    As a starting point, I would estimate we may need to manage approximately 5-10 updates on the website per day and be able to publish our bulletins, announcements, events and homilies and maintain a schedule of the many ministries our church offers accessed by the members of our church community. We may eventually need to have the ability to operate fund raising initiatives and therefore the flexibility to add commerce capabilities at a later date are important.

    Other factors that are important to us include:

    a system with:
    an open source license
    good tech support (such as tech support via a public mailing list or a public forum)
    strong security

    A system that performs well in terms of:
    ease of use
    performance
    management
    interoperability
    flexibility - multi-site development capability

    A system with a good selection of built-in applications we may use such as blogs, data entry, forums, wiki and online newsletter publishing capability.

    I have volunteered as a member of this website committee for our church because I was a website designer several years ago and have always had an interest in new media. A few years ago, when PHP was the popular method of choice (is this still the case today?), I attended an international convention on Drupal that lasted a few days in our city and developed an interest in Drupal for a website development project. Joomla was also (and still seems to be) one of the most popular CMSs available. During the last three years however, my work has taken me into print advertising and I have not focussed on website projects lately. I am sure that in these last three years much has changed in the world of website development and I need to be updated. For example, I picked up Linux World magazine and read about the growing popularity of Ruby and Ruby on Rails which I don't believe was very common back then (not sure however).

    We are looking for a flexible system (either pre-packaged or a website template system which we can use to develop our own website or a suggestion for a method we can use to develop a completely customized solution) that has growing room and versatility. We are not afraid to try something new if in fact it is superior. I am an advocate for open source solutions however will be open minded if there is another obvious commercial product - within very reasonable cost. Or we may hire a developer and put out this project for tender.

    This brings me to these important questions I would like to address:

    Should we hire a developer or should we employ a technically proficient individual from our church to set up and operate a do-it-yourself template-based solution as you might commonly find on the internet these days - such as setting up a WordPress site? (I don't think WordPress can handle commerce though - however I am not certain.)

    Which technologies should we be aware of?

    What has happened in the world of website development in the last three years that we should know about? i.e. what technologies have leapt ahead?

    What are some obvious choices if we were to select a CMS? Drupal, Joomla, Ruby on Rails, something python-based or any others?

    PHP or Ruby? PHP was the popular query method of choice a few years ago. Is it still now? Should we base our site on PHP (because there seems to be much online support)? I read PHP is now considered to be a little sloppy and rough on the edges and Ruby is seen as more logic-based and more intuitive. If we felt we would like to rely on a Ruby-based solution (such as Ruby on Rails) is it difficult to find Ruby developers? or should we look for a Ruby CMS that might be already pre-packaged that we could work from ourselves? Would it make sense for one of us in our church website committee to learn Ruby as a benefit (or as an additional benefit) to the development and maintenance of the site if we decide to develop on Ruby?

    If we decide to employ a developer, is it necessary to employ someone local for the benefit of face-to-face contact or is it reasonable to work with a long-distance developer (over the phone or by email and internet?). It is risky to work with an over-seas developer whom you have never met or is this a common business arrangement today?

    How do we deal with this most common dilemma: How can we determine what we need from a website when we don't know what is possible?

    Other lesser important questions: I researched other website systems used by other organizations I felt were similar to what we were looking to achieve and I phoned their developers. There was one CMS used called "Ectron". The developer, however, was charging a high fee to use it. Is this a well known CMS? Does it have a steep learning curve or could it be operated by the average user? Is it PHP-based? Its not that important for us to know but I was curious if others have heard about this one. We would like to avoid developers who charge a high monthly fee to operate our own website. Is this a reasonable or should we expect to pay a high monthly fee if we would like to high quality results?

    Last (less important) question. Has anyone used Artisteer?
    I wonder if it can be used with Ruby on Rails. If not, we could design the front end manually which we likely will.

    Thank you for any advice or guidance that may help take us to the next step.

    Mike
  2. #2
  3. No Profile Picture
    Lost in code
    Devshed Supreme Being (6500+ posts)

    Join Date
    Dec 2004
    Posts
    8,317
    Rep Power
    7170
    I have considerably web design industry experience (as both a developer and project manager) and I hope my reply will be helpful, but let me prefix my post with a few things for you to consider:
    - You have posted a Ruby vs PHP question in a Ruby forum.
    - I have no Ruby experience.
    - I have a great deal of PHP experience.

    ===================================================

    an open source license
    Do you specifically need an "open source license" or just an "open source" product? It's easier to find an "open source" project than a project licensed under an "open source license".

    From Wikipedia:
    An open source license is a copyright license for computer software that makes the source code available under terms that allow for modification and redistribution without having to pay the original author
    Unless you're planning to redistribute the software you don't need an "open source license". For modifications you keep to yourself you only need an "open source" project, it doesn't need an "open source license".

    good tech support (such as tech support via a public mailing list or a public forum)
    Hard to find free, but certainly possible. For free scripts, generally, the more popular the script you choose the more likely you will be able to find support. However, often very large free scripts (ex: Drupal) are sometimes lacking anything near good technical support. Good and guaranteed technical support is one of those things that isn't usually cheap, and rarely ever free.

    flexibility - multi-site development capability
    I wouldn't place too much importance on this one. For what you're doing it sounds like you would be find installing multiple instances of a single script. (Reducing the important of certain criteria like this will make it easier for you to find a good solution)

    PHP or Ruby? PHP was the popular query method of choice a few years ago. Is it still now?
    PHP is the most popular server side language (out of all server side languages) by a considerable margin.

    Should we base our site on PHP (because there seems to be much online support)?
    If you're going to be developing the site yourselves then this is something to consider. If you're paying someone else to develop it then this shouldn't be a huge consideration.

    Keep in mind though that a web host is more likely to support PHP than Ruby.

    I read PHP is now considered to be a little sloppy and rough on the edges and Ruby is seen as more logic-based and more intuitive. If we felt we would like to rely on a Ruby-based solution (such as Ruby on Rails) is it difficult to find Ruby developers?
    Not knowing Ruby I'm not sure how they compare, but if you don't know what you're doing it's easy to write insecure PHP code. PHP has some oddities, however, it's certainly possible to write anything neatly in PHP. It will be easier to find a PHP developer than a Ruby developer, and a PHP developer on average will cost less. However, there are a lot of very bad PHP developers (I blame it on PHP being easy for beginners to pick up).

    If we decide to employ a developer, is it necessary to employ someone local for the benefit of face-to-face contact or is it reasonable to work with a long-distance developer (over the phone or by email and internet?).
    It's not necessary to employ someone locally, although I would certainly say that it would be better to meet face to face. It is reasonable and common to work with remote companies for this work of thing though.

    It is risky to work with an over-seas developer whom you have never met or is this a common business arrangement today?
    Yes and yes. Over-seas developers are cheap as hell which is why they are used so often, but it's kind of like playing the lottery. If you're not a highly technical person you'll want to avoid an over-seas developer. The English to ___________ language barrier is hard enough, but when you mix in the technical to non-technical language barrier at the same time it can end up being pretty bad.

    A lot of times you can find U.S. based companies who will manage the project for you but use over-seas developers. This arrangement generally works out pretty well because you have a native English speaker to translate technical information, you don't have to deal with bad English, plus you have an American company that is responsible for the site and whom you can hold liable.

    We would like to avoid developers who charge a high monthly fee to operate our own website. Is this a reasonable or should we expect to pay a high monthly fee if we would like to high quality results?
    Unless you have ongoing code maintenance or development, hosting the site shouldn't run you more than $xx/mo for a quality host. Unless the site is complex or has some special requirements that requires a special server, it shouldn't run you more than $20/mo for a quality host.

    If you hire a developer for initial development work expect to pay a fairly hefty price for high quality work. Based on what your describing, I would say $xxxx.

    How do we deal with this most common dilemma: How can we determine what we need from a website when we don't know what is possible?
    Assume that everything is possible, as most things are. I have often seen clients holding back because they have no idea how difficult it will be to implement something. Often the thing they want is absolutely trivial to implement. A good developer will (a) tell you when something is not possible and (b) suggest alternatives. Always assume that what you want is possible, if the developer says no you can always post on these forums and ask whether that is the case or not.

    Drupal is a system I have worked with quite a bit, but not one that I ever recommend from the standpoint of a programmer. Its premise is great, "use all of this prebuilt code and just plug and play to implement your complete website!". However, I've never seen it work out that way. Some of the modules are buggy, most are poorly supported and almost none will meet your complete requirements out of the box. During custom module development and module customization you will often run into walls in the Drupal core that require odd workarounds.

    Plus if you don't have considerably Drupal experience Drupal is a nightmare to program for. It would hardly be an exaggeration to say that Drupal has the single steepest API learning curve of any piece of major or even moderately used PHP software. It often snares unaware developers because they say to themselves "oh, I already know PHP, learning this PHP framework will be no problem". However, the complexity of Drupal easily rivals the complexity of a programming language itself, so it's basically like learning an entirely new programming language on top of PHP (something developers rarely budget for).

    Anyway... that's my Drupal speech. I would suspect that Joomla is the same way, but I have not used Joomla anywhere near as extensively as I've used Drupal so I'm not going to condemn it.

    ===================================================

    You definitely seem to be asking the right questions. I would not worry too much about PHP vs Ruby though. You can make either work for you and neither is going to make a magically huge difference in the cost or capabilities of your site.

    If you use an inexperienced developer don't expect a perfect site, but if you use an experienced developer expect to pay a lot (kind of a tough dilemma). Before asking for quotes though definitely get a better idea of exactly what capabilities you want the site to have.

    EDIT: You may also want to post this question in the PHP forum or request that it be moved there if you don't get responses here. The PHP forum is considerably more active. I only saw it because it happened to be the top post in the Ruby forum and was visible on the site's index page.
    Last edited by E-Oreo; December 26th, 2009 at 11:36 PM.
  4. #3
  5. No Profile Picture
    Contributing User
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Jul 2006
    Posts
    2,270
    Rep Power
    1737
    I actually suggest it be moved to the web design forum (ask a mod to do this). Although you're asking about PHP and Ruby, the issues you really have aren't language specific.
    When you ask a question, be prepared to tell us: what have you tried? If you think you don't need to try anything, we will never be interested in helping you. If you agree with the link, and you refuse to answer that question, you are being a hypocrite.

    Need help with broken code? Your question should be like a good bug report: (1) It has the smallest number of steps to reproduce the problem you see (2) It tells us precisely what you expected to see and (3) It tells us what you saw and how it differed from what you expected. We need all three to help you.
    Want better answers? Tell us what you Googled for and what steps you took to answer your own question.
  6. #4
  7. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    5
    Rep Power
    0
    E-Oreo

    Thank you very much E-Oreo for this overview you provide.

    I suppose I asked this question on the Ruby forum in the hope that I would find someone who is fluent in Ruby to respond to let us know if this is s suitable project for Ruby. (I've already posted it on a PHP forum elsewhere and a general web design forum elsewhere too).

    The open source licencing issue was my mistake in that I wasn't aware of the terminology and how it should be used. Basically what I meant was that I didn't want to be stuck with a product like Microsoft and have to pay for multiple copies of a licence just for users of our own site to be able to update our own site. I've seen this kind of arrangement before and would like to stay clear of this. There are variations of this which might be suitable but we do not have a high budget and would like to avoid such traps. I am also an advocate for open source solutions such as linux OS - although I have not tried it yet.

    PHP may be more suitable for us in that, as you say, its easier to find PHP developers and perhaps they may have less costly rates however I remain open minded to Ruby and would like to hear from the perspective of a Ruby programmer as well.

    Drupal seems a little daunting too but again, I will remain open minded about this direction too.

    I am still pondering the other issues regarding working with a distant developer. It might work and I would need to have this issue considered by others in our committee.

    Thank you for your words of wisdom.
    I'll keep a note about your help here and might contact you in the future.

    Thank you,

    Mike
  8. #5
  9. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    5
    Rep Power
    0
    I received a response from a poster on another online web design forum who recommended PHP. However, they also posted this pro-Ruby link at:

    (pomelollc dot com - sorry my URL link is being blocked from this site)
    (so instead please google search: pomelollc +blog +ruby which leads to "Ruby vs. PHP for non-techs (also Rails vs. CakePHP)". Interesting document.

    After reading this Ruby versus PHP information I would be convinced Ruby is the most appropriate way to go for our website. Our website will be medium-sized (not as large as Facebook of course - well, not today anyways

    Now what about Flex? Should we be considering Flex?

    Thank you,

    Mike
  10. #6
  11. No Profile Picture
    looking for beautiful code..
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2009
    Posts
    114
    Rep Power
    62
    Just a quick note about Ruby vs PHP:

    PHP has been considered "sloppy" historically, however only in the sense that it lacks any native support for some sort of framework-esque or application-based structure (however, many frameworks, MVCs, and PHP application layers are easily available and are sometimes free). However, to emphasize, though PHP may not have all of this built-in, it is far from lacking these such capabilities.

    Ruby, on the other hand, was designed to be easier on developers in the sense that usually tedious processes (such as executing a certain set of commands on every item of an array/list) have been accounted for, and such shortcuts have been built-in for ease. In addition, Ruby was built in a manner so that everything in Ruby is theoretically an object (supposedly a purely object-oriented programming language). So, whereas in PHP, you would have to call some external function to make all letters of a string of text uppercase, in Ruby, whatever string you have will automatically inherit all properties and methods of the string class (including most likely a method to make the letters uppercase).

    Again though, these "advantages" are very minimal on both sides. As stated before, more hosting companies (if you aren't serving your own website) offer PHP as their basic go-to choice for server-side languages rather than Ruby or RoR (Ruby on Rails).

    Lastly:
    How can we determine what we need from a website when we don't know what is possible?
    You would not believe how many strange things are possible on the web. I recently had a client with an animal clinic who requested I create a way in which the user is automatically shown the closest clinic location in addition to the pollen count for the day in his/her area. So I created a solution using some GeoIP solutions and an up-to-the-minute weather web service to provide exactly what was requested.
    So in short, conceptualize whatever you want, and go for it. If its not possible, then its not possible, however, the attempt is much more valuable than holding back ideas.

    -j.

    [[Additionally, as far as I know, Facebook does use PHP themselves haha.]]
  12. #7
  13. No Profile Picture
    Contributing User
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Jul 2006
    Posts
    2,270
    Rep Power
    1737
    I suppose I asked this question on the Ruby forum in the hope that I would find someone who is fluent in Ruby to respond to let us know if this is s suitable project for Ruby.
    I'll save you some time and give you the answer. It is suitable. So are a number of other languages. All these languages are general purpose programming languages, not something highly application specific. You're needs aren't so extreme. Furthermore, if you are hiring a developer, you shouldn't be so concerned about the language, as that's a choice the developer will make.

    I've already posted it on a PHP forum elsewhere and a general web design forum elsewhere too
    Can you give us links to those threads (and notify those other threads appropriately too)? No one wants to spend time retreading points already made.

    You're asking the questions in the wrong order. You shouldn't be looking at technologies first. You should be looking at the one primary question: how are you going to approach development? Outside developer? Volunteer from your own organization? Technical person sets up existing solution?

    It doesn't sound like you have developer volunteers within your church, hence you ask the question here. So it's just a debate between outside developer and existing solutions. Until you resolve this decision, you don't want to be arguing about points like development platform and what not. What difference does it make? You aren't the developer.

    You're not ultimately relying on language or framework. These exist. You're relying on a developer being able to provide a solution that does what you want and is cheap to operate, all under a minimal budget. If you find a competent developer who can do this with Scala and the Lift framework, do you care? No.
    When you ask a question, be prepared to tell us: what have you tried? If you think you don't need to try anything, we will never be interested in helping you. If you agree with the link, and you refuse to answer that question, you are being a hypocrite.

    Need help with broken code? Your question should be like a good bug report: (1) It has the smallest number of steps to reproduce the problem you see (2) It tells us precisely what you expected to see and (3) It tells us what you saw and how it differed from what you expected. We need all three to help you.
    Want better answers? Tell us what you Googled for and what steps you took to answer your own question.
  14. #8
  15. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    5
    Rep Power
    0
    Thanks NXInteractif and Oler1s.

    Oler1s, what did you mean by "existing solutions". Did you mean that there are already existing website templates (such as free online templates) that a volunteer from my organization can simply tweak or customize to suit our purposes? Or are you thinking about setting up a Wordpress site? WHat were you refering to?

    Is this one of the directions you are recommending?

    For me it doesn't matter if it is or not, only that if such a solution exists that we might look at this as another possible solution that we hadn't thought of before.

    And why does it matter what language platform we prefer before we even choose a developer? This is because I do not want to be stuck with a website in a few years with out-dated technology that is difficult to find a new developer to work on in case the first developer walks away from the project after a few years - which is a very possible scenario. Therefore I feel it is wise to built on the latest most promising technology today in the hopes that it will have the longest long-term stability and support.


    The other links to this same question on the other web developers sites I mentioned are (exact URLs were blocked by devshed unfortunately):

    sitepoint dot com (I think it is post #4468755?)

    www.webdevforums dot com (I think it is post #34499)

    webforumz dot com (I think it is post #355911)

    Thank you,

    Mike
    Last edited by mike88i; December 28th, 2009 at 01:27 AM. Reason: additional point to mention
  16. #9
  17. No Profile Picture
    Lost in code
    Devshed Supreme Being (6500+ posts)

    Join Date
    Dec 2004
    Posts
    8,317
    Rep Power
    7170
    (so instead please google search: pomelollc +blog +ruby which leads to "Ruby vs. PHP for non-techs (also Rails vs. CakePHP)". Interesting document.
    In my personal opinion, CakePHP is not a prime examples of a PHP framework. PHP has a great many frameworks that attempt to fill roughly the same niche as Rails, and working without a framework is also an option (although in this case wouldn't recommend).

    If you hire a developer I recommend letting them pick an open source framework that they are familiar with. Avoid proprietary frameworks though, generally that's far worse than working without one.

    If you end up doing the work yourself I recommend researching a few of the popular ones before making a choice, but neither Rails nor any of the major PHP frameworks will be disappearing anytime soon.

    Oler1s, what did you mean by "existing solutions". Did you mean that there are already existing website templates (such as free online templates) that a volunteer from my organization can simply tweak or customize to suit our purposes? Or are you thinking about setting up a Wordpress site? WHat were you refering to?
    I think it was more of a general statement rather than discussing any particular existing solution. The details you provided are not really sufficient for us to actually recommend anything specific. The purposes you listed don't have enough technical meaning to refer to any particular solution and the other factors that you listed are something that would only be considered after you've already picked out an existing solution and are evaluating it. You did list a laundry list of common functionality but it's not really clear how complete that list is or whether it is an actual list of your requirements or just an example of a flexible system. Perhaps it would be beneficial to draw up a "site map" of what you want the site to have on it.

    In reference to this list:
    A system with a good selection of built-in applications we may use such as blogs, data entry, forums, wiki and online newsletter publishing capability.
    The only single "off the shelf" solution that is going to contain all of those things is a massive CMS like Drupal or Joomla. All of those things are also available as stand alone scripts (which will nearly always have more features than the Drupal or Joomla equivalent due to the script being solely dedicated to one purpose).

    If you go to a web development company and say "I want a wiki", the company isn't going to build you a wiki from scratch (if it's a reliable company... an unreliable one might decide to do that). Web development companies are as much about connecting you to existing solutions as they are to developing new solutions, so as long as they know you're ok with them deploying existing solutions they should do so whenever possible to save you money (like I said, if they are unreliable they might try to program it themselves to charge you for more time).

    You could go with a system like Drupal that comes with support for all of those features, or you could install a bunch of separate scripts (one for each feature) and either integrate them together or leave them separate. Installing things like a blog script, a forum script, a wiki script and a newsletter script are pretty easy and can be done with no programming experience. However, integrating them together into a seamless site is where the programming requirement comes in.

    And why does it matter what language platform we prefer before we even choose a developer? This is because I do not want to be stuck with a website in a few years with out-dated technology that is difficult to find a new developer to work on in case the first developer walks away from the project after a few years - which is a very possible scenario. Therefore I feel it is wise to built on the latest most promising technology today in the hopes that it will have the longest long-term stability and support.
    Indeed that is an important consideration, as I mentioned when I was discussing frameworks. Neither PHP nor Ruby will be leaving the scene anytime in the foreseeable future. Given how much PHP code is currently used on the internet is would take many years to replace it all even if the decision to stop using PHP for everything was made today.
  18. #10
  19. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2009
    Posts
    5
    Rep Power
    0
    Thank you E-Oreo again for putting everything into perspective.

    Mike

IMN logo majestic logo threadwatch logo seochat tools logo