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

Mike Harris mike at mbharris.co.uk
Fri May 31 11:49:05 UTC 2013


On 31/05/2013 12:31, naomi at aktivix.org wrote:
> +1, Mike. You reminde me of
>
> http://norvig.com/21-days.html
>
Looks like a good article, I'll have a read.
> 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
It'd be good to be able to do a talk on this leading perhaps to a
weekend workshop on the basics....

By the way, to prove it's not a hate of frameworks per se, I'm currently
wading through 5879 lines of Perl code that has no proper variable
scoping. :)
>
>
> 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
>>
>
>
> _______________________________________________
> 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