Mailing List Archive

Support open source code!


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

OT: languages & performance [was RE: ++CD-ROM drive]



>>>>> "Jonathan" == Jonathan Shore <jshore@example.com> writes:

    Jonathan> Well meant in the "you" introspective sense, but sure
    Jonathan> you write great stuff anyway (don7t know if I've looked
    Jonathan> at any of your emacs code though) ;)

You haven't; I'm a manager, and just a wannabe developer mostly.

    Jonathan> Regarding readability, sometimes functional programming
    Jonathan> makes this more difficult as behavior can be so deeply
    Jonathan> buried in a stream of "functions"

Simon has mentioned this with respect to Python object notation, I
think.

    Jonathan> [translation, you may need to read the code carefully to
    Jonathan> see what is happening].

You mean, maybe what is happening is just plain hard?  :-)  Seriously,
it's relatively easy to express rather deep and complex ideas in a few
lines of Lisp code.  Sometimes it's natural (tail recursion is often
the obvious way we talk about certain kinds of iteration), sometimes
it's not.

    Jonathan> Hmm, there are big, in not bigger, communities of java,
    Jonathan> python, <name other gc languages here>, and yet there is
    Jonathan> much less discussion on this topic.  Ok, maybe, lisp
    Jonathan> attracts more of an elite set.

First, Python and Perl don't need good gc for their most common usage,
as a scripting language.  Even with persistent applications (eg Apache
modperl), the garbage generated is likely to be relatively
straightforward and small to clean up -- no circular lists etc.
However, I bet the Zope people worry about Python GC.  Also I would
expect the garbage to be worse with lots of recursive/functional
and/or graph-tracing applications.  Even Zope doesn't exercise that,
and most people don't program in recursive style in Python or perl.
(I'm borrowing your point about usage patterns, of course.)

With Java, it's partly shou ga nai, Sun will do what it wants to, I
think.  IIRC ref counting is actually mandated by the Sun standards
for the Java VM.  Sorta like Linux 2.4 VM seems really bitched up from
what I hear, but we don't see much discussion of that here, most
people want to know about ReiserFS and USB drivers.

Second, "elite", I'd like to think so, but I think the real point is
that Lisp users tend to be Lisp "implementors."  It's funny, but on
the XEmacs lists I rarely see non-developers bitching about the
watch (the cursor for gc)---it's just the developers.  GC is kinda
abstruse for the typical nonimplementor programmer.

In fact, the "slows" that people bitch about in XEmacs are rarely due
to GC; they're in redisplay, startup (XEmacs used to do literally
thousands of stats looking for Lisp directories, we're down to about
300 now, with a dramatic speedup in startup time -- still slower than
FSFmacs, tho), and in regexp code.  GC seems to be satisfactorily fast
until your process reaches about 100MB (that's a 450MHz PIII).


-- 
University of Tsukuba                Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences       Tel/fax: +81 (298) 53-5091
_________________  _________________  _________________  _________________
What are those straight lines for?  "XEmacs rules."


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links