S-expression is probably one of the simplest ways to represent nestable
data structures in text. I applaud the article.
--
Barry Margolin, bar...@bbnplanet.com
GTE Internetworking, Powered by BBN, Burlington, MA
*** DON'T SEND TECHNICAL QUESTIONS DIRECTLY TO ME, post them to newsgroups.
Don't bother cc'ing followups to me.
With Sun/Netscape hiring up all the ex-lispers, maybe I can
stop trying to make Lisp better, Java will soon be good enough?
BTW, I tried to get Franz to create "Lava" about 3-4 years ago.
Seems most people laughed at the name. Having Netscape/Sun use it
perhaps makes it not so funny anymore?
My language is now called NiCLOS(tm), the name is funny,
but is the language?
-Kelly Murray k...@niclos.com
> The Subject line is a bit of an overstatement.
See the smiley in the body of the posting.
> BTW, I tried to get Franz to create "Lava" about 3-4 years ago.
> Seems most people laughed at the name. Having Netscape/Sun use it
> perhaps makes it not so funny anymore?
> My language is now called NiCLOS(tm), the name is funny,
> but is the language?
So what's Lisp-like and what's Java-like in your language? Does your
langage compile down to Java VM code? Do you have a uniform way to
use Java classes via CLOS? I can't see how this is even remotely
possible, considering that:
1) Java has no multiple inheritance
2) Java's class definitions are lexical with respect to methods, if
you consider a class file as a lexical entity.
3) Java has no multimethods, and dispatch depends only on the class of
a single object.
I am surely no expert, but I work closely with Java and Lisp
development, and I really don't see how this would work. Where can
one read about this?
dave
I was surprised he didn't mentioned XML, since this is largely what XML
is all about. (And, yes, they are also writing programming languages
based on XML. See XSL <http://www.w3.org/Style/XSL/> and contrast with
the Scheme-based DSSSL for doing the same task.)
XML is basically S-expressions with some bells and whistles
(as McCarthy pointed out at the Lisp User's conference).
It has a more verbose but easier checkable syntax.
As such, any proposal to use S-expressions *for Java* as Detlefs
proposes is both DOA and wrong-headed. People should be using
XML instead, because more tools will be able to handle it, and
because it will be more familiar to more people.
--
--Per Bothner
Cygnus Solutions bot...@cygnus.com http://www.cygnus.com/~bothner
maybe these smileys destroy communication? maybe they detract from the
effort of being good at sarcasm, jokes, irony, or plain old lunacy.
at one point in my life, I became acquainted with the habit of thinking
that lying was OK if you held two fingers crossed behind your back. I
couldn't figure out why this was important to people. if I lied, it was
to protect something much more important than whoever I lied to, not to
play stupid tricks on people. I could play much better tricks on people
by making them believe something that would hurt them without my actually
telling them anything for which they could directly fault me. it has
since been a puzzling experience to see people fool _themselves_ so
thoroughly that if you told them the truth, they think you're lying.
"I have never had a sexual relationship with that women, Miss Lewinsky."
did you see his hands? could he have crossed his fingers or made some
other secret gesture by which he meant "the laugh's on you, buster"? and
then it got out of hand because "I was only kidding" didn't work with the
kid-me-not Kenneth Starr. maybe all the Democrats were in on it and the
moralistic Republicans will be laughed out of politics? that'd be cool.
meanwhile, there's not a single smiley on Kenneth Starr's pornographic
report, either, not even the smirk you'd expect from someone digging up
so much personal dirt about others. I think he forgot to include it:
"There is Substantial and Credible Information that President Clinton
Committed Acts that May Constitute Grounds for an Impeachment :>"
#:Erik
I think I assumed that the smiley in that posting was just expressing
happiness, like a true smile. I didn't realize it was a "tongue in cheek"
smiley.
Great. A Sun Java researcher who apparently likes LISP but doesn't know
about Kawa[1] (the Scheme for the JVM). Not only does it have
S-expressions but even compiles them to bytecodes including the
useful-seperate-from-scheme gnu.bytecode package so you can make classes
from whatever you want.
Now if they were only researching the JVM change that is really needed:
continuations.
If the JVM specification had been based on continuations instead of the
implementation-minded threads stuff they would not only have avoided
having to deprecate the whole damn thing as they have, but would have a
machine model that could/would be amenable to formal analysis (as it is
no one tries - they simply ignore the threading stuff).
jim
[1] <http://www.cygnus.com/~bothner/kawa.html>
-------------------------------------------------------------
James P. White Netscape DevEdge Champion for IFC
Could someone please remind me of what exactly we gain by abandoning
Lisp and moving to Java?
Here is all I am able to come up with:
1) Unprecedented momentum of hype
2) Infix notation to avoid frightening dogs and small children
2.5) Reduced wear on parentheses keys on keyboards
3) Some slightly challenging concepts like macros are made to vanish
4) Some slightly suspicious hand-waving claims that useful integrity
checks can be performed on portable bytecode before running it
5) An opportunity for yet another generation of enthusiasts to reinvent
compilers, operating systems, utilities, interactive development
environments, and special purpose hardware for the nth time in ever slower
and bulkier forms
6) An opportunity to slip some sizable loads of ignorance of prior art past
snoozing patent examiners, and thus lay down potentially lucrative legal
minefields
Brad Yearwood b...@crl.com
Cotati, CA
> Could someone please remind me of what exactly we gain by abandoning
> Lisp and moving to Java?
Well...
* You can download a full, uncrippled Java implementation + IDE for
any major platform absolutely free, and in the case of the JDK even
get the source code. AFAIK you can only do this with the Unix
platform for Common Lisp.
* Swing, unlike CLIM, doesn't cost $4000-$7000 to even try out on Unix.
* True keyboard and mouse control (you can distinguish between a
keyboard down-press and release, so you can give your text fields
Emacs-like incremental searching and bindings or do sophisticated
word completions or any other cool thing you could think up. And of
course, completely standard and cross-platform.
* On Linux (and probably other platforms), you can choose if you want
the threads in a single process (Allegro CL style), or if you want
OS-level threads. It doesn't get any better than that (as if one
standard, cross-platform interface to threads wasn't convenient
enough).
* Graphics, low-level networking, applets in browsers, sound,
look-and-feel support, the kitchen sink.... It actually seems to be
a larger language than Common Lisp, and it gives you all the access
to the primitive hardware, windowing-system and networking
functionality that you really want but in a way that will work on
Unix, Windows, Mac or whatever without even needing to recompile for
that platform. ANSI Common Lisp gives you little more primitive
hardware control and system access than ANSI C (not including CLIM,
but IMO that doesn't really count).
It's funny, my Java instructor at the college was talking about how it
took them 6-8 years or so to start offering C++ classes, but only 3
months to offer Java classes. He said a big factor in this was that
you can download everything for free to all the computers in the
lab. Lisp has yet to be offered, and probably will never be (I think
they teach a little AutoLisp though in the CAD classes).
I think every ounce of hype Java has recieved is deserved. As a
language itself, I think it's better than C, C++, Eiffel, ADA,
etc... and just about any other non logical/functional programming
language out there. But none of the logical/functional languages can
compete with it's level of standardization and the platform
independent system control it gives you. And Common Lisp sure can't
compete with its real cost in most situations (all things considered).
It would be nice if Common Lisp could at least standardise some of the
networking, threads and i/o functionality you get in Java, and if it
had a standard, accessible and reasonably priced GUI toolkit.
In a fantasy world, you could even have Common Lisp compile to Java
byte-code and run wherever the Java Runtime Environment runs and do
all the system-level stuff that Java does (yes, I've heard of Kawa
scheme).
Christopher
> It would be nice if Common Lisp could at least standardise some of the
> networking, threads and i/o functionality you get in Java, and if it
> had a standard, accessible and reasonably priced GUI toolkit.
I'd settle for DEFSYSTEM, MULTIPROCESSING and FFI.
>
> In a fantasy world, you could even have Common Lisp compile to Java
> byte-code and run wherever the Java Runtime Environment runs and do
> all the system-level stuff that Java does (yes, I've heard of Kawa
> scheme).
I am no expert, but I'd almost think that compiling Common Lisp could
be easier than Scheme. The lack of CALL/CC might be a facilitating
factor. Anybody care to comment?
Cheers
--
Marco Antoniotti ===========================================
PARADES, Via San Pantaleo 66, I-00186 Rome, ITALY
tel. +39 - (0)6 - 68 10 03 17, fax. +39 - (0)6 - 68 80 79 26
http://www.parades.rm.cnr.it
www.franz.com offers Allegro CL Lite to any stray comer. includes IDE.
(but use LOAD-COMPILED instead of COMPILE-FILE and LOAD.)
| * Swing, unlike CLIM, doesn't cost $4000-$7000 to even try out on Unix.
none of the CLIM providers charge you money for trying it out before you
decide to buy it or not.
| I think every ounce of hype Java has recieved is deserved.
???
| As a language itself, I think it's better than C, C++, Eiffel, ADA,
"Ada" is named after Ada Lovelace. it's a proper name, not an acronym.
(I helped start the "Ada in Norway" user group in 1985. it's my "other"
language, and my company logo still carries symbols from the Ada world.
that people write ADA, like they write LISP, is a pet peeve.)
| And Common Lisp sure can't compete with its real cost in most situations
| (all things considered).
I don't think you are a competent judge of that, _especially_ not the
parenthetical remark.
| It would be nice if Common Lisp could at least standardise some of the
| networking, threads and i/o functionality you get in Java, and if it had
| a standard, accessible and reasonably priced GUI toolkit.
I'm still confused as to this standardization issue. yes, it would be
nice if it were standardized, but why can't you use something today?
Common Lisp is a standard _because_ it was used and gaining solid support
for a number of really complex things. if people who do not understand
how these things work refuse to use something _until_ it's standard, it
will likely never become a standard, and if, against all odds, it should,
you guys will complain and not use it, anyway.
some of us prefer languages that don't change a lot, that aren't in the
middle of the fight between good and evil, and on which long-term
investments may actually be made with solid profit expectations. Common
Lisp has a problem in that only mature people use it _after_ they have
become disgusted with other languages and their hype.
#:Erik
> b...@crl3.crl.com (Bradley Yearwood) writes:
>
>> Could someone please remind me of what exactly we gain by abandoning
>> Lisp and moving to Java?
>
> Well...
>
> * You can download a full, uncrippled Java implementation + IDE for
> any major platform absolutely free, and in the case of the JDK even
> get the source code. AFAIK you can only do this with the Unix
> platform for Common Lisp.
There are downloadable versions for Mac (Digitool trial version, and Roger
Corman's $50 shareware), PC (both Franz and Harlequin), and Linux (Franz
full version). Digitool will give you a 30-day evaluation key for the
asking. Franz's Linux version is for noncommercial use.
OTOH, if you're developing a commercial application, Lisp vendors require
that you pay for a supported version of the product (and sometimes, even for
a distribution license).
If you're building a product that can't reasonably be done except in Lisp --
and there _are_ products in that space -- then the extra cost is
justifiable. Face it, you're going to pay one way or another. Hidden costs
that I've seen with "low-cost and popular" IDEs are: lost time to market,
extra programmers, tracking down vendor bugs, being blocked 3 to 9 months
for a release that fixes a problem in the compiler, etc.
>
> * Swing, unlike CLIM, doesn't cost $4000-$7000 to even try out on Unix.
Have the Lisp vendors denied your request for an evaluation copy? Have you
even asked?
>
> * True keyboard and mouse control (you can distinguish between a
> keyboard down-press and release, so you can give your text fields
> Emacs-like incremental searching and bindings or do sophisticated
> word completions or any other cool thing you could think up. And of
> course, completely standard and cross-platform.
Of course, completely standard and cross-platform... Hmm, didn't Microsoft
make an argument that it had to break from the Pure Java fold because Sun
didn't want to support 3-button mice?
>
> * On Linux (and probably other platforms), you can choose if you want
> the threads in a single process (Allegro CL style), or if you want
> OS-level threads. It doesn't get any better than that (as if one
> standard, cross-platform interface to threads wasn't convenient
> enough).
So, aside from having a choice, what are the benefits? Can you do OS-native
threads in a platform-independent manner?
>
> * Graphics, low-level networking, applets in browsers, sound,
> look-and-feel support, the kitchen sink.... It actually seems to be
> a larger language than Common Lisp, and it gives you all the access
> to the primitive hardware, windowing-system and networking
> functionality that you really want but in a way that will work on
> Unix, Windows, Mac or whatever without even needing to recompile for
> that platform. ANSI Common Lisp gives you little more primitive
> hardware control and system access than ANSI C (not including CLIM,
> but IMO that doesn't really count).
Wow. You've been reading the Sun PR hype, haven't you? Ever try to run any
of this stuff on a Mac? Or even a PC? Look, Sun does a nice job with Java
on the Sun platforms. But their portability claims are _vastly_ oversold.
I tried their Java-based browser (HotJava?) on a Sun workstation and was
very pleased. Later the same day, I tried it on my Mac; I threw it away
after counting some two dozen cosmetic, usability, and functional flaws in
five minutes. (Note: Given all of the hype about Java's portability, you
might ask why Sun has different HotJava versions for different platforms.)
You might be surprised to know that Common Lisp implementations also give
you access to low-level OS and hardware functionality via their FFI. Not
portable, but then neither are Mac OS APIs portable to Win32.
And of course Java doesn't have to be recompiled because it's transferred in
a platform-neutral format: byte code. Did you know that some Lisp systems
(CLISP, CMUCL) have the same capability? Do you understand that Common Lisp
source code is _highly_ portable because it doesn't encode issues of
machine-level data representation? (Yes, Java gets this half-right by
specifying fixed representations for data types. I wonder what Sun will do
when 128-bit machines hit the market. How many times has the Java
"standard" already changed?)
>
> It's funny, my Java instructor at the college was talking about how it
> took them 6-8 years or so to start offering C++ classes, but only 3
> months to offer Java classes. He said a big factor in this was that
> you can download everything for free to all the computers in the
> lab. Lisp has yet to be offered, and probably will never be (I think
> they teach a little AutoLisp though in the CAD classes).
Ah, yes. The popularity argument. A real classic. (Not now, Ethel -- I'm
busy. Just hit Ctrl-Alt-Delete, maybe it will work better next time.)
>
> I think every ounce of hype Java has recieved is deserved. As a
> language itself, I think it's better than C, C++, Eiffel, ADA,
> etc... and just about any other non logical/functional programming
> language out there. But none of the logical/functional languages can
> compete with it's level of standardization and the platform
> independent system control it gives you. And Common Lisp sure can't
> compete with its real cost in most situations (all things considered).
Every ounce of hype Java has received is still just hype. I have observed
early adopters foundering and failing with Sun's
not-quite-ready-for-primetime "free" products, and with not-free derivatives
thereof. Since these folks were actually trying to bring something to
market, there's a real cost involved. (Three or four programmers for six
months is going to cost a company about $200K to $250K in the US. That's a
lot of time and money to throw away on the basis of favorable hype,
particularly when the actual outcome doesn't meet expectations. In this
context, the expenditure of a couple tens of thousands of dollars for mature
tools and training isn't such a big deal.)
>
> It would be nice if Common Lisp could at least standardise some of the
> networking, threads and i/o functionality you get in Java, and if it
> had a standard, accessible and reasonably priced GUI toolkit.
Yeah, standards would be nice. OTOH, I can already get all of this
functionality in a platform-dependent manner and write (if needed) thin
abstraction layers around it. Frankly, I don't mind "rolling my own" while
waiting for a standard to emerge based upon actual experience. One of Sun's
own wrote a "dissenting opinion" on the perils of premature
standardization...
>
> In a fantasy world, you could even have Common Lisp compile to Java
> byte-code and run wherever the Java Runtime Environment runs and do
> all the system-level stuff that Java does (yes, I've heard of Kawa
> scheme).
And _why_ would I want to run interpreted or JIT-compiled bytecode when I
can run native code? (Remember, mobile code is handled quite nicely in Lisp
by transporting and compiling the source.)
>
> Christopher
--
David B. Lamkins <http://www.teleport.com/~dlamkins/>
Wintel is the Yugo of the computer world: cheap to buy, costly to keep.
<
< In article <cxjpv7f...@engc.bu.edu>, David Bakhash <ca...@bu.edu> wrote:
< >Kelly Murray <k...@IntelliMarket.Com> writes:
< >
< >> BTW, I tried to get Franz to create "Lava" about 3-4 years ago.
< >> Seems most people laughed at the name. Having Netscape/Sun use it
< >> perhaps makes it not so funny anymore?
< >> My language is now called NiCLOS(tm), the name is funny,
< >> but is the language?
< >
< >So what's Lisp-like and what's Java-like in your language? Does your
< >langage compile down to Java VM code? Do you have a uniform way to
< >use Java classes via CLOS? I can't see how this is even remotely
< >possible, considering that:
< >
< >1) Java has no multiple inheritance
< >2) Java's class definitions are lexical with respect to methods, if
< > you consider a class file as a lexical entity.
< >3) Java has no multimethods, and dispatch depends only on the class of
< > a single object.
<
< Could someone please remind me of what exactly we gain by abandoning
< Lisp and moving to Java?
<
< Here is all I am able to come up with:
<
< 1) Unprecedented momentum of hype
< 2) Infix notation to avoid frightening dogs and small children
< 2.5) Reduced wear on parentheses keys on keyboards
< 3) Some slightly challenging concepts like macros are made to vanish
< 4) Some slightly suspicious hand-waving claims that useful integrity
< checks can be performed on portable bytecode before running it
< 5) An opportunity for yet another generation of enthusiasts to reinvent
< compilers, operating systems, utilities, interactive development
< environments, and special purpose hardware for the nth time in ever slower
< and bulkier forms
< 6) An opportunity to slip some sizable loads of ignorance of prior art past
< snoozing patent examiners, and thus lay down potentially lucrative legal
< minefields
You forgot that you can run Java programs on every windows and Solaris
computer in the world!
< b...@crl3.crl.com (Bradley Yearwood) writes:
<
< > Could someone please remind me of what exactly we gain by abandoning
< > Lisp and moving to Java?
<
< Well...
<
< * You can download a full, uncrippled Java implementation + IDE for
< any major platform absolutely free, and in the case of the JDK even
< get the source code. AFAIK you can only do this with the Unix
< platform for Common Lisp.
Really? You mean Java runs on every Java platform - Solaris and
windows. You do know that all software is portable right?
You can get the source code for Java on _Solaris_ if you sign an NDA,
I think you can do this for lisp as well.
This is due to the fact that Java is portable. Portable, being an
undesirable, non-existant situation which requires work to make it go
away. All software is portable, unless it just works of course.
Unix software is portable.
< And _why_ would I want to run interpreted or JIT-compiled bytecode when I
< can run native code? (Remember, mobile code is handled quite nicely in Lisp
< by transporting and compiling the source.)
I wonder why they call it `Just in Time' compiler. Sounds like some
kind of marketing savior.
Don't get me wrong, I love Java and it's cross platform OO
capabilities. Plus it makes writing mission critical easy.
>
> I wonder why they call it `Just in Time' compiler. Sounds like some
> kind of marketing savior.
>
Isn't computing & compiling code `just in time' one of the things that
people have been whining at Lisp -- specifically CLOS with things like
lazily computed effective methods -- about for years? I mean, it
means you have to have the compiler in memory all the time, and we
can't have that, can we? Oh, well, we can *now*.
It's just like GC: for years, `Lisp was crippled because it had GC'
now Java has it, why GC is suddenly fine. (It's really amusing
teaching Lisp to people now, suddenly they don't go all funny when you
talk about GC).
There was recently some work on class redefinition in C++, so that's
probably OK now too.
I guess we need to invent some new and outragous features for people
to complain about. (Well, there's already the CLOS MOP, but it's not
quite universal enough to be a real target for derision.)
--tim
We still have the corner on the market for parentheses. The one new
language that was going to adopt our syntax (Dylan) gave in and switched to
algebraic/imperative notation. Even the article that started this thread
only suggested using S-secpressions for data files, not programs.
> * cba...@2xtreme.net (Christopher R. Barry)
> | * You can download a full, uncrippled Java implementation + IDE for
> | any major platform absolutely free, and in the case of the JDK even
> | get the source code. AFAIK you can only do this with the Unix
> | platform for Common Lisp.
>
> www.franz.com offers Allegro CL Lite to any stray comer. includes IDE.
> (but use LOAD-COMPILED instead of COMPILE-FILE and LOAD.)
It's crippled, and you must pay if you want to use it commercially.
> | * Swing, unlike CLIM, doesn't cost $4000-$7000 to even try out on Unix.
>
> none of the CLIM providers charge you money for trying it out before you
> decide to buy it or not.
I would feel dishonest if I contacted Franz about getting an
evaluation copy of CLIM. I know that no matter how much I liked it, I
could not at this point in my life afford it.
It would be nice if it could be obtained under the same terms as the
Allegro CL Linux Trial Edition, where you can use it as long as you
like, and not feel obligated to purchase it. After having been able to
use Allegro CL so extensively, I know that at some point in the future
I would definately buy it if using Common Lisp for a big project.
> | It would be nice if Common Lisp could at least standardise some of the
> | networking, threads and i/o functionality you get in Java, and if it had
> | a standard, accessible and reasonably priced GUI toolkit.
>
> I'm still confused as to this standardization issue. yes, it would be
> nice if it were standardized, but why can't you use something today?
I am. When it comes down to it, I still _definitely_ do not prefer
Java over CL. You know, _interpreted_ Garnet gui code seems smoother
and GCs much less than Java (though the pauses are longer - scrollbars
can really suck, gotta take care of this...). There are a number of
things that Java gets right though, like knowing how to actually get a
little mind share.
> Common Lisp has a problem in that only mature people use it _after_
> they have become disgusted with other languages and their hype.
Well, certainly not disgusted yet....
Christopher
> cba...@2xtreme.net (Christopher R. Barry) writes:
>
> > It would be nice if Common Lisp could at least standardise some of the
> > networking, threads and i/o functionality you get in Java, and if it
> > had a standard, accessible and reasonably priced GUI toolkit.
>
> I'd settle for DEFSYSTEM, MULTIPROCESSING and FFI.
At least Mark Kantrowitz's defsystem runs on just about every CL out
there. The Allegro one is kinda nicer, but I think Mark's has all the
functionality you really need to get the job done. Standardization
would not hurt though.
Christopher
> > * On Linux (and probably other platforms), you can choose if you want
> > the threads in a single process (Allegro CL style), or if you want
> > OS-level threads. It doesn't get any better than that (as if one
> > standard, cross-platform interface to threads wasn't convenient
> > enough).
>
> So, aside from having a choice, what are the benefits? Can you do OS-native
> threads in a platform-independent manner?
Maybe some time in the future.... You can't choose from within the
Java API itself if you want OS or in-process threads. I'm sure you're
familiar with the benefits of using one over the other in different
situations.
> > * Graphics, low-level networking, applets in browsers, sound,
> > look-and-feel support, the kitchen sink.... It actually seems to be
> > a larger language than Common Lisp, and it gives you all the access
> > to the primitive hardware, windowing-system and networking
> > functionality that you really want but in a way that will work on
> > Unix, Windows, Mac or whatever without even needing to recompile for
> > that platform. ANSI Common Lisp gives you little more primitive
> > hardware control and system access than ANSI C (not including CLIM,
> > but IMO that doesn't really count).
>
> Wow. You've been reading the Sun PR hype, haven't you? Ever try to run any
> of this stuff on a Mac? Or even a PC? Look, Sun does a nice job with Java
> on the Sun platforms.
Actually, it seems that Windows is the finest Java platform these days
and the most supported. All the fastest JVMs/JITs are for Windows, and
when Java 1.2 came out, the Windows version was the final one while
the Solaris one was supposed to still be beta or evaluatory or
something.
> But their portability claims are _vastly_ oversold. I tried their
> Java-based browser (HotJava?) on a Sun workstation and was very
> pleased. Later the same day, I tried it on my Mac; I threw it away
> after counting some two dozen cosmetic, usability, and functional
> flaws in five minutes.
I've never heard of any bad things about the Metroworks Java tools for
the Mac.
> You might be surprised to know that Common Lisp implementations also
> give you access to low-level OS and hardware functionality via their
> FFI. Not portable, but then neither are Mac OS APIs portable to
> Win32.
Probably because there's so little interest in such a thing. I'm sure
there are Win32 API layers that sit atop of the MacOS API though. But
Java gives you everything you really need from the platform specific
API without needing to use it.
> And of course Java doesn't have to be recompiled because it's transferred in
> a platform-neutral format: byte code. Did you know that some Lisp systems
> (CLISP, CMUCL) have the same capability?
Not quite in the same league.
> Do you understand that Common Lisp source code is _highly_ portable
> because it doesn't encode issues of machine-level data
> representation?
I understand that ANSI Common Lisp is highly portable. ANSI C also
will never, ever break when moving from 32 to 64 bits if you code
properly. It's just way easier to screw up.
> (Yes, Java gets this half-right by specifying fixed representations
> for data types. I wonder what Sun will do when 128-bit machines hit
> the market.
Common Lisp has a kinda oddball size for FIXNUMs. What is it doing
about 64-bit platforms? What will it do when we've got 128-bit ones?
> How many times has the Java "standard" already changed?)
It's been updated twice, and the runtime environment and browsers all
still have to run the 1.0 code and 1.1 code too.
> Ah, yes. The popularity argument. A real classic. (Not now, Ethel -- I'm
> busy. Just hit Ctrl-Alt-Delete, maybe it will work better next time.)
Why can't Lisp become more popular? What's stopping it? Do you think
that the reasons outlined in "The Rise of Worse Is Better" are the
_real_ reasons?
> And _why_ would I want to run interpreted or JIT-compiled bytecode when I
> can run native code? (Remember, mobile code is handled quite nicely in Lisp
> by transporting and compiling the source.)
You could write applets in CL and basically gain all the advantages
and cross-platform functionality Java has. You can't do sockets or
threads in CL without a hell of a lot of #+ and #- and have it work in
any CL providing access to these features. And many are reluctant to
ship source code.
Christopher
> You forgot that you can run Java programs on every windows and Solaris
> computer in the world!
And almost every Unix computer (even Crays), and the MacOS, and NeXT,
and ...within 2 web browsers that run on OSs covering 99% of the OS
market share.
Christopher
We use Java extensively here. We also use CL extensively here.
> * Swing, unlike CLIM, doesn't cost $4000-$7000 to even try out on Unix.
It's also bigger and _way_ slower.
> * On Linux (and probably other platforms), you can choose if you want
> the threads in a single process (Allegro CL style), or if you want
> OS-level threads. It doesn't get any better than that (as if one
> standard, cross-platform interface to threads wasn't convenient
> enough).
Yes, but oddly enough "green threads" (single process style) are
stunningly slow. Native threads on Solaris also suck unless you get
the right patches to run the production version - and even then they
require mind numbing amounts of cpu power to do much. Of course this
_could_ be fixed, but then why bother?
> * Graphics, low-level networking, applets in browsers, sound,
> look-and-feel support, the kitchen sink.... It actually seems to be
Sort of. Anybody actually using this stuff in real world situations
knows that there is more hype here than reality. Yes, some of it
actually works and some of it is more convenient than using something
else in certain situations. But it isn't even remotely anything like
the panacea that it is made out to be - and it often just plain
doesn't work.
> language itself, I think it's better than C, C++, Eiffel, ADA,
That's Ada - a proper name. Like Eiffel...
> independent system control it gives you. And Common Lisp sure can't
> compete with its real cost in most situations (all things
> considered).
How can you make such a claim? "Most situations" meaning..., what?
Toy oneoffs? Simple minded university class projects? Maybe. Maybe
not.
> It would be nice if Common Lisp could at least standardise some of
> the networking, threads and i/o functionality you get in Java, and
> if it had a standard, accessible and reasonably priced GUI toolkit.
Yes, it would be great if CL had a standard thread/tasking definition
- it's an important fundamental piece of functionality. Networking
stuff is really a shoulder shrug wrt "standardization" in the
language. Probably too specialized to even be appropriate.
But all of that is irrelevant in this context when you consider the
_fact_ that _nothing_ in Java is standardized! Not even the basic
constructs of the language let alone any of the libraries/APIs and
such. A _standard_ means something accepted by a _real_ standards
body - like ANSI or ISO. Sun is not a standards body and it can (and
often _does_) just change things out from under you - and then (adding
insult to injury) deprecate those changes in a future release.
/Jon
--
Jon Anthony
Synquiry Technologies, Ltd. Belmont, MA 02478, 617.484.3383
"Nightmares - Ha! The way my life's been going lately,
Who'd notice?" -- Londo Mollari
Hmm, last time I wanted to install Solaris via a Java interface:
- HotJava crashed
- Netscape on a PC had a version conflict with the Applet
- Netscape on a Mac did not really wanted to accept
my click on an install button
Well, I switched to a terminal...
> Common Lisp has a kinda oddball size for FIXNUMs.
Which size? In MCL:
? MOST-POSITIVE-FIXNUM
536870911
On a MacIvory:
Command: most-positive-fixnum
2147483647
Yeah, I'm always pleased when I see Lispy syntax hidden in
"mainstream" applications.
Checkpoint Firewall-1 uses S-expressions to store the firewall
configuration that you (are supposed to :-) generate using a
relatively nice GUI.
I think Confluent's "Visual Thought" drawing package also uses a Lispy
representation of its drawings.
> S-expression is probably one of the simplest ways to represent nestable
> data structures in text. I applaud the article.
--
Simon.
> In article <87soc6f...@2xtreme.net>, cba...@2xtreme.net (Christopher R. Barry) wrote:
>
> > Common Lisp has a kinda oddball size for FIXNUMs.
>
> Which size? In MCL:
>
> ? MOST-POSITIVE-FIXNUM
> 536870911
>
> On a MacIvory:
>
> Command: most-positive-fixnum
> 2147483647
I'll retract my statement. I believed in error that the standard
required fixnums to be 30 bits, but it says that they must be at least
16 bits (well, have a range of 2^15-1 to -2^15). Pretty much the same
requirement as the ANSI C "int" type.
Christopher
Simon> Yeah, I'm always pleased when I see Lispy syntax hidden in
Simon> "mainstream" applications.
Simon> Checkpoint Firewall-1 uses S-expressions to store the firewall
Simon> configuration that you (are supposed to :-) generate using a
Simon> relatively nice GUI.
Simon> I think Confluent's "Visual Thought" drawing package also uses a Lispy
Simon> representation of its drawings.
Add to that Rational Rose. It looks like the entire UML model is
stored in some Lispy representation, including window position
information.
Ray
geez, why do you care? Common Lisp doesn't _have_ sizes of such things.
implementations do. C and C++, however, _do_ have sizes of such things.
C/C++ have the problem you allude to. Common Lisp just runs with a
little less consing on a machine with bigger machine integers.
| Why can't Lisp become more popular?
why can't opera be more popular? why can't football be less popular?
| What's stopping it?
people like you.
| You can't do sockets or threads in CL without a hell of a lot of #+ and
| #- and have it work in any CL providing access to these features.
just because you can't doesn't many other people can't. the simplest way
to do this is to write a thin veneer, perhaps using compiler macros, to
present a uniform, standard interface to the underlying implementation
(which, by the way, differs between _socket_ implementations, too), stuff
this in a file that is loaded only on the platform it applies to.
porting your system is a matter of making a new copy of this file. this,
by the way, is how intelligent people _implement_ real portability. only
if the differences are very small and very localized does it make sense
to use #- and #+. personally, I use #- and #+ only in configuration
files and in DEFSYSTEMs.
feel free to complain that this veneer isn't standardized. I fully
expect you to, but also that you will complain about whatever you get,
the same way people complain about the pathname abstraction prohibiting
them from running the whole gamut of file system options and operations
on their particular implementation.
#:Erik
> > * True keyboard and mouse control (you can distinguish between a
> > keyboard down-press and release, so you can give your text fields
> > Emacs-like incremental searching and bindings or do sophisticated
> > word completions or any other cool thing you could think up. And of
> > course, completely standard and cross-platform.
>
> Of course, completely standard and cross-platform... Hmm, didn't Microsoft
> make an argument that it had to break from the Pure Java fold because Sun
> didn't want to support 3-button mice?
Another point here is that the behavior is (sadly, even depressingly)
quite platform depen