I can see why a programmer would be frustrated with Drupal. I've been confused 
by it on a number of occasions. I'm not very deep into the Drupal community, 
and I've only tried some aspects of Drupal development. So I'm maybe not the 
most likely person to say the following.

If you go the route of "CMS for the basic site and then a framework for all 
complex functions", I'd recommend being brutally honest with yourself about 
what is part of the "basic site" and what isn't. When you're a programmer, 
every problem can be solved by a new application (or so we think).

I don't know what sort of complex functions you're thinking of (I haven't fully 
digested this epic thread), but my library is actually in the middle of a major 
website overhaul that involves (among other things) integrating into Drupal all 
the "custom" functionality that we have made apps for over the years. For 
instance, our main website is a Drupal (6) site. Our library hours, however, 
are handled by a custom app. That doesn't make a whole lot of sense 
architecturally -- it re-implements (with a framework) a bunch of CRUD 
functionality, a user system, templating, etc. Drupal is capable of handling 
all of that. And we have an app of which the sole purpose is to export our 
Drupal theme so that other applications can look like they're part of the site 
without being in Drupal. While that is valid at times, it might have signaled 
to us that those things should have been a part of Drupal. We're finding that, 
while Drupal does certainly have different way of doing things, if we w!
 ork with Drupal rather than trying to circumvent it, it can be a great help.

Every problem can be solved by a new application, except the problem of too 
many applications or a confusing overlap between a few. I don't know what your 
scale is, but I'd suggest paying attention to the overall architecture and 
thinking 5 years down the road.

And I say all this as one who is primarily a programmer (Symfony [1] is my 
current framework choice, and Doctrine [2] is amazing), and who prefers to have 
all the resources of object-oriented design and development at my disposal. 
Drupal isn't working that way (though D8 is moving that direction), and it does 
have a learning curve, but it moves traditionally programmer-only tasks within 
the reach of those who aren't programmers. We can view that as competition, or 
we can embrace it. 

But if you honestly can't bring yourself to invest in learning the Drupal Way 
-- no judgment there, it *is* different! -- and your organization is willing to 
commit to always carefully hiring programmers, building something might be an 
excellent choice. That might be a very healthy and freeing realization.

If you are willing to dive in deep, consider attending DrupalCon. Amazing 
community. :-) 

Mike Hagedon
University of Arizona Libraries

[1] http://symfony.com/ 
[2] http://www.doctrine-project.org/

-----Original Message-----
From: Code for Libraries [mailto:CODE4LIB@LISTSERV.ND.EDU] On Behalf Of Joshua 
Welker
Sent: Thursday, May 15, 2014 10:42 AM
To: CODE4LIB@LISTSERV.ND.EDU
Subject: Re: [CODE4LIB] Very frustrated with Drupal

Hmm using a CMS for the basic site and then a framework for all complex 
functions might be a good idea.

Josh Welker


-----Original Message-----
From: Code for Libraries [mailto:CODE4LIB@LISTSERV.ND.EDU] On Behalf Of 
Wiegand, Laura K.
Sent: Thursday, May 15, 2014 10:20 AM
To: CODE4LIB@LISTSERV.ND.EDU
Subject: Re: [CODE4LIB] Very frustrated with Drupal

For me the main benefit of Drupal has been that, as a wanna-be coder, I can do 
some very powerful things simply through logic - I may have to carefully think 
about structure, relationships, experiment with views, evaluate modules 
carefully, problem-solve during updates, document my work, etc, but I don’t 
*have* to code a single thing (although I do). (yes, I know this is the 
code4lib listserv not the drupal4lib listserv where this statement might be 
more well received :) This was really important to me when we started using 
Drupal 5-6 years ago and we did not (at the time) have a programmer on staff. 
Yes, Drupal has a steep learning curve but once you get past that and figure 
things out for the first time, it's easier to apply them as you add new 
features.  And it's just so powerful.

Regarding the module dependencies, I think the key is to carefully choose your 
modules. Over the last 6 years I've only run into trouble a couple times. 
Sometimes you can't update to the latest version of a module because it isn't 
(yet) compatible with another dependent or related module. So I just leave it 
until the other modules catch up. Security updates rarely cause the conflict 
you describe, so those can almost always be applied. In my experience, once you 
get your site established the turmoil you describe dies down.

In terms of business continuity, the fact that there is such a strong Drupal 
community, both in the library world and beyond, means that there are plenty of 
people who could figure out what you had put together.

I use Wordpress for other, more simple, web development and I see the 
advantages to Wordpress - it's a lot less clunky on the admin side. It feels 
more lightweight and streamlined. But I feel that Drupal is more powerful.
While we use Drupal for our website development, our developer uses other php 
frameworks  for other more internal web applications for the reasons you state. 
I think it might just come down to preference (both personal and
shop) and skills.


____________________________________________________________________
Laura K. Wiegand
Coordinator of Discovery Services
William M. Randall Library
University of North Carolina Wilmington
601 South College Road
Wilmington, NC 28403-5616

wiega...@uncw.edu
Phone: (910) 962-3680




------------------------------

Date:    Wed, 14 May 2014 20:35:05 -0500
From:    Joshua Welker <wel...@ucmo.edu>
Subject: Very frustrated with Drupal

Warning: incoming wall of text.

I've been working for the past several months on building a library website 
with Drupal. This is my second try building a website with Drupal. I chose 
Drupal for two main reasons: CCK/content types, and its ubiquity in the library 
community.

Theme development was going relatively well, if a little overly complicated.
But once I started trying to do anything beyond developing static pages, I have 
become more and more frustrated with Drupal.

Drupal supports custom content types out-of-the-box, which is great, but if you 
want to actually do anything with that custom content other than have it 
function as a plain page, you have to use the Views module. Views is great, but 
views can easily become very complicated, with custom rewrites, grouping, 
relations, contextual filters, etc. Plus, a lot of functionality in Views 
requires more modules (for instance, basic data manipulation).
This is to build rather run-of-the-mill list features like a database list or a 
list of events. And a lot of the advanced features in Views require a solid 
understanding of SQL (groups, distinct, joins, etc), which kind of defeats the 
notion that it is easy for non-developers to administer.

Now, at this point, I have modules extending my modules. And those modules have 
multiple dependencies on other modules. I am getting worried now. It feels like 
my website is a house of cards. I've run into several instances already where 
one of these plugins is updated and breaks compatibility with the whole stack, 
and there is nothing to do in this case but open an issue on the project 
tracker and pray for the best. I have looked into building my own modules, but 
the umpteen APIs and hooks required to do something simple as perform some 
regex on field data completely overwhelmed me (and I am fairly experience with 
web app development).

It's not just Views, either. Anything more complicated than static pages and 
navigation menus requires relying on the module ecosystem.

Not only is the whole thing quite precarious, but it defeats one of the two 
main purposes of a CMS: ease of administration. I want to know that if I get 
hit by a bus tomorrow, someone will be able to come in and take over without 
too much difficulty. But when I go back and look at my views, I can sometimes 
barely understand the work I did a week ago. It is very difficult to keep 
straight which functions are coming from which modules, and all those modules 
have separate (often poor) documentation.

At this point, I am seriously contemplating dumping Drupal and moving to a 
full-fledged framework like Django, Flask, or Laravel and adding some WYSIWYG 
CRUD controls for pseudo-CMS functionality. ActiveRecord-like systems are much 
easier to use IMO than fiddling for hours with Views, and I have full control 
of what is happening. I honestly think it would be just as easy for someone to 
inherit a custom-built framework app as it would be to inherit my 
already-convoluted Drupal site. At least the framework is well-documented and 
should allow my app to be understandable to anyone with some programming 
experience.

Does anyone want to talk me off the ledge here? I know a lot of you are using 
Drupal for your websites. What are the killer features that keep you using 
Drupal? If any of you have experience building websites using frameworks, what 
are your experiences? I really want to like Drupal, but it seems to be more 
trouble than it's worth.

--
Josh Welker
Information Technology Librarian
James C. Kirkpatrick Library
University of Central Missouri
Warrensburg, MO 64093
JCKL 2260
660.543.8022


------------------------------

End of CODE4LIB Digest - 13 May 2014 to 14 May 2014 (#2014-126)
***************************************************************

Reply via email to