[HacktionLab] RAD ~= collaborative != (Well Designed | Well Programmed) [was: Rails girls]

Mike Harris mike at mbharris.co.uk
Fri May 31 08:50:53 UTC 2013


On 31/05/2013 09:20, ekes wrote:
> On 31/05/13 09:44, Mick - Clearerchannel wrote:
>> On 5/30/2013 11:49 AM, Mike Harris wrote:
>>>  am not a massive fan of Rails, but that's from being from a
>>> non-RAD background.  These web tools can mean that people develop web
>>> apps quickly that aren't actually that well designed or programmed, or
>>> easy to maintain.   It's a similar situation with PHP in general and
>>> with Drupal I think.
>> I guess using these kinds of frameworks have advantages and disadvantages.
>>
>> Disadvantages, you have to keep on top of security upgrades, you need to
>> watch out for conflicting code contributed by different authors, you
>> need to buy in to a methodology.
>> But you get the advantages of being part of a community effort so you
>> don't have to write your own code for every single thing your web app
>> does and you take advantage of the fact that there is a community
>> testing for security flaws as well.
> Building on the shoulders of giants it turns out is actually re-using
> lots of code written by hundreds of other people. This means dealing
> with ugly legacy, it means disagreement. It also means agreement, lots
> of peoples ideas and skills, understanding nutters and geniuses alike.
>
> It's actually an interesting discussion. You need to have some handle on
> the technical; but it's actually a social question:-
I think some of you misunderstood me.  I wasn't opposing frameworks,
such as Rails, in this instance.  Nor was I objecting to community
developed software as opposed to bespoke software.

I was pointing out that there's a lot of bad web development done out
there, both in Rails, Drupal, Plone and other such frameworks, and also
done natively in Perl, PHP, Python, Ruby, etc. 

I perceive producing difficult to maintain and/or bloated, wasteful code
an issue with respect to my ongoing ability to manage my web site.  The
issue I have with RAD tools - Rails, Drupal, etc. - is that they allow
newcomers without a grounding in software development to 'write' web
applications quickly and easily.  My experience of having had to fix or
maintain many such apps afterwards is that a lot of people in the web
industry produce a lot of pants software.  However they did it quickly
using community built software and they felt good about it and empowered.

I'm not saying that the Rails, Drupal, etc communities are not good,
that it's not time-saving, that it's better to go back to the drawing
board, that it's not cool to be part of a movement: I think all that is
great, and of course, having been a free software user since picking up
Emacs in the late eighties, I've benefited both personally and
professionally from being involved in this movement.

No.  It's that I believe that in order to program and write good,
lasting, maintainable code, you need to learn to program; this part I
feel is overlooked in the furore surrounding the community nature of
these platforms.  To wit: in the Drupal world, how much crud
misinformation written by people who don't know what they don't know is
there scattered all over various blogs on forums, and even Drupal's own
web site?  In my experience certainly enough to be a big time waster.

I liken Rails and Drupal to MS Access:  Access is quite a good tool in
reality and it does do relational databases and enforces their integrity
better than MySQL (at least up to 5.1).  It's got a nice visual database
design tool and it's got good form and report building tools.  But it
also allows people with no knowledge of databases to make large
databases quite quickly.  Therefore the problem with Access is mainly
the lack of experience of the people that use it and the databases they
produce.  I've seen companies grinding to a halt because of their 200
table Access database that someone who's left's nephew created and then
others have hacked about at over a year or two. 

I have the same concerns with Drupal, Rails and the like.  They lead one
into a false sense that building web apps is easy.  Well building web
apps perhaps is easy, but building good, stable, lasting web apps, takes
a bit of work.

PHP has a similar issue, and it's possibly arguably worse, as it is not
strongly typed as a language and means you can write completely
unstructured hackish code.   Ruby I think is a much better language for
writing good code, and therefore Rails has some benefits.

Final point: whenever I go along to my local Drupal Users Group (and yes
I actively use these tools and take part in the communities, so I'm not
just a jaded old git who doesn't know what he's on about), everybody
speaks about load balanced servers, extra RAM, using Varnish to speed
things up, installing umpty-umpt modules just to make some field in a
form do some thing, connecting it all up to Apache Solr, getting even
more servers involved.

Just to run a fucking website!! 

We've had this discussion on the list before, and I've waffled on too
much here, so hopefully I can sum up:

1.  Learn whatever language you like to do your development, but first
learn structured programming.  Python or Ruby, or even Javascript are
probably good languages for this.  Learn how to do stuff in the
underlying language first rather than the framework.

2.  Learn the framework, but apply what you learnt in 1 to it.

3.  Frameworks can be bloatware.  Consider whether your 5 page largely
static web site or blog really needs to be delivered using Rails,
Drupal, Plone, Mambo, Joomla or even Wordpress.

4.  Don't get as jaded about the web as I have gotten.  If you do,
consider a career change.

Cheers,

Mike.
>
> Can consensus discussion and collaborative programming ever be well
> designed or well programmed? Discuss.
>
> A couple of those technical random starting points for the afore
> mentioned PHP & Drupal:-
>
> Pragmatic and complex design, collaboratively worked out, a small part
> of the Web Services initiative in Drupal:
> https://groups.drupal.org/node/237443 (June 2012) which then leads to
> https://drupal.org/node/1540656
> Pretty? Well designed? Well programmed? Just solving the problems? Or
> building unnecessary complexity?
> Participatory? Democratic? Collaborative?
>
> Co-ordination and community http://www.php-fig.org/faq/ with discussions
> as
> https://groups.google.com/forum/?fromgroups=#!topic/php-fig/Y4xc71Q3YEQ
> and
> https://groups.google.com/forum/?fromgroups#!topic/php-fig/lANQM7LPX_M
> ending up with (disputed and still discussed) stuff like
> http://www.php-fig.org/psr/0/ but also
> https://groups.google.com/forum/?fromgroups#!topic/php-fig-cs/mN13VKUOhVQ
> Pretty? Well designed? Well programmed? Just solving the problems? Or
> building unnecessary complexity?
> Participatory? Democratic? Collaborative?
>
> Cheers, ekes
>
> _______________________________________________
> HacktionLab mailing list
> HacktionLab at lists.aktivix.org
> https://lists.aktivix.org/mailman/listinfo/hacktionlab


-- 
Mike Harris
w: http://mbharris.co.uk
t: +44 7811 671 893
0: http://mbharris.co.uk/keys/pgp.html




More information about the HacktionLab mailing list