Exforsys
+ Reply to Thread
Results 1 to 2 of 2

ANN: design patterns essay

This is a discussion on ANN: design patterns essay within the Software Patterns forums, part of the Testing category; Dear all, i have written an opinionated essay on Design Patterns. It is located here: http://xahlee.org/UnixResource_dir/w...ware_suck.html or here: -- begin ...

  1. #1
    Xah Lee Guest

    ANN: design patterns essay

    Dear all,

    i have written an opinionated essay on Design Patterns.

    It is located here:
    http://xahlee.org/UnixResource_dir/w...ware_suck.html

    or here:

    -- begin opinionated --

    Date: 2 Dec 2001 14:17:38 -0800

    Dear programers,

    i started to give my views on patterns and XP in this thread, then it
    got ramified by someone into a hogwash discussion that revolves around
    attacking the word "mathematics".

    I like to make a coherent summary of my views on the Design Patterns
    and eXtreme Programing stuff.

    In my previous articles

    | Message-ID: B826DEE2.489D%xah@best.com
    | Date: Mon, 26 Nov 2001 01:46:13 GMT
    | Subject: Re: Design patterns for Lisp

    and other posts posted here recently, their contents are summarized
    and expanded as follows:

    (1) Patterns and XP are wishy-washy, unscientific, unproven, and
    without any mathematical basis.

    (2) there are enough applied mathematics in computer science for a
    life-time of study.

    (3) The programers in computing industry lacks sufficient training.
    They lack sufficient computer science background, lack mastery of
    their tools (languages, protocols etc.), and their knowledge of their
    domain/field are often poor.

    (4) It is extremely easy and common for non-qualified people to become
    a software professional, who will gradually churn out significant
    quantity of codes. (this is in contrast with other engineering
    disciplines. A desk-top computer is sufficient to send a interested
    laymen into software industry.)

    (5) Software engineering is ten thousand times easier than physical
    engineering such as bridge, airplane, tunnel, train, ship... building.

    (6) computer do not make mistakes, people do, and sloppiness is a
    common attitude in software industry.

    (7) software licenses are irresponsible. The vast majority of software
    license agreements contains clauses that don't guarantee it works.

    --

    The quality of software depends on primarily of two aspects:

    * Programer's mastery of the tools. (programing language, protocols,
    operating system ...)

    * Programer's expertise/knowledge of his field/domain.

    Programers should master their tools. Know every detail of their
    language well. Then, programer should strive to accumulate knowledge
    of their respective domain.

    When a programer masters his tools and domain expertise, he obtains
    the expertise any Design Pattern tries to describe. Design Patterns is
    a snake oil. Icing on the cake. Fluff. Wishful thinking. Slouch's
    drug. Idiot's placebo. And that's not all.

    Design Patterns is the opium of computing industry. From an addicted
    individual or company, it may have improved a code or helped a team.
    But on the whole, it hinders the propagation of quality languages. It
    stops advancements of language design. It reduces the awareness of
    real education needs like mastering languages and domain expertise. It
    is a fucking spoon-feeding formula designed to retard the mundane and
    drug the smart. It curbs creation ability. It is a plague, a bad-ass
    fashion phenomenon; a jargon-riding dimwit-pleasing epidemic.

    For the record, the "Gang of Four" mentioned in this thread who wrote
    the _Design Patterns_ book are:

    Erich Gamma <-- fucking ass one
    Richard Helm <-- fucking ass two
    Ralph Johnson <-- fucking ass too
    John Vlissides <-- fucking ass also

    These people will be remembered as criminals in the computing history,
    along with Larry Wall and those fucking jackasses who distributed
    their home work now known as Unix. [criminals here is defined as those
    who bring damages to society, including hampering progress in a
    massive scale.]

    --

    I have mentioned above that software engineering is significantly
    easier then bridge engineering. Let's drill on this a bit.

    When we say A is easier then B, we have to define what we mean by
    "easier". Before we can say what we mean by "easier", we need to
    understand the nature A and B comparably. We can consider Software
    Writing vs Bridge Building. This would be on easy one. We can also
    consider Software Engineering vs Bridge Engineering. This will be a
    bit difficult. We'll need to further discuss what does "engineering"
    really encompasses here. Coming up with a good definition can be quite
    involved. Instead of drilling on a sensible definition, I'll simply
    mention a few comparisons of things in software engineering and bride
    engineering below. The following items will be somewhat hodgepodge.

    * Material cost.

    * Size of team.

    * Cost of raising (educating/training) engineers.

    * The nature involved.

    In building bridges, there are lots of unknown factors. There's wind,
    storm, flood, earthquake all of which we cannot fully control, and can
    only predict in a limited way. It will involve many science
    disciplines. geo-science, physics, aerodynamics. Software building
    requires much lesser disciplines, and significantly much less people.

    Build bridges is costly. It can only be done once, and the one time
    must be right. It cannot go by trial-and-error. Software building on
    the other hand, can trial-and-error all the way. It's essentially
    costless.

    The essence of computers can be likened to an abacus. You push the
    beads and you readout the values. There are no chance events. No storm
    or flood to worry about. The information are one hundred percent known
    to you, and you control it one hundred percent one hundred percent of
    the time.

    Which one is ten thousand times easier do you think? Is it bridge
    engineering, or software engineering?

    --

    In the above, i have touched on the problem of software licenses.
    Namely, they outright disclaims the functionality of the software.

    I propose that we raise an awareness of this situation, so that the
    public (consumer) will start to demand more responsible software
    (licenses).

    .... my time's up. Next time when i have some time, reminds me to write
    on WHY software industry is the way it is, and why the solution is to
    first raise the awareness of irresponsible licenses. This should be
    the last message in this episode.

    Goodbye my love, cum all over your face.

    Xah
    xah@xahlee.org
    http://xahlee.org/PageTwo_dir/more.html


    Feast your eyes. Note the ominous all-caps.

    -----------------------------------
    Excerpt of License agreement from Mac OS 9:

    4. Disclaimer of Warranty on Apple Software. You expressly
    acknowledge and agree that use of the Apple Software is at your sole
    risk. The Apple Software is provided "AS IS" and without warranty of
    any kind and Apple and Apple's licensor(s) (for the purposes of
    provisions 4 and 5, Apple and Apple's licensor(s) shall be
    collectively referred to as "Apple") EXPRESSLY DISCLAIM ALL WARRANTIES
    AND/OR CONDITIONS, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
    THE IMPLIED WARRANTIES AND/OR CONDITIONS OF MERCHANTABILITY OR
    SATISFACTORY QUALITY AND FITNESS FOR A PARTICULAR PURPOSE AND
    NONINFRINGEMENT OF THIRD PARTY RIGHTS. APPLE DOES NOT WARRANT THAT
    THE FUNCTIONS CONTAINED IN THE APPLE SOFTWARE WILL MEET YOUR
    REQUIREMENTS, OR THAT THE OPERATION OF THE APPLE SOFTWARE WILL BE
    UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE APPLE SOFTWARE
    WILL BE CORRECTED. FURTHERMORE, APPLE DOES NOT WARRANT OR MAKE ANY
    REPRESENTATIONS REGARDING THE USE OR THE RESULTS OF THE USE OF THE
    APPLE SOFTWARE OR RELATED DOCUMENTATION IN TERMS OF THEIR CORRECTNESS,
    ACCURACY, RELIABILITY, OR OTHERWISE. NO ORAL OR WRITTEN INFORMATION
    OR ADVICE GIVEN BY APPLE OR AN APPLE AUTHORIZED REPRESENTATIVE SHALL
    CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY.
    SHOULD THE APPLE SOFTWARE PROVE DEFECTIVE, YOU (AND NOT APPLE OR AN
    APPLE AUTHORIZED REPRESENTATIVE) ASSUME THE ENTIRE COST OF ALL
    NECESSARY SERVICING, REPAIR OR CORRECTION. SOME JURISDICTIONS DO NOT
    ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY
    NOT APPLY TO YOU. THE TERMS OF THIS DISCLAIMER DO NOT AFFECT OR
    PREJUDICE THE STATUTORY RIGHTS OF A CONSUMER ACQUIRING APPLE PRODUCTS
    OTHERWISE THAN IN THE COURSE OF A BUSINESS, NEITHER DO THEY LIMIT OR
    EXCLUDE ANY LIABILITY FOR DEATH OR PERSONAL INJURY CAUSED BY APPLE'S
    NEGLIGENCE.

    5. Limitation of Liability. UNDER NO CIRCUMSTANCES, INCLUDING
    NEGLIGENCE, SHALL APPLE BE LIABLE FOR ANY INCIDENTAL, SPECIAL,
    INDIRECT OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO THIS
    LICENSE. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OF INCIDENTAL
    OR CONSEQUENTIAL DAMAGES SO THIS LIMITATION MAY NOT APPLY TO YOU. In
    no event shall Apple's total liability to you for all damages exceed
    the amount of fifty dollars ($50.00).

    -----------------------------------
    GNU General License, excerpt:

    NO WARRANTY

    11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO
    WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
    EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
    OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY
    KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
    PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME
    THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

    12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
    WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
    AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU
    FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
    CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
    PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
    RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
    FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
    SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
    DAMAGES.


    -----------------------------------
    END-USER LICENSE AGREEMENT FOR MICROSOFT WINDOWS 98, excerpt:

    LIMITED WARRANTY

    LIMITED WARRANTY.
    Microsoft warrants that (a) the SOFTWARE PRODUCT will perform
    substantially in accordance with the accompanying written materials
    for a period of ninety (90) days from the date of receipt, and (b) any
    Support Services provided by Microsoft shall be substantially as
    described in applicable written materials provided to you by
    Microsoft, and Microsoft support engineers will make commercially
    reasonable efforts to solve any problem. To the extent allowed by
    applicable law, implied warranties on the SOFTWARE PRODUCT, if any,
    are limited to ninety (90) days. Some states/jurisdictions do not
    allow limitations on duration of an implied warranty, so the above
    limitation may not apply to you.

    CUSTOMER REMEDIES.
    Microsoft's and its suppliers' entire liability and your exclusive
    remedy shall be, at Microsoft's option, either (a) return of the price
    paid, if any, or (b) repair or replacement of the SOFTWARE PRODUCT
    that does not meet Microsoft's Limited Warranty and that is returned
    to Microsoft with a copy of your receipt. This Limited Warranty is
    void if failure of the SOFTWARE PRODUCT has resulted from accident,
    abuse, or misapplication. Any replacement SOFTWARE PRODUCT will be
    warranted for the remainder of the original warranty period or thirty
    (30) days, whichever is longer. Outside the United States, neither
    these remedies nor any product support services offered by Microsoft
    are available without proof of purchase from an authorized
    international source.

    NO OTHER WARRANTIES.
    TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND ITS
    SUPPLIERS DISCLAIM ALL OTHER WARRANTIES AND CONDITIONS, EITHER EXPRESS
    OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OR
    CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE
    AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE PRODUCT, AND THE
    PROVISION OF OR FAILURE TO PROVIDE SUPPORT SERVICES. THIS LIMITED
    WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS. YOU MAY HAVE OTHERS, WHICH
    VARY FROM STATE/JURISDICTION TO STATE/JURISDICTION.

    LIMITATION OF LIABILITY.
    TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL
    MICROSOFT OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
    INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT
    LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
    INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY
    LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE
    PRODUCT OR THE FAILURE TO PROVIDE SUPPORT SERVICES, EVEN IF MICROSOFT
    HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN ANY CASE,
    MICROSOFT'S ENTIRE LIABILITY UNDER ANY PROVISION OF THIS EULA SHALL BE
    LIMITED TO THE GREATER OF THE AMOUNT ACTUALLY PAID BY YOU FOR THE
    SOFTWARE PRODUCT OR U.S.$5.00; PROVIDED, HOWEVER, IF YOU HAVE ENTERED
    INTO A MICROSOFT SUPPORT SERVICES AGREEMENT, MICROSOFT'S ENTIRE
    LIABILITY REGARDING SUPPORT SERVICES SHALL BE GOVERNED BY THE TERMS OF
    THAT AGREEMENT. BECAUSE SOME STATES/JURISDICTIONS DO NOT ALLOW THE
    EXCLUSION OR LIMITATION OF LIABILITY, THE ABOVE LIMITATION MAY NOT
    APPLY TO YOU.
    -- end of quote --

    comments welcome.

    Xah
    xahlee.org
    http://xahlee.org/PageTwo_dir/more.html



  2. #2
    john Guest

    Re: ANN: design patterns essay

    bullshit



Latest Article

Network Security Risk Assessment and Measurement

Read More...