BorlandTalk.com Forum Index BorlandTalk.com
Borland discussion newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Evangelizing
Goto page 1, 2, 3, 4, 5, 6, 7, 8  Next
 
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> Delphi OO design
View previous topic :: View next topic  
Author Message
Corinna
Guest





PostPosted: Fri Sep 09, 2005 3:31 pm    Post subject: Evangelizing Reply with quote



How do you evangelize OOP without coming across as "this is the *right way*
to write software", and so forth? I know that our software can be
dramatically improved, resulting in quicker modifications and bug fixing,
but I don't want to alienate people who might be comfortable with their
tried-and-true (but impossible for a new hire to understand) ways of doing
things.

-Corinna


Back to top
Scott Roberts
Guest





PostPosted: Fri Sep 09, 2005 7:01 pm    Post subject: Re: Evangelizing Reply with quote




"Corinna" <schultz (AT) harlingen (DOT) isd.tenet.edu> wrote

Quote:
How do you evangelize OOP without coming across as "this is the *right
way*
to write software", and so forth? I know that our software can be
dramatically improved, resulting in quicker modifications and bug fixing,
but I don't want to alienate people who might be comfortable with their
tried-and-true (but impossible for a new hire to understand) ways of doing
things.

In my experience, people either get it or they don't. If they get it, they
want to do *everything* OOP (I'm guilty of that). If they don't get it, they
just see it as overly complex and unnecessary. I've not been able to change
anyone's mind.

Maybe point out that all "new" languages are moving toward OOP. Point out
that .Net is all OOP. Java is based in OOP. J2EE is all about OOP. There
must be something to it. Let them know that if they ever change jobs it'd be
good to be able to put OOP on the resume (and mean it).



Back to top
Wayne Niddery [TeamB]
Guest





PostPosted: Sat Sep 10, 2005 3:07 pm    Post subject: Re: Evangelizing Reply with quote



Corinna wrote:
Quote:
How do you evangelize OOP without coming across as "this is the
*right way* to write software",

But it is! <g>

--
Wayne Niddery - Logic Fundamentals, Inc. (www.logicfundamentals.com)
RADBooks: http://www.logicfundamentals.com/RADBooks.html
In a tornado, even turkeys can fly. - unknown



Back to top
matsonusaNOSPAM@yahoo.com
Guest





PostPosted: Sat Sep 10, 2005 5:27 pm    Post subject: Re: Evangelizing Reply with quote

On Fri, 9 Sep 2005 10:31:14 -0500, "Corinna"
<schultz (AT) harlingen (DOT) isd.tenet.edu> wrote:

Quote:
How do you evangelize OOP without coming across as "this is the *right way*
to write software", and so forth? I know that our software can be
dramatically improved, resulting in quicker modifications and bug fixing,
but I don't want to alienate people who might be comfortable with their
tried-and-true (but impossible for a new hire to understand) ways of doing
things.

-Corinna

Developers that want to continue in this career for very long MUST

learn OOP. As pointed out by Scott, the NNT (next new thing) will
most always be OO-based. Old farts like me began in Assembler or
Cobol/Fortran. Many of us were "forced" to learn "C" as we traveled
from one site to another, a painful experience but vital to learning
form-based apps. I never quite learned my way around MS's "C++" (1)
because of the Mars-like docs, and (2) MS's tendency to alienate it's
developer base with towering fees.

I can't count the number of employer-given instruction I sat through
on OOD, and while understanding the concepts perfectly, making the
leap to applying it through a language lost me. Stumbling upon the
Delphi2 RAD in the mid-90's was a refreshing cool breeze; Object
Pascal was non-complex (for a "C" guy) and layman documentation was
plentiful (and growing). FINALLY - I "got it".

But beyond Inheritance and Polymorphism, there's not much to say about
the bennies of OO languages, especially for those old-timers that
travel with their own tried-and-proven libs. One thing OOD does do is
improve one's code layout practices. I don't use it for everything,
but I do think it's elegant and helps me solve problems faster than
not using OOD. It's also FORCED me to plan ahead Smile generally a good
thing, in spite of my barking.

JJ

Back to top
Riki Wiki
Guest





PostPosted: Sun Sep 11, 2005 6:09 am    Post subject: Re: Evangelizing Reply with quote

Hoi Matt

Good post, but the way you have posted the others in the thread will never
see you message, because you have posted to a non Borland news server.

Take a look here:
<http://tinyurl.com/8m5nw>
which links to
<http://delphi.wikicities.com/wiki/Delphi_Newsgroups>
Back to top
Peter Morris [Droopy eyes
Guest





PostPosted: Sun Sep 11, 2005 9:26 am    Post subject: Re: Evangelizing Reply with quote

Ask how they would evangelize RDBMS. Once they have finished, tell them
that OPF does all of that + this list.....

<Insert your own good points here, such as single-point changes etc>



--
Pete
====
ECO Modeler, Audio compression components, DIB graphics controls,
FastStrings
http://www.droopyeyes.com

Read or write articles on just about anything
http://www.HowToDoThings.com

My blog
http://blogs.slcdug.org/petermorris/




Back to top
Jarle Stabell
Guest





PostPosted: Sun Sep 11, 2005 4:32 pm    Post subject: Re: Evangelizing Reply with quote

Corinna wrote:
Quote:
How do you evangelize OOP without coming across as "this is the
*right way* to write software", and so forth?

Tell them the truth, that OOP is not the *right way* to write software, but
for many things, it is currently the best way. :-)

Cheers,
Jarle



Back to top
Corinna
Guest





PostPosted: Sun Sep 11, 2005 4:36 pm    Post subject: Re: Evangelizing Reply with quote


"Peter Morris [Droopy eyes software]" <pete (AT) NO_droopyeyes_SPAM (DOT) com> wrote in
message news:4323f802$1 (AT) newsgroups (DOT) borland.com...
Quote:
Ask how they would evangelize RDBMS. Once they have finished, tell them
that OPF does all of that + this list.....

Insert your own good points here, such as single-point changes etc



But there's such a steep learning curve...
I'm happy copying and pasting...
I understand the code better this way...


Maybe the best way is to let them see you doing OOP in your code, and
eventually, they'll be impressed at its elegance, and wonder why you can rip
out changes so quickly, and why *your* code never seems to have many bugs...

P.S. We just recently jumped on the DB server bandwagon... Moving from
Paradox flat file-system based tables to Advantage database server. My job
these past few months was to do the conversion. So I've seen the "skeletons"
that live in our code... I *know* you guys are going to say, "but it
shouldn't have taken a couple of months!"

-Corinna



Back to top
Peter Morris [Droopy eyes
Guest





PostPosted: Mon Sep 12, 2005 4:41 pm    Post subject: Re: Evangelizing Reply with quote

Quote:
But there's such a steep learning curve...
I'm happy copying and pasting...
I understand the code better this way...

I'm sorry, but anybody who does not understand OOP these days needs training
or firing. Everyone (especially Delphi developers) should understand how to
write classes, use polymorphism, and understand their benefits.

Designing an application using OOP just makes sense. Having those classes
persistent is just a detail.


I wonder if the copy/paste crowd at your place would rather copy/paste a
class from the VCL or subclass it?


--
Pete
====
ECO Modeler, Audio compression components, DIB graphics controls,
FastStrings
http://www.droopyeyes.com

Read or write articles on just about anything
http://www.HowToDoThings.com

My blog
http://blogs.slcdug.org/petermorris/



Back to top
Cristian Nicola
Guest





PostPosted: Mon Sep 12, 2005 5:17 pm    Post subject: Re: Evangelizing Reply with quote

For many things it is .. but there are things for which it isnt ..
Over-oop is very usual in places where speed is not an issue but the
difference between a record/pointer/api and a class/object can be huge when
speed is the most important factor (also when storage is an issue).

Kind regards,
Cristian Nicola

"Jarle Stabell" <jarle (AT) remove_stuff_dlogikk_spam_kills_email (DOT) com> wrote in
message news:43245bdb (AT) newsgroups (DOT) borland.com...
Quote:
Tell them the truth, that OOP is not the *right way* to write software,
but
for many things, it is currently the best way. Smile



Back to top
Joanna Carter (TeamB)
Guest





PostPosted: Mon Sep 12, 2005 5:33 pm    Post subject: Re: Evangelizing Reply with quote

"Cristian Nicola" <n_cristian (AT) hotmail (DOT) com> a écrit dans le message de news:
4325b67a$1 (AT) newsgroups (DOT) borland.com...

Quote:
For many things it is .. but there are things for which it isnt ..
Over-oop is very usual in places where speed is not an issue but the
difference between a record/pointer/api and a class/object can be huge
when
speed is the most important factor (also when storage is an issue).

As from the introduction, you really can't "over-OOP" an application.
Everything in .NET is a either a class or an interface. Yes, you have value
types but even those are related to System.Object and you can call methods
like ToString() on anything you like.

If you really need pointers and access to Win32 API, then that is still
available through unsafe code and PInvoke. So you really have the best of
both worlds in that you can invoke legacy code from well constructed OO
code.

After nearly 15 years in the industry, hearing folks saying "OO will never
catch on" and "we really don't need OO", we finally have a completely OO
framework in .NET.

Isn't it about time these Luddites realised that they are spending more time
and effort avoiding training into OO than they say they are saving not
training. I was brought into one company to design an "OO GUI" and ended up
supplying them with a class library that there were able to use to solve
three different application designs.

If you don't believe that OO can be as fast as non-OO, then give call me in
to show you how it should be done.

Joanna

--
Joanna Carter (TeamB)

Consultant Software Engineer
TeamBUG support for UK-BUG
TeamMM support for ModelMaker



Back to top
Peter Morris [Droopy eyes
Guest





PostPosted: Mon Sep 12, 2005 6:42 pm    Post subject: Re: Evangelizing Reply with quote

Quote:
If you don't believe that OO can be as fast as non-OO, then give call me
in
to show you how it should be done.

You're addressing someone who drops into ASM to tighten loops, I don't think
you can win :-)



Back to top
Jens Gruschel
Guest





PostPosted: Mon Sep 12, 2005 7:04 pm    Post subject: Re: Evangelizing Reply with quote

Quote:
If you don't believe that OO can be as fast as non-OO, then give call me in
to show you how it should be done.

While I agree to everything you said, there are exceptions, especially
graphics, sound, video etc. I see no reason not to use OOP for such
applications, but sometimes a few time critical things really require to
use records and pointers. Of course that's no excuse not to use OOP for
most parts of the application. And even low level things (with asm) can
be put into beautiful classes, ready to use in a well designed
application. Probably a good example is DirectX: you have nice
interfaces for everything, but behind the scenes (in the DirectX DLLs
and the graphic drivers) I doubt everything is OOP.

Jens

--
Jens Gruschel
http://www.pegtop.net

Back to top
Wayne Niddery [TeamB]
Guest





PostPosted: Mon Sep 12, 2005 11:17 pm    Post subject: Re: Evangelizing Reply with quote

Cristian Nicola wrote:
Quote:
Over-oop is very usual in places where speed is not an issue but the
difference between a record/pointer/api and a class/object can be
huge when speed is the most important factor (also when storage is an
issue).

*Bad* oop can certainly cause a performance issue as can any bad code. As
long as it is good oop, there cannot be "over-oop".

The act of allocating space for a class is no slower than for a record or
any other memory allocation. What you do in the constructor *can* make a
difference of course.

--
Wayne Niddery - Logic Fundamentals, Inc. (www.logicfundamentals.com)
RADBooks: http://www.logicfundamentals.com/RADBooks.html
"The two most abundant elements in the universe are hydrogen and
stupidity." - Harlan Ellison



Back to top
Cristian Nicola
Guest





PostPosted: Tue Sep 13, 2005 9:25 am    Post subject: Re: Evangelizing Reply with quote

Hi Joanna!

I was expecting to get these flames - and to be honest is a honnour to stand
correct by you. I should save this e-mail for further reference :D

The newsgroup is oodesign and the original post did not mentioned
exclusivelly .net world. And some of us may be working just in win32 world.

As about using pointers/records things i tend to organize them as would
classes be like:
TMyRecord = record
....
end;
function RecordDoSomeWork(aRec:TMyRecord):boolean;
....

So they are pretty close to a class structure.

Re OOP catchon: not only that i think OOP should catch on, but i would
advise so. We are all in the office huge fans of your articles/posts and we
tend to use design patterns as much as possible. I know the future is .Net
but i think people these days don't learn enough about programming and
computers. I think just jumping to state OOP is the solution for everything
and OOP is better than anything else is an over-statement. There will always
be a niche where OOP is not a solution (that not to mention the Lisp type of
languages that will never have OOP).

Re Speed: Not only that i don't believe OOP can be as fast as non-OOP but
i'm sure it can't be. Assume a collection that sole existance is to be read
from a storage and then send to a socket. A normal class would have 4
methods :constructor/destructor/loadfromstorage/sendtosocket. Any of these
function is going to be slower in OOP model due to extra code. If that would
have been an interface then things would have been even slower due to the
reference counting. Assume this collection is in the range of billions and
that you have to read it quite a few times then the processing difference it
can be quite large..

Now if we would talk about development time, debug time, enhancement time
then yes OOP it is in pretty much all the cases faster/better than non-oop
code, but i was merely pointing out that OOP is not the answer to
everything. People should not stop learning about pointers or lists just
because there is ECO out-there...

The nature of my job forces me most of the time to count/care the cpu cycles
(we're working with huge sets of data and even one extra cpu cycle it can
make a huge difference). As Peter said only the other week i was asking on
basm on how to install an exception handler without using try .. except :D

Just my 2p.

Cristian Nicola

"Joanna Carter (TeamB)" <joanna (AT) nospam (DOT) co.uk> wrote


Quote:
As from the introduction, you really can't "over-OOP" an application.
Everything in .NET is a either a class or an interface. Yes, you have
value
types but even those are related to System.Object and you can call methods
like ToString() on anything you like.

If you really need pointers and access to Win32 API, then that is still
available through unsafe code and PInvoke. So you really have the best of
both worlds in that you can invoke legacy code from well constructed OO
code.

After nearly 15 years in the industry, hearing folks saying "OO will never
catch on" and "we really don't need OO", we finally have a completely OO
framework in .NET.

Isn't it about time these Luddites realised that they are spending more
time
and effort avoiding training into OO than they say they are saving not
training. I was brought into one company to design an "OO GUI" and ended
up
supplying them with a class library that there were able to use to solve
three different application designs.

If you don't believe that OO can be as fast as non-OO, then give call me
in
to show you how it should be done.

Joanna

--
Joanna Carter (TeamB)

Consultant Software Engineer
TeamBUG support for UK-BUG
TeamMM support for ModelMaker





Back to top
Display posts from previous:   
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> Delphi OO design All times are GMT
Goto page 1, 2, 3, 4, 5, 6, 7, 8  Next
Page 1 of 8

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.