Re: OO programming - illumination? - whoopsie

From: Andreas Klimas (klimas_at_klimas-consulting.com)
Date: 02/20/05


Date: Sun, 20 Feb 2005 01:56:31 +0100

Oscar kind wrote:
> Andreas Klimas <klimas@klimas-consulting.com> wrote:
>
>>Oscar kind wrote:
>>
>>>Why is OO used then? Because it makes modelling and design easier.
>>>Especially for complex problems. The result has not the smallest
>>>footprint, not the fastest execution, but is _good_ _enough_.
>>>
>>>However, large systems can be created faster, and that _saves_ _money_.
>>
>>this is simply _not_ true. I have seen too many evidences against this
>>hypothesis.
>
>
> Please enlighten me with examples then. I'd like to correct myself if I'm
> wrong, but I need something to replace my current knowledge with.

there is no enlightenment at all. just experience:

1. project starts out with a framework (say JSP/J2EE)
2. JSP/J2EE seems too complicated so as a next step a
    new framework would be developed which of course didn't
    replace the other one.
3. A company wide architecture will be released which
    ends in a new couple of libraries - on top of the
    second framework.
4. now real requirement come in this play - which of
    course doesn't fit (well) in those frameworks and architectures.
    so we have to work around and hope that we get
    those requirements running. but at this time we
    have to deal with so many problems - released only
    by 'framework developers' and 'senior architects'

well, with all that stuff we need about three weeks to
develop an new simple HTML Form.
to start the application it needs some hours and 16GB
of RAM. Response time approx. 3 min.

I have seen the exact same approach on a couple
of very big customers in Swiss and Germany.

My Solution:
Simple Web Server (essentialy HTTP protocol handler)
written in C.200 lines of code written in two hours.
Application written in C, very sharp, only real needed
requirement included. no dynamic behavior. written in
some weeks. 10000 lines of C code. (compared by 150000
lines of Java code). 512 MB Ram (compared by 16GB).

believe it or not.
most time spent is not development, it's in understanding
of the problem domain. once one has grasped the requirement,
implementation is easy. Now some hints
-> minimize runtime exceptions (out of memory, of
    disk space, TCP errors etc.)
-> minimize the use of frameworks, the minimum is zero
-> avoid implementing hooks for future extensions
-> use a straight implementation for the real problem (business
    problem).
-> don't avoid thinking.

... and so on

> Keeping things simple is the most difficult thing by far (IMHO). This is
> not related to the specific technique used, although some techniques make
> is easier to keep things simple. For administrative systems (my area of
> expertise), I find OO does this.

the problem I see (nearly every day) is that peoples are more
interested in writing techincally correct and pretty OO code
than in solving the real problem. as I mentioned above, this
will end in myriads of classes and methods, by far too oversized
for given problems. well I see, is much more fun to play
the technical game.

one question:
how many classes / methods are needed to convert a currency
into another ?

>
> This does not negate the fact however, that developers only work on stuff
> as a hobby, or what they get paid for. And for this last part, a developer
> has no final authority. He only has as much influence as his manager gives
> him, which hopefully increases by his/her skills in making things simple.
>
> However, if a manager has the idea that OO makes life easiest (even if it's
> misplaced), then that's what is being used.

sorry again. if software development becomes too expensive, managers
decide to outsource them, for example to india - no joke !
and anyway, those peoples do exact the same job, only three times
cheaper.

best wishes
Andreas Klimas



Relevant Pages

  • Re: Cost of developing a device driver?
    ... you assume I was talking about kernel developers. ... I personally think DriverWorks is a poor framework. ... It left the underlying driver model in tact for the most ... >> community uses some type of framework, toolkit, class library or similar ...
    (microsoft.public.development.device.drivers)
  • Re: In need of .NET advocacy
    ... >> finds a different reason for the productivity gains of .Net. ... > I am not familar with the intricacies of the framework. ... >> average developers on them, if not now, then later during maintenance. ... programmer helping programmers. ...
    (microsoft.public.dotnet.general)
  • Re: Thinking Clearly
    ... WCF = "Indigo" Windows Communication Framework ... WCF and WF will require some IDE integration to help create ... to require some special design-time support to consume. ... developers will adopt the new tools. ...
    (borland.public.delphi.non-technical)
  • Re: Silly bug
    ... Prerequisites: Experience with Delphi. ... 3042 Complete ALM for the Microsoft .NET Framework ... technology that is designed to encourage developers to create easily ...
    (borland.public.delphi.non-technical)
  • Re: HEADS-UP new statfs structure
    ... >> Or maybe the real problem is that we claim that there will ... >> then we should plan to do something to make life a little ... developers trying to contribute. ... My hardware problems were solved by replacing ...
    (freebsd-current)

Loading