For Programmers: Free Programming Magazines  


Home > Archive > APL > March 2005 > DDJ : Guy Steele : "APL looks rather strange ... "









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author DDJ : Guy Steele : "APL looks rather strange ... "
Bob Armstrong

2005-03-10, 8:55 pm

2005 Dr. Dobb's Journal Excellence in Programming Award goes to
Guy Steele Jr. , A Sun Fellow & Distinguished Engineer

Steele was one of the handful of people who requested a copy of
my APL79 poster paper on paths around n-cubes :
http://cosy.com/cosylogo.htm .

Some quotes from the interview with him in the April issue
http://www.ddj.com/documents/s=9603/ddj0504b/0504b.html :

.....

GS: Performance means shortening the time for the computer to solve the
problem. Productivity means shortening the time between posing the
problem to the programmer and having the answer. It's important to make
the programmer efficient as well as the program.

DDJ: And how does one do that?

GS: We have ideas for improvements to programming languages which might
make programmers more productive by relieving them of more of the
mechanical and administrative burdens of getting a program to work.
We're looking at automated testing, more rigorous type systems, new
languages. At Sun, we're looking at the conjecture that making
programming languages closer to traditional mathematical notation can
make things easier for the scientific programmer.

DDJ: APL or Mathematica?

GS: APL looks rather strange to a working mathematician or physicist.
[ this from the co-author of Common Lisp and Scheme ]

Fortran is a little bit like math, but not a lot. Where did the
asterisk for multiplication come from? Fortran was invented on machines
intended for accounting. What if we tried very hard to make a
programming language look like mathematics and took advantage of
Unicode? We're finally getting good support for full mathematical
character sets in text editors.

We're designing a programming language called "Fortress." Kind of a
takeoff on Fortran...

DDJ:...wedded to the zeitgeist of our troubled times!

GS: Well, we did have in mind a programming language with greater
security through a stronger type system. We're trying to take some of
the security features of Java, and mathematical notation, and good
ideas already in Fortran and roll them all together.

.....

DDJ: Design flaw in Java? Tradeoff?

GS: There was a conscious design decision for object-oriented rather
than closure-oriented programming.

Interestingly, when anonymous inner classes were introduced into Java,
we had a full implementation that made them act like closures. In
particular, if you did up-level references to variables, you could
assign as well as read. We got push-back from users, "We don't want
this, we prefer an implementation in which you can only read the
up-level variables." In order to support the full-blown closure
implementation, it was necessary to do heap allocation implicitly. At
that time, the users were still a little nervous about heap allocation
and garbage collection. They felt more comfortable if places where heap
allocation took place in Java were always explicitly flagged by the new
keyword. Nowadays, heap allocation in Java is better understood and
that feature could be added easily, but there's no call for it.

I have a theory that programming languages have lifetimes. Java will
probably be around another 20 years. It's time for a new programming
language to come along.

[ APLers had no problem leaving heap management up to the
implementers right from the get-go in the `60s . Java was
stale coffee when it was brewed . ]

.....

DDJ: Does Fortress look like Java and C++?

GS: We're doing a research prototype rather than a product prototype,
so we feel free to try out a bunch of crazy ideas. Syntactically, we're
trying more to be inspired by mathematics than by Java. The object
organization is Java-inspired. Array handling is Fortran and APL
inspired. Other influences are MatLab and Mathematica. We're also
trying to add checking of dimensional units such as kilograms, meters,
and feet. We had a paper [E. Allen, D. Chase, V. Luchangco, J.W.
Maessen, G.L. Steele Jr., "Object-Oriented Units of Measurement,"
OOPSLA 2004,
http://www.pag.csail.mit.edu/readin...measurement.pdf] in
the last OOPSLA about that.


I do like the idea of labeled ( "dimensional" ) quantities like
100.00$ % 5gm , maybe someone will implement them in forth.CoSy
in some number of years , but the foundation of the CoSy
for-the-rest-of-my-life I am now creating I am positive will be
more simple , transparent , extensible , and personally productive
than the Fortress Sun Corp's High Productivity Computing
committee will produce .

They are starting a generation behind .

I invite anybody interested in where I'm heading to drop me a line
to be kept up to date on our progress .

beliavsky@aol.com

2005-03-11, 3:56 pm

Bob Armstrong wrote:

<snip>
> Fortran is a little bit like math, but not a lot. Where did the
> asterisk for multiplication come from? Fortran was invented on

machines
> intended for accounting. What if we tried very hard to make a
> programming language look like mathematics and took advantage of
> Unicode? We're finally getting good support for full mathematical
> character sets in text editors


When using arrays, Fortran 95 looks more like math than Fortran 77 and
most other procedural languages,
because one can use array operations, array sections and masks.
Computing the sum of the squares of the positive elements i1 to i2 of
array x is just

sumsq = sum(x(i1:i2)**2,x(i1:i2) > 0)

Operator overloading can be used to make Fortran look more math-like,
as demonstrated by the Matran
http://www.cs.umd.edu/~stewart/matran/Matran.html wrapper for the
LAPACK linear algebra library.

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2009 codecomments.com