FORTRAN has different aliasing rules than C. If you have subroutine foo(x,y) double x(10), y(10) FORTRAN assumes that x and y refer to distinct arrays (i.e., you can't modify an element of y with an assignment to an element of x). If you have void foo(double x[10], double y[10]) C assumes that x and y can overlap (i.e., modifying an element of x can change an element of y).
Language differences such as this one allow FORTRAN compilers to do a better job. With the introduction of the restrict keyword in C99, C compilers have a chance to match FORTRAN performance.
My previous employer, Aspen Technology, Inc., markets some programs written in C++ using the concepts of object-oriented programming. They also market some programs that are largely written in FORTRAN. The C++ and FORTRAN programs are used by real engineers to solve real engineering problems.
Many engineering programs use a combination of languages. For example, C++ is used for the high level programming and FORTRAN for low level the numeric kernels. Of course, you can write low level numeric kernels in C++ because it supports both OO and procedural programming. Often FORTRAN is used because
the code has already been written and tested
FORTRAN compilers can be optimized better due to simpler loops and different aliasing rules (note C may improve with the introduction of the restrict keyword in the C ISO 99 standard).
numerical methods gurus are more comfortable with FORTRAN
C++ is still not considered as portable as C or F77
I believe the problem here is a society where organizations are held responsible for things that are really the responsibility of individuals.
I work for an organization that monitors everything all the time. I think lots of companies scan attachments in email for viruses.
If I were working for your company, I would like to see a policy that provide a guarantee of due process. Here are the things that I think would be good:
monitoring requires a form stating the reasons for monitoring and two signatures: one from upper level management and one from a system administrator
ongoing monitoring must be reapproved every week (perhaps adding signatures to the existing form)
the monitoring forms are published internally to all employees on a regular basis
FORTRAN has different aliasing rules than C. If you
have
subroutine foo(x,y)
double x(10), y(10)
FORTRAN assumes that x and y refer to distinct arrays (i.e., you can't modify an element of y with an assignment to an element of x).
If you have
void foo(double x[10], double y[10])
C assumes that x and y can overlap (i.e., modifying an element of x can change an element of y).
Language differences such as this one allow FORTRAN compilers to do a better job. With the introduction of the restrict keyword in C99, C compilers have a chance to match FORTRAN performance.
Many engineering programs use a combination of languages. For example, C++ is used for the high level programming and FORTRAN for low level the numeric kernels. Of course, you can write low level numeric kernels in C++ because it supports both OO and procedural programming. Often FORTRAN is used because
My present employer, the Center for Applied Scientific Computing, has Overture and SAMRAI written in C++.
I like dmalloc for memory debugging. It even found a memory bug for a program that purify choked on. It doesn't have a GUI.
I work for an organization that monitors everything all the time. I think lots of companies scan attachments in email for viruses.
If I were working for your company, I would like to see a policy that provide a guarantee of due process. Here are the things that I think would be good: