I may get some flak here but am interested in opinions.
The context is Commercial Programming which usually involves Transaction Processing and usually money.
Object Oriented Programming involves terms like:
Polymorphism
Inheritance
Objects and Methods
Encapsulation
Polymorphism and Overloading
Members
Classes
Class Members and Instance Members
Inheritance
These are just obfuscating terms.
Programs execute serially and the programmer should think in these terms and not in the above abstract terms.
The better thing is Object Oriented Design and I could write a book about this.
Object Oriented Design involves terms like:
File and field naming conventions
3rd form normalised files
Reusable components
Copy Modules
Backend or Black Box programs that are called by many front ends
Common business logic is captured by Black Box programs or common routines Standard program structures. I can name two that provide 90% of all commercial programming
Discrete components.
This is just food for thought
I may get some flak here but am interested in opinions.
The context is Commercial Programming which usually involves Transaction Processing and usually money.
Object Oriented Programming involves terms like:
Polymorphism
Inheritance
Objects and Methods
Encapsulation
Polymorphism and Overloading
Members
Classes
Class Members and Instance Members
Inheritance
These are just obfuscating terms.
Programs execute serially and the programmer should think in these terms and not in the above abstract terms.
The better thing is Object Oriented Design and I could write a book about this.
Object Oriented Design involves terms like:
File and field naming conventions
3rd form normalised files
Reusable components
Copy Modules
Backend or Black Box programs that are called by many front ends
Common business logic is captured by Black Box programs or common routines Standard program structures. I can name two that provide 90% of all commercial programming
Discrete components.
This is just food for thought
Cobol Greg
I may get some flak here but am interested in opinions.Re OO OBFUSCATION
The context is Commercial Programming which usually involves Transaction Processing and usually money.
Object Oriented Programming involves terms like:
Polymorphism
Inheritance
Objects and Methods
Encapsulation
Polymorphism and Overloading
Members
Classes
Class Members and Instance Members
Inheritance
These are just obfuscating terms.
Programs execute serially and the programmer should think in these terms and not in the above abstract terms.
The better thing is Object Oriented Design and I could write a book about this.
Object Oriented Design involves terms like:
File and field naming conventions
3rd form normalised files
Reusable components
Copy Modules
Backend or Black Box programs that are called by many front ends
Common business logic is captured by Black Box programs or common routines Standard program structures. I can name two that provide 90% of all commercial programming
Discrete components.
This is just food for thought
Cobol Greg
I may get some flak here but am interested in opinions.That is like claiming that the French only speak their own language to obfuscate what they are saying (actually that might be true!).
The context is Commercial Programming which usually involves Transaction Processing and usually money.
Object Oriented Programming involves terms like:
Polymorphism
Inheritance
Objects and Methods
Encapsulation
Polymorphism and Overloading
Members
Classes
Class Members and Instance Members
Inheritance
These are just obfuscating terms.
Programs execute serially and the programmer should think in these terms and not in the above abstract terms.
The better thing is Object Oriented Design and I could write a book about this.I agree with Pete that it may be 'design' but that doesn't mean it is OO-design.
Object Oriented Design involves terms like:
File and field naming conventions
3rd form normalised files
Reusable components
Copy Modules
Backend or Black Box programs that are called by many front ends
Common business logic is captured by Black Box programs or common routines Standard program structures. I can name two that provide 90% of all commercial programming
Discrete components.
This is just food for thought--- Synchronet 3.20a-Linux NewsLink 1.114
Cobol Greg
Newer is not always better and complicated doesn't simplify.
On Sunday, 14 October 2018 16:49:12 UTC+10, Greg Wallace wrote:
I may get some flak here but am interested in opinions.
The context is Commercial Programming which usually involves Transaction Processing and usually money.
Object Oriented Programming involves terms like:
Polymorphism
Inheritance
Objects and Methods
Encapsulation
Polymorphism and Overloading
Members
Classes
Class Members and Instance Members
Inheritance
These are just obfuscating terms.
Programs execute serially and the programmer should think in these terms and not in the above abstract terms.
The better thing is Object Oriented Design and I could write a book about this.
Object Oriented Design involves terms like:
File and field naming conventions
3rd form normalised files
Reusable components
Copy Modules
Backend or Black Box programs that are called by many front ends
Common business logic is captured by Black Box programs or common routines
Standard program structures. I can name two that provide 90% of all commercial programming
Discrete components.
This is just food for thought
Cobol Greg
Re OO OBFUSCATION
Pete, thanks for the response and no offence taken and no offence being given. It is a discussion.
So you seem to be saying these are not REALLY important (as terms).
Object Oriented Programming involves terms like:
Polymorphism
Inheritance
Objects and Methods
Encapsulation
Polymorphism and Overloading
Members
Classes
Class Members and Instance Members
Inheritance
Does that just mean you ignore the obfuscating nature and just work with a new syntax? What is different in practical terms? What does OO Programming do for you that is special?
There are many books on the subject that try to explain these obfuscating terms. OO Programming was sold to the programming community on the basis of these new terms. It was a new Paradigm. COBOL OO was one of many that purists said was not pure OO.
Java quickly became popular because it started as OO. It also tends to start with 'Public Static Void'. How obscure is that.
Also: Why Java is not 100% object oriented language?'Primitive datatypes' might be faster than objects. With Java there is the int datatype and also an Integer class so you can have primitive int, or an Integer object which wraps an int. The object is useful because it includes methods which make it easier to use.
Java is not because it supports Primitive datatype such as int, byte, long... etc, to be used, which are not objects. Contrast with a pure OOP language like Smalltalk, where there are no primitive types, and boolean, int and methods are all objects. ... No, Java is not purely object oriented language.
Is not the above just getting deeper into obfuscation?
Cobol Greg--- Synchronet 3.20a-Linux NewsLink 1.114
I may get some flak here but am interested in opinions.
The context is Commercial Programming which usually involves Transaction Processing and usually money.
Object Oriented Programming involves terms like:
Polymorphism
Inheritance
Objects and Methods
Encapsulation
Polymorphism and Overloading
Members
Classes
Class Members and Instance Members
Inheritance
These are just obfuscating terms.
Programs execute serially and the programmer should think in these terms and not in the above abstract terms.
The better thing is Object Oriented Design and I could write a book about this.
Object Oriented Design involves terms like:
File and field naming conventions
3rd form normalised files
Reusable components
Copy Modules
Backend or Black Box programs that are called by many front ends
Common business logic is captured by Black Box programs or common routines Standard program structures. I can name two that provide 90% of all commercial programming
Discrete components.
This is just food for thought
Cobol Greg
On Sunday, 14 October 2018 16:49:12 UTC+10, Greg Wallace wrote:
I may get some flak here but am interested in opinions.
(snip)
I am getting some good responses and I prefer people with a Cobol background to tell me about OO programming. I have followed Richard's link and saved it as text for closer perusal. Also absorbing responses.
I wonder if you can just use dot points as to why you prefer OO programming.
OO-design is little understood. If you search Google you get more obfuscation. I have used it for 30 years without giving it a name. I really need to write extensively to explain what I am talking about.
I agree with Pete that 3rd Form Normalised is not unique to OO-design but it one of those great concepts. I suspect SQL databases enforce it.
I'll ask another question. Do you go with OO Programming because it is prevalent and acceptable or because it is the better way?
Cobol is not acceptable these days due to misconceptions, misunderstandings and bad marketing from the main providers.
Cobol Greg
On 10/14/2018 7:10 PM, Greg Wallace wrote:Of course. C++ was originally implemented as 'C-with-classes' by a pre-processor called cfront. cfront output normal C code which could be compiled by a standard C compiler. A programmer could have written the C code directly if he had a mind to. The C compiler outputs machine code. An assembler programmer could have written that directly too, who needs compilers ?
On Sunday, 14 October 2018 16:49:12 UTC+10, Greg Wallace wrote:
I may get some flak here but am interested in opinions.
(snip)
I am getting some good responses and I prefer people with a Cobol background to tell me about OO programming. I have followed Richard's link and saved it as text for closer perusal. Also absorbing responses.
I wonder if you can just use dot points as to why you prefer OO programming.
OO-design is little understood. If you search Google you get more obfuscation. I have used it for 30 years without giving it a name. I really need to write extensively to explain what I am talking about.
I don't really understand OO-programming, or OO-design, but about 20
years ago I had an interesting conversation with a very smart programmer
who told me that OO-design was more important than using an
OO-programming language. His position was that a good OO-design could
be implemented in a non-OO-programming language.
On Monday, October 15, 2018 at 4:58:36 PM UTC+13, Arnold Trembley wrote:cfront output was hard to read and probably impossible to write. Some
On 10/14/2018 7:10 PM, Greg Wallace wrote:
On Sunday, 14 October 2018 16:49:12 UTC+10, Greg Wallace wrote:
I may get some flak here but am interested in opinions.
(snip)
I am getting some good responses and I prefer people with a Cobol background to tell me about OO programming. I have followed Richard's link and saved it as text for closer perusal. Also absorbing responses.
I wonder if you can just use dot points as to why you prefer OO programming.
OO-design is little understood. If you search Google you get more obfuscation. I have used it for 30 years without giving it a name. I really need to write extensively to explain what I am talking about.
I don't really understand OO-programming, or OO-design, but about 20
years ago I had an interesting conversation with a very smart programmer
who told me that OO-design was more important than using an
OO-programming language. His position was that a good OO-design could
be implemented in a non-OO-programming language.
Of course. C++ was originally implemented as 'C-with-classes' by a pre-processor called cfront. cfront output normal C code which could be compiled by a standard C compiler. A programmer could have written the C code directly if he had a mind to. The C compiler outputs machine code. An assembler programmer could have written that directly too, who needs compilers ?
On 10/14/2018 7:10 PM, Greg Wallace wrote:
On Sunday, 14 October 2018 16:49:12 UTC+10, Greg Wallace wrote:
I may get some flak here but am interested in opinions.
(snip)
I am getting some good responses and I prefer people with a Cobol
background to tell me about OO programming. I have followed Richard's
link and saved it as text for closer perusal. Also absorbing responses.
I wonder if you can just use dot points as to why you prefer OO
programming.
OO-design is little understood. If you search Google you get more
obfuscation. I have used it for 30 years without giving it a name. I
really need to write extensively to explain what I am talking about.
I don't really understand OO-programming, or OO-design, but about 20
years ago I had an interesting conversation with a very smart programmer
who told me that OO-design was more important than using an
OO-programming language. His position was that a good OO-design could
be implemented in a non-OO-programming language.
I agree with Pete that 3rd Form Normalised is not unique to OO-design
but it one of those great concepts. I suspect SQL databases enforce it.
I'll ask another question. Do you go with OO Programming because it is
prevalent and acceptable or because it is the better way?
I think OO-Programming is a little bit of a fad, but then Structured Programming was also a fad and it is still useful in its domain.
My guess is that many programming problems can be solved either
procedurally or in an Object-Oriented manner.
Here's an old (1987) critique of OO-Programming that might have some entertainment value:
http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1989/8912/8912g/8912g.htm
https://tinyurl.com/y7mmhp5p
It seems to me that OO-programming is most prevalent and most useful in Graphical User Interface (GUI) programming, where the program must
respond to events like mouse clicks and key-presses and must know the context where the mouse is located or the key is pressed.
Many years ago I took a class in programming in Microsoft Visual BASIC.
For me the frustrating part was not being able to see the entire program
as a single source code file (what I was used to). But that wasn't
really needed for GUI programming. Essentially the program was "drawn"
by connecting objects (combo-box, drop down list, etc.) on a design
screen, and the BASIC code was little subroutines that responded to a
mouse click or key press in a certain context. That's the event-driven nature.
I've done event-driven programming in assembler, POST-ing and WAIT-ing
for events handling network messages. It can be done in a procedural language, but it's a different kind of programming. It seemed
conceptually harder to me, especially when waiting for any one event to
be posted from a list of multiple events. That's essentially what
happens when a GUI program responds to a user input.
Naturally I'm more comfortable with procedural programming than OO,
based on my previous COBOL experience. Even a pseudo-conversational
CICS COBOL program with screens has to respond to user interface events,
but it is still primarily procedural.
Cobol is not acceptable these days due to misconceptions,
misunderstandings and bad marketing from the main providers.
Cobol Greg
COBOL has never been popular in academia.
It's designed to solve
business financial accounting problems and it's a very good tool for
that, although not the only tool. But financial accounting is not at
all interesting or sexy in Computer Science departments.
Just my opinion, and I'm sure I have a lot to learn.
Kind regards,
On Sun, 14 Oct 2018 23:15:30 -0700 (PDT), Richard
<riplin@azonic.co.nz> wrote:
On Monday, October 15, 2018 at 4:58:36 PM UTC+13, Arnold Trembley wrote:
On 10/14/2018 7:10 PM, Greg Wallace wrote:
On Sunday, 14 October 2018 16:49:12 UTC+10, Greg Wallace wrote:
I may get some flak here but am interested in opinions.
(snip)
I am getting some good responses and I prefer people with a Cobol background to tell me about OO programming. I have followed Richard's link and saved it as text for closer perusal. Also absorbing responses.
I wonder if you can just use dot points as to why you prefer OO programming.
OO-design is little understood. If you search Google you get more obfuscation. I have used it for 30 years without giving it a name. I really need to write extensively to explain what I am talking about.
I don't really understand OO-programming, or OO-design, but about 20
years ago I had an interesting conversation with a very smart programmer >>> who told me that OO-design was more important than using an
OO-programming language. His position was that a good OO-design could
be implemented in a non-OO-programming language.
Of course. C++ was originally implemented as 'C-with-classes' by a pre-processor called cfront. cfront output normal C code which could be compiled by a standard C compiler. A programmer could have written the C code directly if he had a mind to. The C compiler outputs machine code. An assembler programmer could have written that directly too, who needs compilers ?
cfront output was hard to read and probably impossible to write. Some
samples are here:
http://www.cpptips.com/c++_c_output
On 10/14/2018 11:58 PM, Arnold Trembley wrote:
On 10/14/2018 7:10 PM, Greg Wallace wrote:
On Sunday, 14 October 2018 16:49:12 UTC+10, Greg Wallace wrote:
I may get some flak here but am interested in opinions.
(snip)
I am getting some good responses and I prefer people with a Cobol
background to tell me about OO programming. I have followed Richard's
link and saved it as text for closer perusal. Also absorbing responses.
I wonder if you can just use dot points as to why you prefer OO
programming.
OO-design is little understood. If you search Google you get more
obfuscation. I have used it for 30 years without giving it a name. I
really need to write extensively to explain what I am talking about.
I don't really understand OO-programming, or OO-design, but about 20
years ago I had an interesting conversation with a very smart programmer who told me that OO-design was more important than using an
OO-programming language. His position was that a good OO-design could
be implemented in a non-OO-programming language.
Of course it can. This should be obvious from the fact that many
of the original OO languages, C++, OOPascal and even Ada, started
out being translated to C and then being compiled with a standard
C compiler.
I agree with Pete that 3rd Form Normalised is not unique to OO-design
but it one of those great concepts. I suspect SQL databases enforce it.
I'll ask another question. Do you go with OO Programming because it is
prevalent and acceptable or because it is the better way?
I think OO-Programming is a little bit of a fad, but then Structured Programming was also a fad and it is still useful in its domain.
OO is much more of a fad but it was pushed by the academics who hadThat sounds more like dogma than a rational argument.
a captive audience who could easily be forced to accept it (or fail
their needed courses!!)
That sounds more like dogma than a rational argument.My guess is that many programming problems can be solved either procedurally or in an Object-Oriented manner.
All programming problems can be solved with either OO or procedural solutions. The problem is the modern notion that only OO is
acceptable.
Here's an old (1987) critique of OO-Programming that might have some entertainment value:
http://collaboration.cmc.ec.gc.ca/science/rpn/biblio/ddj/Website/articles/DDJ/1989/8912/8912g/8912g.htm
https://tinyurl.com/y7mmhp5p
It seems to me that OO-programming is most prevalent and most useful in Graphical User Interface (GUI) programming, where the program must
respond to events like mouse clicks and key-presses and must know the context where the mouse is located or the key is pressed.
The most known GUI systems in the business pre-date OO by a veryThe first acknowledged OO programming language was Simula-67 and that number is the year. Even the Alto was in the next decade.
long time.
Many years ago I took a class in programming in Microsoft Visual BASIC. For me the frustrating part was not being able to see the entire program as a single source code file (what I was used to). But that wasn't really needed for GUI programming. Essentially the program was "drawn" by connecting objects (combo-box, drop down list, etc.) on a design screen, and the BASIC code was little subroutines that responded to a mouse click or key press in a certain context. That's the event-driven nature.
This "let's hide everything from the programmer" is what leads to the obfuscation claims. Might work when things go smoothly but when thingsOO doesn't hide everything, in fact it often supports reflection which exposes the interface. You could assert that 'modular programming' "hides everything" compared to having _all_ the code in one huge source file (such as some old COBOL programs) but that is the point: you create modules, or classes, that work correctly and assemble these to solve the problem rather than rewriting everything each time.
start to go south, watch out.
I've done event-driven programming in assembler, POST-ing and WAIT-ing
for events handling network messages. It can be done in a procedural language, but it's a different kind of programming. It seemed conceptually harder to me, especially when waiting for any one event to
be posted from a list of multiple events. That's essentially what happens when a GUI program responds to a user input.
Naturally I'm more comfortable with procedural programming than OO,
based on my previous COBOL experience. Even a pseudo-conversational
CICS COBOL program with screens has to respond to user interface events, but it is still primarily procedural.
And the answer you get for that is that CICS is anachronistic and
shouldn't even still be in existence.
Schools teach what industry wants. Industry wanted better productivity. COBOL, or more particularly, COBOL programmers when measured by LOC to solve a problem, were well behind 'modern' languages.
Cobol is not acceptable these days due to misconceptions,
misunderstandings and bad marketing from the main providers.
Cobol Greg
COBOL has never been popular in academia.
Sorry, but it was. At one time all schools taught COBOL, if not
for mainstream CS courses definitely for CIS courses. It was the
advent of OOP and the refusal of the COBOL world to drink the Kool-
Aid that led to the academic demise of COBOL. (I know, I was there
at the time and watched it happen while fighting it all the way
down.)
It's designed to solve
business financial accounting problems and it's a very good tool for
that, although not the only tool. But financial accounting is not at
all interesting or sexy in Computer Science departments.
The reasons were much more pedantic than that. It was the COBOL
worlds refusal to accept that academia knows all that led to this
attack.
--- Synchronet 3.20a-Linux NewsLink 1.114Just my opinion, and I'm sure I have a lot to learn.
Kind regards,
The only good news is that every day I learn of more and more
segments of the business that still rely on COBOL and know it
is not going away any time soon. And I have watched a lot of
languages fade in to oblivion without the direct attacks that
COBOL has withstood during this time. I expect COBOL to still
be going strong when they finally plant me in the ground.
bill
On Sun, 14 Oct 2018 23:15:30 -0700 (PDT), RichardI wasn't suggesting that a programmer would have written code that matched the cfront output, but he could have achieved the same effect in a more readable way, though with much more effort, and probably many macros.
<riplin@azonic.co.nz> wrote:
On Monday, October 15, 2018 at 4:58:36 PM UTC+13, Arnold Trembley wrote:
On 10/14/2018 7:10 PM, Greg Wallace wrote:
On Sunday, 14 October 2018 16:49:12 UTC+10, Greg Wallace wrote:
I may get some flak here but am interested in opinions.
(snip)
I am getting some good responses and I prefer people with a Cobol background to tell me about OO programming. I have followed Richard's link and saved it as text for closer perusal. Also absorbing responses.
I wonder if you can just use dot points as to why you prefer OO programming.
OO-design is little understood. If you search Google you get more obfuscation. I have used it for 30 years without giving it a name. I really need to write extensively to explain what I am talking about.
I don't really understand OO-programming, or OO-design, but about 20
years ago I had an interesting conversation with a very smart programmer >> who told me that OO-design was more important than using an
OO-programming language. His position was that a good OO-design could
be implemented in a non-OO-programming language.
Of course. C++ was originally implemented as 'C-with-classes' by a pre-processor called cfront. cfront output normal C code which could be compiled by a standard C compiler. A programmer could have written the C code directly if he had a mind to. The C compiler outputs machine code. An assembler programmer could have written that directly too, who needs compilers ?
cfront output was hard to read and probably impossible to write. Some
samples are here:
http://www.cpptips.com/c++_c_output
Louis--- Synchronet 3.20a-Linux NewsLink 1.114
Sysop: | DaiTengu |
---|---|
Location: | Appleton, WI |
Users: | 1,064 |
Nodes: | 10 (0 / 10) |
Uptime: | 148:00:28 |
Calls: | 13,691 |
Calls today: | 1 |
Files: | 186,936 |
D/L today: |
33 files (6,120K bytes) |
Messages: | 2,410,927 |