The i-Technology Media!
Register | Log in
   
 
.NET  ·  AJAX  ·  CLOUD  ·  ECLIPSE  ·  FLEX  ·  OPEN WEB  ·  iPHONE  ·  JAVA  ·  LINUX  ·  OPEN SOURCE  ·  ORACLE  ·  PBDJ  ·  SEARCH  ·  SILVERLIGHT  ·  SOA  ·  VIRTUALIZATION  ·  WEB 2.0  ·  WIRELESS  ·  XML
Comments
Plone and Drupal: Different Approaches, Different Results
paul.nowak wrote: Matt, thanks for the comments. I made an error on the version of Plone. It's 2.5 Plone running on Zope 2.9x. In regards to the additional products, we have a skin installed and we have a product that we had custom developed for us that connects to a PostgreSQL database. We've looked at slow PostgreSQL queries causing problems and have not been able to find an issue. We've also tested for the case where the PostgreSQL server is down and have not been able to create an issue. We therefor...
Nov. 4, 2009 04:19 PM EST
Cloud Expo on Google News
Did you read today's front page stories & breaking news?


2009 East
PLATINUM SPONSORS:
IBM
Smarter Business Solutions Through Dynamic Infrastructure
IBM
Smarter Insights: How the CIO Becomes a Hero Again
Microsoft
Windows Azure
GOLD SPONSORS:
Appsense
Why VDI?
CA
Maximizing the Business Value of Virtualization in Enterprise and Cloud Computing Environments
ExactTarget
Messaging in the Cloud - Email, SMS and Voice
Freedom OSS
Stairway to the Cloud
Sun
Sun's Incubation Platform: Helping Startups Serve the Enterprise
POWER PANELS:
Cloud Computing & Enterprise IT: Cost & Operational Benefits
How and Why is a Flexible IT Infrastructure the Key To the Future?
Click For 2008 West
Event Webcasts

2009 East
GOLD SPONSORS:
CA
Get Your Transactions Under Control: SOA Performance Management
Software AG
Performance Driven Adoption: The Secret to Advancing SOA
Intel
The Evolving SOA Appliance: 3 Game-Changing Innovations
SILVER SPONSOR:
Denodo
Data Mashups: Deliver Your Project Faster with Virtualized Data Services Across Internal & External Sources
POWER PANELS:
The Business Value of Service Orientation
Driving Profitability Through User Experience
Click For 2008 West
Event Webcasts
Live Google News by SYS-CON!
Top Three Links You Must Click On


News
"OO Isn't Everything," Says Unix Veteran Rob Pike
Now with Google, Pike believes OO is "just one way to approach a problem"

By: Java News Desk
Oct. 21, 2004 12:00 AM

Related Links:

  • Core Object Principles in OO Programming


  • "I'm not much of a fan of object-oriented design," Rob Pike has been telling the developer community, in reply to a question put to him recently via Slashdot.org.

    Pike, who now works for Google, Inc., said: "I'm not much of a fan of object-oriented design," though he conceded that the future does indeed seem to have, as he puts it, "an OO hue."

    Pike then went on to offer an analogy aimed at exposing the weakness of using only OO methodology in all cases:

    "If you want to make some physical artifact, you might decide to build it purely in wood because you like the way the grain of the wood adds to the beauty of the object. In fact many of the most beautiful things in the world are made of wood. But wood is not ideal for everything. No amount of beauty of the grain can make wood conduct electricity, or support a skyscraper, or absorb huge amounts of energy without breaking. Sometimes you need metal or plastic or synthetic materials; more often you need a wide range of materials to build something of lasting value. Don't let the fact that you love wood blind you to the problems wood has as a material, or to the possibilities offered by other materials."

    "OO is great for problems where an interface applies naturally to a wide range of types," Pike added, "not so good for managing polymorphism (the machinations to get collections into OO languages are astounding to watch and can be hellish to work with), and remarkably ill-suited for network computing."

    "That's why I reserve the right to match the language to the problem, and even - often - to coordinate software written in several languages towards solving a single problem," he continued.

    Pike accepted that OO design is the way people are taught to think about computing these days: "I guess that's OK - the work does seem to get done, after all - but I wish the view was a little broader."

    Personally, though, he reserved the right to match the language to the problem, and even - often - to coordinate software written in several languages towards solving a single problem.

    "It's that last point - different languages for different subproblems - that sometimes seems lost to the OO crowd," Pike said. "In a typical working day I probably use a half dozen languages - C, C++, Java, Python, Awk, Shell - and many more little languages you don't usually even think of as languages - regular expressions, Makefiles, shell wildcards, arithmetic, logic, statistics, calculus - the list goes on."

    Pike agreed that object-oriented design has much to say to Unix, "but no more than functions or concurrency or databases or pattern matching or little languages or..."

    "Unix in all its variants has become so important as the operating system of the Internet that whatever the Java applications and desktop dances may lead to, Unix will still be pushing the packets around for a quite a while," he remarked. 


    Related Links:
  • Core Object Principles in OO Programming
  • Published Oct. 21, 2004— Reads 22,648 — Feedback 11
    Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
    Syndicated stories and blog feeds, all rights reserved by the author.
    Related Links
    ▪ Pike's Current Technology Playground
    About Java News Desk
    JDJ News Desk monitors the world of Java to present IT professionals with updates on technology advances, business trends, new products and standards in the Java and i-technology space.

    Add Your Feedback

    In order to post a comment you need to be registered and logged in.

    Register | Sign-in

    Reader Feedback: Page 1 of 1

    #11
    Old Man commented on 29 Oct 2004

    Pike's article didn't say much.
    Bill Burdick shot his collections comment all to hell (and exposed Pike's ignorance).
    Guys like Matt Asplin con give OO a bad name.
    Too many people think they are doing OO when they're not.
    The Java community now talks about POJO's. We shouldn't need a special word for something that's suppose to be a signficant part of the solution if we're using OO properly.

    #10
    Matt Asplin commented on 26 Oct 2004

    I would agree with this article. Even object oriented design has somewhat been changed to accomodate technical issues with web application servers, serialization, and other technical or performance issues. In pure OO theory, you would construct objects exactly as they exist. An object with attributes and methods that do everything that the object could do. To solve issues with EJB's, serialization, etc, new approaches (or design patterns) have been widely accepted as OO design. That is why quite often beans (objects) are separate from command classes (their actions). This has become so common place that it is second nature for OO designers. Many would argue that these patterns really are OO, and I would say that be re-definition, yes, but not from general theory.

    #9
    Dave Homiak commented on 25 Oct 2004

    I agree with Pike in principle. Why would you limit yourself into always using a circular saw, if you could have a radial arm saw too? Strict o-o languages fail to provide the additional capabilities necessary to allow the language to fit many types of problems, and that is why multi-paradigm languages/programming are increasingly popular. A language like Mozart/Oz, which provides the salient features of o-o, functional, logic, constraint, and concurrent program in a unified system, should be more productive, in my opinion, than either o-o alone or the .Net CLR approach of combining multiple, disparate languages that compile to the same byte code.

    #8
    Sergio da Silva commented on 25 Oct 2004

    I think the author misses the point. It is one thing to be a developer and develop an application in UNIX. It is another thing altogether to be more of an architect/developer and develop an application for a customer in whatever operating system. OO is about abstraction and "good" abstraction at that, for developing commercial applications (where the environment is not necessarily known when the project starts, the team may not be mature enough etc.), good design is essential and to me OO offers "better" design than structured programming (or other programming paradigm).
    Sure it is not a one-size-fits-all solution but it should be the building block.
    The limitations the author said (and some agreed and improved upon) are too centered on Java. If one uses a fully OO languague such as Smalltalk for example, there are no such limitations because everything is an object (a paradigm difficult to accept for some) - Java for example has primitives, which for good or for worse, makes the languague "less" OO since now not every construct in the language is an object (yeah there are primitive wrappers - but it gets cumbersome and is not practical).

    #7
    Joel C. Lim commented on 24 Oct 2004

    Too much of a good thing will always yield unsatisfactory results. For me, what's important is what the customer wants, regardless of languages, tools, processes, or methodologies. If the customer wants the solution only,
    then I am happy to do it for him with the best language,
    tools, processes, or methodology that I know that will
    produce a result that is beyond his/her expectations.
    But if the customer is an OO purist and is very particular about how the solution is developed and written, then so be it. All things have flaws, OO included. But in the end the customer defines a job well done.

    Also, I have to agree that patterns have made OO development easier and understandable. I am still waiting to see experts of non-OO languages produce their own set of patterns that will helpful to other developers.
    This may help attract OO-dogmatists to non-OO languages.

    #6
    James D commented on 23 Oct 2004

    OO design seems to be a religion for some developers. I can't begin to list the number of projects that were simple to begin with and some OO perfection worshiper turned them into a "perfect" OO nightmare!!

    A couple years ago I delivered a project to a client that hasn't failed once since it's rollout but a colleague (an OO worshiper) called it a kludge because I didn't strictly follow his idea of OO perfection. Yet if I had done it his way it would have consumed at least twice the system resources, taken longer to develop, *increased* the number of lines of code and would have been *less* able to deal with oddities in the data I was receiving. At the same time, his design of OO greatness on a related project for the same client failed to meet the client's requirements and his project was cancelled.

    OO is like drinking alcohol... know when to say when.
    There are times to use objects and time to say KISS... Keep It Simple Stupid! Anyone that obsesses about using objects for everything needs to take a step back and ask what it has gained them. Just being OO does not make a program smaller, easier to maintain or more reliable.

    On the other hand, Id hate to do without it. By using an OO design for handling similar data types and by implementing a handful of optimizations ONCE instead of 20+ times I was able to cut the code size of another project by 75% and decrease system CPU usage by several orders of magnitude from the previous design.

    #5
    D. Hegyi commented on 23 Oct 2004

    The problem with script kiddies nowadays is that they don't have a firm grasp of fundamental programming concepts before they dive into the OO pool.

    A solid structured-programming foundation is necessary to manage any software project. First and foremost, an OO designer must learn how to control the granularity and responsibilities of objects.

    A typical (flawed) OO design concept goes like this:
    "I want to build a castle. My castle is made of bricks. I will design a brick class such that every brick knows how to build itself into a castle." That may work for genetic algorithms like DNA, but very quickly becomes unmanageable in the real world.

    I agree with Bill Hughes. I'm also glad there are also pragmatists like Pike. There have been far too many times when I've been programming in Java that I've thought to myself, "These (java library designer) guys have gone too far in coming up with a sophomoric solution that, instead of making my job easier, has needlessly complicated the issue."

    regards,
    Dar7yl.

    #4
    Carl commented on 23 Oct 2004

    All i can say is thank gof for Design Patterns and alur and gang for J2EE Design patterns.It takes OO and makes it G"OO"D :)

    #3
    Bill Hughes commented on 23 Oct 2004

    I spent 3 years developing an open source RAD system for J2EE (www.structuredsoft.com). What we discovered is that one limitation of object orientation -- specifically as it is learned by the typical Java developer -- is that "I need to design and write everything in terms of objects." This simply is not useful in many situations.

    Consider, for example, that one cannot RUN a Java program without a main() method, which is a procedural program. What VB developers learned that made them quickly productive is that it is more important for RAD development to effectively USE objects as opposed to CREATE objects. When you don't have the objects you need, then you can create them. And object-oriented design and languages are excellent for that.

    The genius of good programming, then is knowing the boundaries of design where different idioms (OOA/D/P, procedural scripting, data-oriented stored procedures, etc.) should be employed.

    What's more frustrating is that Microsoft sits and laughs at the Java community as it gets its shorts in a bunch about the purity of the language. I'm glad that there are "ivory tower" philosophers and PhDs in the Java community, and I'm glad there are multi-lingual scientists of computer programming like Bill Burdick, too. But I'm also glad there are also pragmatists like Pike to help us challenge our thinking about what works when.

    #2
    Patrick Anderson commented on 22 Oct 2004

    "If your a hammer everything looks like a nail" -- As a concientous consultant, developer, and/or manager of technology projects, we must understand the tasks and the context of the tasks we are dealing with in our technology universe. Only then can we hope to make a valid selection of tools, methodologies, and/or design approaches and hope that will be close to an elegant solution or ideal programming meta-framework.

    #1
    Bill Burdick commented on 20 Oct 2004

    Although I agree with the general concept that OO is one of many good tools you can use to get computing done, I have to disagree with Pike about collections and polymorphism in OO languages. His statements seem directed at strongly typed OO langs. What about CLOS (LISP), Smalltalk, Ruby, and Python?
    Collections work just fine in those languages and you don't have to use any "machinations" at all to use them.


    Subscribe to the World's Most Powerful Newsletters
    Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
    Click to Add our RSS Feeds to the Service of Your Choice:
    Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
    myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
    Publish Your Article! Please send it to editorial(at)sys-con.com!

    Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

    SYS-CON Featured Whitepapers

    ADS BY GOOGLE

    Breaking Java News
    Pelosi Remarks Following House Democrats' Meeting with President Obama
    Miami University Dedicates New Home of Farmer School of Business
    Bishops Urge Passage of Stupak-Ellsworth Anti-Abortion Amendment for Health Reform Bill
    South Florida Businessmen Robert Rico
    Statement Regarding Cardinal Rigali's Memo Protecting the 'Status Quo' On Life
    United Way of Greater Los Angeles Hosts 3rd Annual HomeWalk

    ADVERTISE   |   MAGAZINE SUBSCRIPTIONS   |   FREE BREAKING-NEWSLETTERS!   |   SYS-CON.TV   |   BLOG-N-PLAY!   |   WEBCAST   |   EDUCATION   |   RESEARCH

    .NET Developer's Journal - .NETDJ   |   ColdFusion Developer's Journal - CFDJ   |   Eclipse Developer's Journal - EDJ   |   Enterprise Open Source Magazine - EOS
    Open Web Developer's Journal - OPENWEB   |   iPhone Developer's Journal - iPHONE   |   Virtualization - Virtualization   |   Java Developer's Journal - JDJ   |   Linux.SYS-CON.com
    PowerBuilder Developer's Journal - PBDJ   |   SEO / SEM Journal - SJ   |   SOAWorld Magazine - SOAWM   |   IT Solutions Guide - ITSG   |   Symbian Developer's Journal - SDJ
    WebLogic Developer's Journal - WLDJ   |   WebSphere Journal - WJ   |   Wireless Business & Technology - WBT   |   XML-Journal - XMLJ   |   Internet Video - iTV
    Flex Developer's Journal - Flex   |   AJAXWorld Magazine - AWM   |   Silverlight Developer's Journal - SLDJ   |   PHP.SYS-CON.com   |   Web 2.0 Journal - WEB2
    Apache   |   CMS   |   CRM   |   HP   |   Oracle Journal   |   Perl   |   Python   |   Red Hat   |   Ruby on Rails   |   SAP   |   SaaS

    SYS-CON MEDIA:   ABOUT US   |   CONTACT US   |   COMPANY NEWS   |   CAREERS   |   SITE MAP
    SYS-CON EVENTS:   |  AJAXWorld Conference & Expo  |  iPhone Developer Summit  |  Cloud Computing Conference & Expo  |  SOA World Conference & Expo  |  Virtualization Conference & Expo
    INTERNATIONAL SITES:   India  |  U.K.  |  Canada  |  Germany  |  France  |  Australia  |  Italy  |  Spain  |  Netherlands  |  Brazil  |  Belgium
     Terms of Use & Our Privacy Statement     About Newsfeeds / Video Feeds
    Copyright ©1994-2008 SYS-CON Publications, Inc. All Rights Reserved. All marks are trademarks of SYS-CON Media.
    Reproduction in whole or in part in any form or medium without express written permission of SYS-CON Publications, Inc. is prohibited.
     
    close this window