From: Joe Zitzelberger on
I've recently found myself tasked with teaching a few dozen IBM
mainframe COBOL programmers the concepts of object oriented programming.
No specific language syntax, just the concepts. These lucky few dinos
will find themselves mixing their COBOL back-ends with standard Java
apps, J2EE apps, C# apps, or Ruby apps.

My specific goal is not to teach any language specific thing (though I
might use Java for the examples and kill the J2SE, J2EE and C# syntax
with a single invocation of the stone.throw() method). My purpose is to
teach the simple "what is an object", "what is inheritance", "what is an
interface", "what is encapsulation", et al, so that they have the proper
frame of mind to accept the language specific training that will be
offered.

I was hoping that some of you that have COBOL experience AND Object
Oriented experience might share your thoughts on what was helpful in the
learning process. Of course, that includes what was not helpful as
well. We often learn more from our mistakes than our successes.

For example: I've ruled out the traditional "shape" example to explain
polymorphism -- you know, the one where you have a "shape" base class
with a virtual "draw()" method -- and a "square", "triangle" and
"circle" subclass. I ruled it out because some practicing COBOL
programmers (for decades even) have never put a graphic onto a screen,
only text.

(So my simple example went from "shapes" to the "animal" class with the
speak() method -- you know the dog subclass says "bark" and the pig
subclass says "oink" and the sheep subclass says "baa means no".)

But I would really appreciate hearing about your experiences going from
COBOL to any OO style of programming. What were your pitfalls, what was
helpful, etc.

One thing I would really love is if you have good textbook
recommendations. If "The Idiots Guide to OO for Cobol Dummies" was the
best thing since sliced bread, please let me know, I might go buy a few
cases and make the author a slightly happier person.

Thanks in advance to all who respond. Either via newsgroup or to
zberger at knology.net. I really appreciate your thoughts.

Regards,

Joe Zitzelberger
From: Rene_Surop on
Read Cobol books with referenced to MF Compiler (especially
NetExpress) from Arranga & Coyle. Nice OOCobol concept.

Object Oriented COBOL by Arranga & Coyle. Search through Google and
this is what I found;
http://books.google.com.ph/books?hl=en&id=posN1cl6XFUC&dq=Arranga+%26+Coyle&printsec=frontcover&source=web&ots=akHzyDCa6q&sig=y_FNjbyA4w0FA0-lf-vUbewa_Rc#PPR15,M1

From: razor on
Hi Joe

A couple of years ago I did a Masters Degree. One of the modules was
Java Programming. The tutor used the concept of monsters. We had to
model teh concept of using up bullets and taking hits (ie health
level). All very interesting, but.....

Even though I passed with 90% I was still left shaking my head. I
still couldn't combine this new knowledge with my day job which
involves Customers, Products, Orders, Invoices, etc, etc. I would
readily buy a book that enabled me to re-learn Java but though real-
world concepts that I was familiar with.

I would not like to have to model the monsters, bullets and health
using COBOL either. Its just not anything I would use.

Ruddy
From: Robert on
On Fri, 11 Apr 2008 01:02:32 -0400, Joe Zitzelberger <zberger(a)knology.net> wrote:

>But I would really appreciate hearing about your experiences going from
>COBOL to any OO style of programming. What were your pitfalls, what was
>helpful, etc.

One pitfall is they will find ways to turn OO design back into Cobol concepts. It will
happen during maintenance, after designers and developers have moved on. Suppose one
method requires a logic change. Instead of doing it the OO way, they'll copy and paste the
logic into their client program, just to change a few lines. Before you know it, there
will be ten slightly different versions of the method.

They will say a change to the base method would have required re-testing every application
that used it. This way requires testing only one. And an overload is inefficient.

If the object is a structure that will be stored in a database row, they'll replicate
fields into other structures stored in other tables. Their rationale will be efficiency
and simplification. No one will question how redundant unsynchrnized data makes the system
simpler.
From: William M. Klein on
Joe,
although it is medium old, I would suggest looking at/for:

"Object Orientation for Cobol Programming"

by Ray Obin. See:
http://www.bookfinder4u.com/IsbnSearch.aspx?isbn=1569280053&mode=direct

I couldn't find where to buy new copies, but you might want to check with Micro
Focus to see if they have "old" copies for sale.

This book uses "traditional" COBOL thinking to explain OO concepts.


--
Bill Klein
wmklein <at> ix.netcom.com
"Joe Zitzelberger" <zberger(a)knology.net> wrote in message
news:zberger-C6D5FC.01023211042008(a)ispnews.usenetserver.com...
> I've recently found myself tasked with teaching a few dozen IBM
> mainframe COBOL programmers the concepts of object oriented programming.
> No specific language syntax, just the concepts. These lucky few dinos
> will find themselves mixing their COBOL back-ends with standard Java
> apps, J2EE apps, C# apps, or Ruby apps.
>
> My specific goal is not to teach any language specific thing (though I
> might use Java for the examples and kill the J2SE, J2EE and C# syntax
> with a single invocation of the stone.throw() method). My purpose is to
> teach the simple "what is an object", "what is inheritance", "what is an
> interface", "what is encapsulation", et al, so that they have the proper
> frame of mind to accept the language specific training that will be
> offered.
>
> I was hoping that some of you that have COBOL experience AND Object
> Oriented experience might share your thoughts on what was helpful in the
> learning process. Of course, that includes what was not helpful as
> well. We often learn more from our mistakes than our successes.
>
> For example: I've ruled out the traditional "shape" example to explain
> polymorphism -- you know, the one where you have a "shape" base class
> with a virtual "draw()" method -- and a "square", "triangle" and
> "circle" subclass. I ruled it out because some practicing COBOL
> programmers (for decades even) have never put a graphic onto a screen,
> only text.
>
> (So my simple example went from "shapes" to the "animal" class with the
> speak() method -- you know the dog subclass says "bark" and the pig
> subclass says "oink" and the sheep subclass says "baa means no".)
>
> But I would really appreciate hearing about your experiences going from
> COBOL to any OO style of programming. What were your pitfalls, what was
> helpful, etc.
>
> One thing I would really love is if you have good textbook
> recommendations. If "The Idiots Guide to OO for Cobol Dummies" was the
> best thing since sliced bread, please let me know, I might go buy a few
> cases and make the author a slightly happier person.
>
> Thanks in advance to all who respond. Either via newsgroup or to
> zberger at knology.net. I really appreciate your thoughts.
>
> Regards,
>
> Joe Zitzelberger