Re: [Radiant] Re: Why is Radiant a self-contained Gem?

2009-02-26 Thread Mark Glossop
On 27/02/09 13:02, somebody called Mohit Sindhwani (t...@onghu.com) wrote
this:
[snip]
 
 Sorry to nag, but - anyone? Bueller?
 
 In case this was somehow regarded as trollbait, I'm asking this as a
 legitimate query...it really is quite important for me to know, and
 time is
 a factor for me ATM.
 
 To summarise the above verbiage:
 
 Why is Radiant delivered with all dependencies included?
 
 Why not?
 Including the dependencies means the instructions for getting started
 for new users will be much simpler.
 Actually, I have found this quite useful since you don't always have
 access to installing extra gems (or your host is already on different
 versions, etc.) - just like you can freeze rails to a specific version
 in your specific application, this provides you the ability to create a
 Radiant app (similar to a Rails app) with the correct versions of
 everything (except Ruby) already included.
 
 As long as you have a compliant Ruby version on your server, you can use
 it straight away.
 
 That said, I think you are asking 2 questions without clearly saying it:
 1. Why is Radiant provided with all its dependencies?
 I think the answer is that it reduces dependencies on external code and
 different versions of things.  Radiant itself uses a number of plugins
 and gems (incl Rails) for its work.  Out of box, you are assured that
 what is provided is tested to work.
 
 Imagine if you had Textile 4 on the server and Radiant was tested only
 with Textile 3.2 and for some reason, there was a conflict that
 prevented it from working properly.  Here, you know it will work because
 it relies on a pre-bundled version.  Or in another case, you may have
 that Radiant is built with Textile 4 and your server only has Textile
 3.2 - so, Radiant fails!
 
 In that case, you'd end up with a situation where the installation
 instructions go something like:
 * Install Textile 4.0 (there are known issues with 3.2 which we will not
 fix because we are on a newer version)
 * Install acts_as_list (version xx.y)
 * Install acts_as_authenticated (version xx.y)
 ...and so on!
 
 You *must* see Radiant as a domain-specific Rails application (though
 you can even see it as a domain-specific Ruby application that relies on
 a gem called Rails) that provides everything that you need to run it.
 
 I hope that this clarifies this point.
 
 2. I think your second question is more along the lines of why don't I
 just get a Rails app, rather than a Rails app that looks like a gem?
 This ties in with your comment about not being able to contribute
 effectively to the code, etc.  I get the feeling that you would prefer a
 system where when you run radiant my_site, you would get the standard
 Rails directories, including app, appview, appcontrollers, etc.
 
 I think some of the Radiant core team can answer this better than me,
 but I'll tell you what I *feel* about this structure.
 a) It makes some things more difficult for the average Rails programmer
 b) It makes many things much simpler for the average CMS developer
 c) If Radiant works, my life is much simpler - I don't need to worry or
 look at how Radiant is built to be able to use it effectively.
 
 Since you started by pointing to Redmine, my answer would be: Redmine is
 a Rails application for project tracking, etc.  It is not a framework
 for building project tracking applications.  IMHO, Radiant is a
 framework for building CMS sites.  Therefore, the base stuff is kept out
 of your way while you can go ahead and build the other things you need -
 content, markup, extensions and plugins.  You don't use radiant, you
 use a site built using Radiant.
 
 In some ways, I could say that asking why Radiant is a gem with
 dependencies is like asking: why is Rails a gem?  Why isn't Rails just
 distributed as a set of libraries that someone has to put together by
 themselves.  I don't know Rails internals, but the question is akin to
 asking if all the internal parts of Rails should have been distributed
 completely separately.
 
 Hope this helps.
 
 Cheers,
 Mohit.
 2/27/2009 | 12:02 PM.

It does - thanks very much for your clear comments, and also for Jim's
questions. The application vs. framework analogy was particularly
useful. Thanks for taking the time.

Jim, I haven't answered your questions since Mohit's answer clarifies a lot
for me, and much of my opinions were/are based on little more than gut feel
and a lot of IT experience. Were I to give any answers, they likely wouldn't
say more than I'd like it to be less surprising to someone who has
experience with Rails development. Again - an opinion - which by definition
can't always be (rationally) justified.

I can't say I agree with everything that Mohit has stated - although I'll
readily concede 2a and 2b! - but I understand a little better now.

Again - thanks.

Cheers,
Mark
__
Mark Glossop - lists AT cueballcentral DOT com


___
Radiant

[Radiant] Why is Radiant a self-contained Gem?

2009-02-25 Thread Mark Glossop
Hi all - first time poster here [didn't want to hijack the thread about
Dreamhost, so started a new one...I have a very specific question, related
to the OP about Dreamhost.]

It's good to be hearing this about Dreamhost now, especially when I'm
looking to deploy this weekend. Only started with Radiant about a week ago.
Doing my dev work on local box, and have been a little concerned about the
sorcery that it may take to get everything moved over onto Dreamhost's
special environment. I'm deliberately doing all the dev locally since
that's how I'm used to doing Rails dev work; no developtestduction here! :-)

Anyhow - this whole issue brought something back to me...something that
initially made me steer away from Radiant as a CMS when I was looking around
at various CMS options. I liked Radiant, but didn't like the way it was
packaged up. Evidently that's not enough of a reason for me to _not_ use it,
but the question remains:

Why is Radiant delivered as a gem with all the dependencies included? Or,
put another way, why is it not delivered as a Ruby gem with external gem
dependencies, that generates a standard Rails app structure when invoked?

Some clarification (please note, all of the following are IHMO):
* Some much larger apps [Redmine comes to mind] don't use this approach and
are actually simpler to deploy than Radiant. Really.
* Yes, I know standard isn't exactly well-defined AFA Rails is concerned.
* gem unpack is not a valid answer/workaround.
* The closest rationale I have found for this question is in the Radiant FAQ
- Gems: Versions of any required libraries are built-in. So that means that
you don't need to have the rails gem installed: the radiant gem comes
bundled with a particular version.
* It also makes it harder to consider contributing code to Radiant.

Apart from my own curiosity, my business partners will want to know why I
have chosen Radiant for the CMS I am working on. This info helps me with
them.

If the full reasoning behind this design decision is already online
somewhere, please just point me there, as my Google-fu has obviously not
been working. Thanks!

Cheers,
Mark
__
Mark Glossop - lists AT cueballcentral DOT com


___
Radiant mailing list
Post:   Radiant@radiantcms.org
Search: http://radiantcms.org/mailing-list/search/
Site:   http://lists.radiantcms.org/mailman/listinfo/radiant