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

naomi at aktivix.org naomi at aktivix.org
Fri May 31 11:31:04 UTC 2013


+1, Mike. You reminde me of

http://norvig.com/21-days.html

Any language can be used well or badly, as I keep telling people who  
assume I'm churning out web apps in permanent beta because my career  
happened to drift into PHP - or who assume anything written in Java  
with the proper Enterprise Interfaces or whatever-the-fuck is  
necessarily "slow but reliable".

Frameworks are great for not reinventing the wheel, but they aren't a  
substitute for being able to program. Better to start with something  
simple (Rails is NOT simple - a Hello World page in PHP is, though) ...

N


Quoting Mike Harris <mike at mbharris.co.uk>:

> 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
>
>
> _______________________________________________
> HacktionLab mailing list
> HacktionLab at lists.aktivix.org
> https://lists.aktivix.org/mailman/listinfo/hacktionlab
>




More information about the HacktionLab mailing list