JiscMail Logo
Email discussion lists for the UK Education and Research communities

Help for COMP-FORTRAN-90 Archives


COMP-FORTRAN-90 Archives

COMP-FORTRAN-90 Archives


COMP-FORTRAN-90@JISCMAIL.AC.UK


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

COMP-FORTRAN-90 Home

COMP-FORTRAN-90 Home

COMP-FORTRAN-90  1999

COMP-FORTRAN-90 1999

Options

Subscribe or Unsubscribe

Subscribe or Unsubscribe

Log In

Log In

Get Password

Get Password

Subject:

Re: What is OO?

From:

[log in to unmask]

Reply-To:

[log in to unmask]

Date:

Wed, 18 Aug 1999 13:07:18 +0100

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (85 lines)



I am interested in aspects of OO programming for technical applications.

Technical equipment consists of several basic subsystems. In programming terms,
those subsystems have data structures and methods. Object oriented modeling is
data-oriented, in addition to procedure- oriented (calculation methods). In
classic programming style, the calculation method is central and the
surroundings are adapted (input/ output) to make the calculation work. The
advantage is, that this method is really straightforward and easy to comprehend.
The problem with it is that a different calculation method for the same
equipment will require extensive rewriting of the program, because the data
structure is adapted to a certain calculation method.

The theory is, that by adapting the data structure to equipment components, it
can be described in less variant terms that relate to real world entities. All
similarities in methods and data structures should be completely factored out.
This benefits both maintainability and flexibility. Technical equipment will
always consist of real and virtual components such as for example construction
elements or energy balances. Those will never change and they form a better
basis for a program. The essence is to decompose the equipment into a small
number of fundamental and universal components (objects).

This does however not really require an object oriented language. Such a
language may offer suitable constructs that facilitate implementation, at the
price of a more complex language. Inheritance and polymorphism can be used
adequately and elegantly in situations like graphics or user interfaces. The
application of OO programming techniques to user interfaces, operating systems,
matrix algebra, complex numbers and graphics are relatively easy to understand
and is well-documented. An excellent article which is I think well known is of
Decyk, Norton and Szymansky: "Introduction to OO concepts using fortran 90". It
explains several OO constructs in fortran 90 in a physical context.

For technical calculations, derived data types are useful to group data of an
object together. Modules are also a useful concept of fortran 90. I find it
difficult to see applications for inheritance (a top-down approach) in technical
applications other than some sort of trivial and unnecessary classification.
Polymorphism may require introduction of differences between calls of alternate
methods which look artificial instead of elegant. Technical equipment can be
described rather as an aggregation of a large number of simple, well understood
subsystems. I do not see any advantages of a container class over the classical
calling tree of subroutines because the aggregations vary too much. Am I missing
something? The actual calculation algorithms will not change much, if at all,
compared to non OO. They could be wrapped if necessary. These views might be
disputable, but may also illustrate some difficulties in the application of OO
methods in technical and physical problems.

An object oriented language does not help with the fundamental physical,
mathematical and logical analysis of the problem at hand. These analyses require
a sharp mind and sufficient insight in all involved areas to organize all the
interdisciplinary fields into data structures, methods and program logic. This
is in my opinion the real bottleneck in designing computer programs that work
and it is very difficult and it takes a long time to do.

OO languages generally are (much) more complex than those that are not OO. They
provide a number of relatively new structuring methods. If the application is
not properly understood, the result using an OO language is probably worse than
without. If the problem is however understood and factored properly, the claimed
advantages of reusability can come to bear. The added structuring methods can
express a better overview and thus could allow tackling tougher problems.
However, many of these can also be achieved without use of an OO language.

It is possible that for the often much more complicated technical and physical
applications, problem analysis lags behind the possibilities of OO programming
languages. It could also be, that inheritance and polymorphism are principally
unsuited for technical problems because those do not fit these concepts very
well. That would be worse. These considerations are of course important for the
development of a computer language for technical calculations. Has anybody ideas
about this? For the time being a pragmatic approach seems most fruitful and one
could use only those aspects of OO, that really contribute to a better program
structure and use the simplest language that does the job.


Michael Janeschitz-Kriegl
ABB Lummus Heat Transfer, Oostduinlaan 75, 2596JJ Den Haag, The Netherlands

e-mail: [log in to unmask]

My views are not necessarily those of ABB LHT




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Top of Message | Previous Page | Permalink

JiscMail Tools


RSS Feeds and Sharing


Advanced Options


Archives

December 2023
February 2023
November 2022
September 2022
February 2022
January 2022
June 2021
November 2020
September 2020
June 2020
May 2020
April 2020
December 2019
October 2019
September 2019
March 2019
February 2019
January 2019
November 2018
October 2018
September 2018
August 2018
July 2018
May 2018
April 2018
March 2018
February 2018
January 2018
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
December 2015
November 2015
October 2015
September 2015
August 2015
June 2015
April 2015
March 2015
January 2015
December 2014
November 2014
October 2014
August 2014
July 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
July 2013
June 2013
May 2013
April 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
August 2010
July 2010
June 2010
March 2010
February 2010
January 2010
December 2009
October 2009
August 2009
July 2009
June 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
January 2007
2006
2005
2004
2003
2002
2001
2000
1999
1998
1997


JiscMail is a Jisc service.

View our service policies at https://www.jiscmail.ac.uk/policyandsecurity/ and Jisc's privacy policy at https://www.jisc.ac.uk/website/privacy-notice

For help and support help@jisc.ac.uk

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager