0 (Zero) is a new APL (array processing language). I gave a 40-minute talk
on 0 at APL97 on Monday August 18th. (It was very disorganized. Sorry.)
0 is VAPORWARE until I release an alpha version of 0 this month on the Net!
I will also put 0 on the new APL 97 CD-ROM that the APL97 organizers are
putting out later this year.
Here is a marketing-oriented overview:
0 (aka Zero) is a simple modern practical programming system. 0 is simple
(few rules) yet powerful (rich set of built-in functions), and both familiar
(like Java & C++) and new.
0 is suitable for all levels of programming from very-high-level AI systems,
to main-stream business applications, to low-level C bit-twiddling .
0 for $0 including the source code is available on the net at
http://www.snip.net/~alan for FREE.
Practical : If you like Java, C++, C, Visual Basic, LISP or APL, you will
love 0 !
Easy : Included are "0 in 1-Hour Quick-Start" tutorial, "0 in 2-Days" book,
"0 in 1-Page" reference
Fast! : Compiles to Zero-Byte-Codes (0BC) that are small, portable, and
quick.
Simple : The language has few rules, few restrictions, great power, and no
exceptions.
Safe : Programming errors cannot corrupt the system.
Familiar : Translators between 0 and Java, C++, C, Visual Basic, LISP and
APL are provided.
Portable : Available on Windows (95, NT, CE, 3.11), DOS, Macintosh
Flexible : Procedural (ala C & Pascal), Object-Oriented (ala Java &
Smalltalk), Functional (ala APL & LISP) styles supported.
Expandable : Full source-code for the 0 byte-code compiler (0BCC) written in
0 is provided.
I can't send you a copy of 0 (Zero) prior to the posting, so don't ask me.
I'll say no.
I would like to start a discussion on APL-like 3rd generation languages
(like J, A+, and K) here.
What do you want your APL-NeXT to be like?
Sincerely,
Alan Graham
215-345-4269
: 0 (Zero) is a new APL (array processing language)....
: What do you want your APL-NeXT to be like?
Does the world _really need yet another array processing language? Is not one
possible reason classical APL has not made very much progress due to the
multiplicity of dialects (including J)?
Sometimes I have the feeling that the trouble with APL (especially in
the narrow sense of the term) is that there are too many language
implementors around, with too little to do.
(Please, no flames in return!)
--
Murray Eisenberg Internet: mur...@math.umass.edu
Mathematics & Statistics Dept. Voice: 413-545-2859 (W)
University of Massachusetts 413-549-1020 (H)
Amherst, MA 01003 Fax: 413-545-1801
.. is this a comp.lang.apl posting? Or perhaps it belongs in another
newsgroup...
Yes Alan, we are all waiting for the sequel to that most interesting talk.
--
|\/| Randy A MacDonald | Bring me... BLUE PAGES!!!!
|\\| ra...@godin.on.ca |
BSc(Math) UNBF '83 | APL: If you can say it, it's done.
Natural Born APL'er | *** GLi Info: in...@godin.on.ca ***
| Also http://www.godin.on.ca/randy
------------------------------------------------<-NTP>----{ gnat }-
In article <340f7...@oit.umass.edu>, mur...@math.umass.edu (Murray Eisenberg) wrote:
>Alan Graham (@snip.net) wrote:
>: 0 (Zero) is a new APL (array processing language)....
>: What do you want your APL-NeXT to be like?
>Does the world _really need yet another array processing language?
Does the world _really need another expedition to climb Mt. Everest? Does the
world _really need yet another home page with pet pictures? Does the world
_really need []IO = 0? Not in the strictest sense of the term, but they all
seem to be flourishing, and to have most interesting side effects.
>Is not one possible reason classical APL has not made very much progress
>due to the multiplicity of dialects (including J)?
Application of this theory should have spelled the death of COBOL, Pascal,
C and C++, but reality seems to differ.
>Sometimes I have the feeling that the trouble with APL (especially in
>the narrow sense of the term) is that there are too many language
>implementors around, with too little to do.
Who are these idle interpreter implementors? I have a pile of wishes
for them, as I'm sure lots o' folk do. Oh, I know, they implemented
Mathematica! |-)
> >Does the world _really need yet another array processing language?
Hi Alan -- Loooonnnnggg time no see!
Having just finished a standard F90 compiler, I can categorically say
that the
world needs a lot more nice clean coherent array processing languages:
'cause
F90 ain't it.
> Does the world _really need another expedition to climb Mt. Everest?
Array processing is not that difficult.
> Does the world _really need yet another home page with pet pictures?
Or that easy.
> Does the world _really need []IO = 0?
More than ever!
> >Is not one possible reason classical APL has not made very much progress
> >due to the multiplicity of dialects (including J)?
We thought that was a problem and so X3J10 was formed. But...
Our standards committee let us down (and I am implicating myself in
this).
By rejecting the impulse to DESIGN we codified stuff that just barely
needed
it and (although the standards forum provided a great fermenting pot for
the
second generation language implementers) we cut ourselves off from the
future
of the language and of computing.
Look at reality -- APL timesharing services were the internet of the 70s
and 80s,
we had _the_ interpreted language with the widest possible platform
compatibility,
and yet we didn't lead the way to what exists now. There is a Web,
everyone in the
whole damn world is on it, and Java is the heir apparent. We made
version 1 compatible squiggles. John Gilmore even told us (APL 81?)
loud and clear that
we were all walking a dead end & we refused to see it.
> >Sometimes I have the feeling that the trouble with APL (especially in
> >the narrow sense of the term) is that there are too many language
> >implementors around, with too little to do.
This is not far off... We just never organized ourselves the way the
Linux
community did.
> Who are these idle interpreter implementors? I have a pile of wishes
> for them, as I'm sure lots o' folk do. Oh, I know, they implemented
> Mathematica! |-)
I was watching that gestation, and APL was at most a minor inspiration.
The
only contribution I can say was directly from APL was Mathematica 1.0's
memory
management approach. Lisp-CLOS was probably an equal contributor... but
the
language of Mathematica was purely Wolfram's crazy design whims.
Alan,
I've been trying to get marketting types to buy the idea of a
language called
Zero for years now... If you want to do one with that perhaps combines
SETL APL
and Smalltalk and uses Just-in-time compilation to get some speed,
I'd be a willing partner.
Your friend from bygone days,
Greg Jaxon
Thanks. I welcome your comments and questions. Funny, I've lost interest in
flaming.
The world does not need any more APL systems.
I agree with Ian Sharp and his brilliant APL 97 talk.
I state it here in my words and maybe extend it.
1. APL started out as an extremely brilliant, very powerful pocket knife
with a few blades.
2. APL2, Sharp APL, APL*PLUS added many very useful and practical blades.
3. J started from #1, simplified some things, and added VERY many new blades
(including the Fork!).
4. 0 is a 0-bladed knife, yet it can cut anything. 0 is a magic number. It
also has infinity blades.
0 is a new APL. 0 is NOT APL.
0 is a new C. 0 is simpler than C.
0 is a new C++. Call it C^2.
0 is a new Java. Java is C++ done right. 0 is Java Jolt!
0 is a new LISP. 0 is LISP with some syntax and a well thought-out set of
primitives.
0 is a new Smalltalk. Unfortunately, Smalltalk turned out to be BigBadTalk.
0 is a new Self. Self is Smalltalk done right. 0 is Self with arrays.
With 0 you can code with or without APL characters.
With 0 you can code in any style, functional, array, object-oriented,
prolog-like, assembler, C, etc.
With 0 you can (but probably shouldn't) extend the language/compiler into
anything easily.
All of the above statements are true. Strange. VERY strange.
0 is written in 0.
0 is very simple (<1000 lines of 0).
0 is very powerful. (Of course I THINK it's powerful. I INVENTED IT!)
0 is very fast. (The alpha version runs a little slower than J on the PC ---
J is FAST!)
The trouble (and brilliance) with APL (and J) is that they are "Mathematics
made Concrete".
Ken is a mathematician.
I want "A Practical Programming Language".
I am a programmer.
Curious? I will prove these strange, possibly exagerated, claims with
running code.
Alan
Murray Eisenberg wrote in article <340f7...@oit.umass.edu>...
>Alan Graham (@snip.net) wrote:
>
>: 0 (Zero) is a new APL (array processing language)....
>: What do you want your APL-NeXT to be like?
>
>Does the world _really need yet another array processing language? Is not
one
>possible reason classical APL has not made very much progress due to the
>multiplicity of dialects (including J)?
>
>Sometimes I have the feeling that the trouble with APL (especially in
>the narrow sense of the term) is that there are too many language
>implementors around, with too little to do.
>
Re: 0 origin (the only good QuadIO is a dead QuadIO)
Richard Smith (Adrian Smith's almost 14-year-old son) calls an index an
"offset".
You can usually depend on kids to think clearly.
If you want the ultimate in confused oatmeal-think ... talk to an adult.
(Greg: I consider you a very large 14 year old!)
Richard and Adrian have begun to write 0 in 0. I taught them 0 one morning
after APL 97 in Toronto.
Richard is writing the 0 compiler and his Dad (Adrian) is helping (I hope!).
Greg you are welcome to join in. It's fun. It's tiny. It's simple but ...
It is hard to understand how this tiny piece of code (<1000 lines) is more
powerful than, say, APL2.
You will understand after you write it a few times.
My role: I am the King of 0 ! (Prince of Fools?)
What I mean by that is that 0 has exactly 1 designer --- me.
If anyone wants to design and implement their own language, be my guest.
Please don't call it 0 (or Zero, or 0byFred, or Zilch, or Zed ... make up
your own darn name!)
Designing, implementing, and selling a computer language can be a fun way to
earn money.
Of course, you'd make more money as a manager of your local K-Mart.
I do computer consulting ($50-$150 / hour) to make a living.
Regards,
Alan Graham
215-345-4269
Becky & Greg Jaxon wrote in article <3410EB...@soltec.net>...
>Randy MacDonald wrote:
>>
>> In article <340f7...@oit.umass.edu>, mur...@math.umass.edu (Murray
Eisenberg) wrote:
>> >Alan Graham (@snip.net) wrote:
>>
>> >: 0 (Zero) is a new APL (array processing language)....
>
>> >Does the world _really need yet another array processing language?
>
>Hi Alan -- Loooonnnnggg time no see!
>
>Having just finished a standard F90 compiler, I can categorically say
>that the
>world needs a lot more nice clean coherent array processing languages:
>'cause
>F90 ain't it.
>
>> Does the world _really need another expedition to climb Mt. Everest?
>Array processing is not that difficult.
>
>> Does the world _really need yet another home page with pet pictures?
>Or that easy.
>
>> Does the world _really need []IO = 0?
>More than ever!
>
>> >Is not one possible reason classical APL has not made very much progress
>> >due to the multiplicity of dialects (including J)?
>We thought that was a problem and so X3J10 was formed. But...
>Our standards committee let us down (and I am implicating myself in
>this).
>By rejecting the impulse to DESIGN we codified stuff that just barely
>needed
>it and (although the standards forum provided a great fermenting pot for
>the
>second generation language implementers) we cut ourselves off from the
>future
>of the language and of computing.
>
>Look at reality -- APL timesharing services were the internet of the 70s
>and 80s,
>we had _the_ interpreted language with the widest possible platform
>compatibility,
>and yet we didn't lead the way to what exists now. There is a Web,
>everyone in the
>whole damn world is on it, and Java is the heir apparent. We made
>version 1 compatible squiggles. John Gilmore even told us (APL 81?)
>loud and clear that
>we were all walking a dead end & we refused to see it.
>
>> >Sometimes I have the feeling that the trouble with APL (especially in
>> >the narrow sense of the term) is that there are too many language
>> >implementors around, with too little to do.
What does 0 code look like? Will a definition be made public?
Is there really a working interpreter and a compiler in alpha version?
Will 0 be as concise as J or APL? What form will its (OOP) objects take?
Also, I read that a talk was given at the last international APL conference.
Can I find a report in a Quote Quad then?
Alan Baljeu
In article <3410EB...@soltec.net>, Becky & Greg Jaxon <ja...@soltec.net>
wrote:
>Randy MacDonald wrote:
>> Does the world _really need another expedition to climb Mt. Everest?
>Array processing is not that difficult.
I wasn't suggesting there was a difficulty, it's just that Everest expeditions
have become so commonplace that there's now a real litter problem, thus
the parallel with Eisenberg bemoaning the introduction of yet another
APL. Will 0 really break new ground or will it just be more litter? A valid
point, but I'm still hoping 0 appears before Riven does.
>> Does the world _really need yet another home page with pet pictures?
>Or that easy.
>> Does the world _really need []IO = 0?
>More than ever!
Oh yes, A[0], the great BASIC space waster.
>> >Is not one possible reason classical APL has not made very much progress
>> >due to the multiplicity of dialects (including J)?
>We thought that was a problem and so X3J10 was formed. But...
>Our standards committee let us down (and I am implicating myself in this).
>By rejecting the impulse to DESIGN
Like most standards committees should... A well-designed non-existent
language is of no use to anyone, not only for the fact that it has no real
world credentials.
>we codified stuff that just barely needed
>it and (although the standards forum provided a great fermenting pot for the
>second generation language implementers) we cut ourselves off from the future
>of the language and of computing.
A problem that can be easily solved by opening the floor for "APL 2001"
this being what standards bodies do when the standards seem out of date.
(BTW, was there clandestine standards activity at APL97, anyone?)
>Look at reality -- APL timesharing services were the internet of the 70s and 80s,
(I overheard this at the post APL97 party, and almost spilled my Guinness.)
Yes and the VIC-20 was the first small business computer. Did the services
interoperate? Perhaps the term Global WAN is a better one, except for the
absence of local (i.e. client machine) storage.
>we had _the_ interpreted language with the widest possible platform compatibility,
>and yet we didn't lead the way to what exists now.
Perhaps because the APL of that time didn't want to give up its good thing,
and like that knife-wielding rabbit, Ian Sharp, who didn't think the PC was a
real market, left it for BASIC, Pascal and C.
>There is a Web, everyone in the whole damn world is on it, and Java is the
>heir apparent.
Java is the Kim Polese of languages. It's cute and takes nice pictures, but
is it really a sea change? I can do my server backend work in J so I have no
reason to switch for now.
> We made version 1 compatible squiggles. John Gilmore even told us (APL 81?)
>loud and clear that we were all walking a dead end & we refused to see it.
Having spent all of my time in APL, well at least on a paying level, much
since that time, I'd say that, like Twain, rumours of APL's demise have
been exaggerated.
>> >Sometimes I have the feeling that the trouble with APL (especially in
>> >the narrow sense of the term) is that there are too many language
>> >implementors around, with too little to do.
>This is not far off... We just never organized ourselves the way the Linux
>community did.
Is there a way to modularize a programming language the way Linux is?
This, although doubtful, would be very interesting to see.
>> Who are these idle interpreter implementors? I have a pile of wishes
>> for them, as I'm sure lots o' folk do. Oh, I know, they implemented
>> Mathematica! |-)
>I was watching that gestation, and APL was at most a minor inspiration.
Because the elegance of APL is certainly absent.
>The only contribution I can say was directly from APL was Mathematica 1.0's
>memory management approach.
Not even a language property, some specific attribute of a specific
implementation. A most interesting use of the word "direct"
>Lisp-CLOS was probably an equal contributor... but
>the language of Mathematica was purely Wolfram's crazy design whims.
Mathematica = APL + lazy evaluation + a big set of toys + the worlds most
awkward session manager (if Eisenberg's fussing with "notebooks" at APL97 is
typical).
Lazy evaluation is pretty much like executable strings, and J is proof that
you can include a big set of toys. Now if we could get someone to write
an 800 page APL/J book....
>Alan,
> I've been trying to get marketting types to buy the idea of a
>language called Zero for years now... If you want to do one with that perhaps
>combines SETL APL and Smalltalk and uses Just-in-time compilation to get
>some speed,
Speed, of course, something that only those interested in the top quark and
the like. In a world of 300MHz (300!, did you hear that, 300!) desktop boxes,
it's always quaint to hear this concern. A job that requires one decision
and 10 minutes calculation beats out one that is 10 decisions and 1 minute
calculation every time, so if I'm slowed down because my otherwise
interpretable code won't compile, I'll pitch it.
> I'd be a willing partner.
I like how J never had to please the "marketing" types, nor thought that such
a step was necessary, because otherwise, it might never had existed.
It belongs to com.lang.apl since I met Alan in Toronto during APL97, since
we are discussing about the release date of 0 and since I'm declaring myself
as a volounteer for testing on-the-road...
--
WildHeart'97 (s...@insight.dk)
Proud Member of the KTF
Homepage: http://www.insight.dk/stf
Randy MacDonald wrote in article <5uoh1a$o...@news.on>...
>In article <5uoct1$5f0c$1...@news.inet.tele.dk>, "Stefano Lanzavecchia"
<s...@insight.dk> wrote:
>>Hi Graham... Remember me?
>>
>>I'm very curious, as you know. So, please, don't let me wait for too long
>>:-)
>
>.. is this a comp.lang.apl posting? Or perhaps it belongs in another
>newsgroup...
>
>Yes Alan, we are all waiting for the sequel to that most interesting talk.
>
I agree with you completely!
I love the J stuff, but I am only good enough in J to wish I was better.
My real interest is to have a simple yet powerful ...
- C-like language without pointers and array power and plently of the power
J has
- Java-like language with APL symbols (and/or ASCII) and classless objects
(like Self)
- Smalltalk-like without all of the zillion built-in badly-designed classes
and backward syntax
- LISP-like without the Lots of Idiotic Stupid Parentheses and the stupid
CAR and CDR junk
- APL-like without ... (After 25 years of enduring the mistakes, I can't
even think about it!)
Three examples:
_/ APL-style example (unfortunately Newsreaders generally don't support
Unicode APL characters)
x : 3 3 4 2 3 4 7
3 3 4 2 3 4 7
u : ((x _i x)=(_i#x)/x
3 4 2 7
_/ C-style example
)in C
)in C/stdio
main : {
printf("Hello World\n") ;
return(0) ;
}.
_/ LISP-style
f : +/
+/
g : { _x _y} .
{
f 3 4 5
12
3 4 5 g (+/)
12
Remember when Java got started? (Hint: recently!)
I want to have a powerful and simple language to write powerful and simple
applications.
And remember a compiler is just a computer program that takes text and
produces bits.
College CS sophomores write them all the time.
Regards,
Alan
Bjvrn Gosi Helgason wrote in article
<19970905.0...@sol.sun.csd.unb.ca>...
>From: "Alan Graham" <@snip.net>
>
>> I would like to start a discussion on APL-like 3rd generation languages
>> (like J, A+, and K) here.
>
>I think you are a few years too late to start this now.
>
>If you want to re-start it then you are most welcome.
>It is always good to begin again (from zero I imagine).
>
>> What do you want your APL-NeXT to be like?
>
>I would love to see the APL functionality in a complete
>development environment where you integrate Windows, Files,
>Databases, Dictionaries, Debuggers, Helps and what-ever-you-need
>for creating complete systems.
>
>There are already available some systems that do some of this
>quite well but most of them lack the capabilities of a good APL.
>Most of what I have seen is based on either Basic or C++.
>
>Most of the groundwork is in many of the new APLs but I have
>not seen any APL yet having anything close to Basic or C++
>helps and examples.
>
>I can well imagine what a difference it would make to be able
>to have the power of APL in some tightly integrated system like
>InTouch or something like that.
>
>/Gosi
Alan Graham wrote:
> I will also put 0 on the new APL 97 CD-ROM that the APL97 organizers are
> putting out later this year.
Is a reissue of the APL97 CD-ROM planned?
(BTW, I thought that Randy MacDonald did a super job on the one distributed at
the conference.)
When the above attitude permeates the design of a large real-time
software project, as often as not it results in the program being
cancelled.
You must be thinking of managers and other folks who use computers
merely for e-mail and such. Even today, I find myself having to
call a compiled subroutine for something as mundane as precise
orbital propagation of even ONE space object.
Jack Rudd
This would be news to me, although there is movement to mirror the conference-
specific material at the torontoapl or other websites. The Waterloo, Weigang
NIAL, J, CoSy and other material is, of course, available elsewhere on the
web. I apologize to Alan if there was a misunderstanding.
>(BTW, I thought that Randy MacDonald did a super job on the one distributed at
>the conference.)
Thank you.
Alan
Jim Russell wrote in article <341483E6...@earthlink.net>...
>
>
>Alan Graham wrote:
>
>> I will also put 0 on the new APL 97 CD-ROM that the APL97 organizers are
>> putting out later this year.
>
>Is a reissue of the APL97 CD-ROM planned?
>