Comments on Guy Steele's comments on
Future Computer Language
Bob Armstrong Mar 10, 12:07 pm
Date: 10 Mar 2005 12:07:12 -0800
Local: Thurs, Mar 10 2005 12:07 pm
Subject: DDJ : Guy Steele : "APL looks rather strange ... "
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 :
Some quotes from the interview with him in the April issue
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,"
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 .