Dylan newbie. 
Author Message
 Dylan newbie.

Hi, I've been assigned Dylan as a language to do a seminar on, for
university. I'm very curious. I am looking for a fully OO language
without the performance issues of java, and the 'tacked-on' OO of C++.
The talk isn't due for annother 9 weeks, but I'm wondering if this is
the only discussion group for dylan. It  seems very quiet. I'm very
partial to IRC, so if there is a Dylan channel I'd appreciate any
pointers.

Cheers,

Oliver White.



Thu, 17 Jan 2002 03:00:00 GMT  
 Dylan newbie.

Quote:

>Hi, I've been assigned Dylan as a language to do a seminar on, for
>university. I'm very curious. I am looking for a fully OO language
>without the performance issues of java, and the 'tacked-on' OO of C++.
>The talk isn't due for annother 9 weeks, but I'm wondering if this is
>the only discussion group for dylan. It  seems very quiet. I'm very
>partial to IRC, so if there is a Dylan channel I'd appreciate any
>pointers.

At the very least, you should look at the Dylan Ref Man.  And download
a Dylan implementation.  www.harlequin.com has both pointers to the
DRM and to a free, industrial strength Dylan IDE (which includes lots
of open source code).


Thu, 17 Jan 2002 03:00:00 GMT  
 Dylan newbie.


Quote:

>At the very least, you should look at the Dylan Ref Man.  And download
>a Dylan implementation.  www.harlequin.com has both pointers to the
>DRM and to a free, industrial strength Dylan IDE (which includes lots
>of open source code).

There's a lot of information at <http://www.harlequin.com/devtools/dylan>
that might be interesting.  There are whitepapers, comparisons to Java,
and language overviews.  This material might be a faster route than
reading the DRM.  (I've always found the DRM very straightforward and
easy to understand, but then, I wrote it.  Other's have voiced the opinion
that it can be a difficult way to learn the language.)

--

                                            http://www.folly.org/~alms
This is our garden, although we have no grass.
-Bahrije Baftiu, Kosavar refugee in Macedonia



Thu, 17 Jan 2002 03:00:00 GMT  
 Dylan newbie.

Quote:

> Hi, I've been assigned Dylan as a language to do a seminar on, for
> university. I'm very curious. I am looking for a fully OO language
> without the performance issues of java, and the 'tacked-on' OO of C++.
> The talk isn't due for annother 9 weeks, but I'm wondering if this is
> the only discussion group for dylan. It  seems very quiet. I'm very
> partial to IRC, so if there is a Dylan channel I'd appreciate any
> pointers.

There's no Dylan IRC channel that I know of.  Ask questions here.

The most comprehensive set of links I know of is at
http://www.cetus-links.org/oo_dylan.html

The Harlequin implementation is win32 only.  If you want a
Unix version try Gwydion Dylan (no IDE).
http://www.gwydiondylan.org/



Fri, 18 Jan 2002 03:00:00 GMT  
 Dylan newbie.

Quote:

> Hi, I've been assigned Dylan as a language to do a seminar on, for
> university. I'm very curious. I am looking for a fully OO language
> without the performance issues of java, and the 'tacked-on' OO of C++.

Dylan is designed to compile to native code and rival C++ for speed, and
even functions are objects, so you've come to (one of) the right place(s).

There's a good introductory article at:

http://www.mactech.com/articles/develop/issue_21/21strassman.html

althought the examples are more than a little contrived.
I'd steer clear of the Dylan Reference Manual, it is the definitive
reference but it has no examples or contextual information, it's not what
you need for a seminar IMHO. There is a tutorial and some illustrative
code snippets at the Gwydion Dylan Web site:

http://www.gwydiondylan.org/

There is a Mac version of the Gwydion Dylan's Mindy system available in
addition to the full Gwydion UN*X system and the Harlequin Win32
implementation.
This list will look a lot less quiet if you ask questions, so fire away.
:-)

-Rob.



Fri, 18 Jan 2002 03:00:00 GMT  
 Dylan newbie.

Quote:

> Ok, first up, what's 'Mindy'? I saw it on in the ccc archive, haven't
> downloaded the linux version yet.

Mindy is a bytecode compiler/interpreter for Dylan (like early Java runtimes).
It doesn't do macros but is otherwise surprisingly powerful. It's used to
compile d2c, the main Gwydion Dylan-to-native-code-via-C compiler, on systems
it hasn't already been compiled on. It also ports easier to non-UN*X platforms
than d2c.

Quote:
> Secondly, what do you guys work on mostly? I gather the library support
> is a bit limited, wrt database APIs and other nice things. Maybe you
> guys (and girls?) work on libraries mostly? *grin* Actualy, I wouldn't
> mind hacking on some APIs if/when I get up to speed with the language.

There are MySQL and OpenGL interfaces available, and examples of CGIs are
available at http://www.dylanworld.com/
Dylan is designed to play well with other languages, Mindy and d2c support
Melange or Pidgin, utilities to make Dylan prototypes for C calls imported
form C headers.
Mindy can import shared libraries on some platforms, and Harlequin Dylan has
COM support.
I have a Mac Toolbox interface that Patrick Beard did, and have a native
"hello world" window up happily now (give me time...).

Quote:
> Thirdly, what are the issues with cross platform compatibility? The
> great thing about ANSI/ISO languages is portability, is this a problem
> or is there a reference build to work from?

There's a Common Dylan initiative underway, and code should ultimately be
portable between UN*X (Gwydion) and PC (Harlequin ). There's a tk/AWT-style
windowing library, DUIM, available, too, but that's Harlequin-only at the
moment. All the test and demo code from Mindy UN*X runs on Mindy Mac (unless
it tries to fork or call X or tk...), so portability is good.

Quote:
> Does windows have a gwyndion port, just out of interest?

I think someone is fixing it now. :-)

- Rob.



Fri, 18 Jan 2002 03:00:00 GMT  
 Dylan newbie.

Quote:


> > Ok, first up, what's 'Mindy'? I saw it on in the ccc archive, haven't
> > downloaded the linux version yet.

> Mindy is a bytecode compiler/interpreter for Dylan (like early Java runtimes).
> It doesn't do macros but is otherwise surprisingly powerful. It's used to
> compile d2c, the main Gwydion Dylan-to-native-code-via-C compiler, on systems
> it hasn't already been compiled on. It also ports easier to non-UN*X platforms
> than d2c.

As an example of the trade-offs ... I'm doing some tuning work on d2c at
the moment.  I've got a small program (35 lines) that kinda sorts a 600 KB
text file to produce a 380 KB output file.

Compiler  compile time    run time
========  ============   =========
Mindy        0.04 sec    150   sec
d2c         30    sec      1.1 sec
perl         n/a           0.7 sec

As a comparison, running "wc INPUT VALIDATE" (i.e. counting the
chars/words/lines in both the input and output) takes 0.04 sec.

Perl is currently 60% faster than Dylan.  But that's OK because:

- it's a simple text procesing task and that's exactly what Perl
  is designed and heavily optomised for.  The Dylan program is
  using general-purpose high level facilities.  Perl is effectively
  using hand-coded C.

- when I started, the Dylan program was *eight* times slower than
  the Perl one (5.5 seconds).  The breakdown was 4.7 seconds to
  input the data and put it in a hash table of lists, 0.8 seconds
  to sort the hash keys and lists and output them.  Now it's
  0.3 seconds to input the data and put it in a hash table of
  lists, 0.8 seconds to sort the hash keys and lists and output
  them.  I have no reason to think that I can't speed the sort
  & output phase up by about as much.

- the things I'm doing should benefit all Dylan programs that deal
  with files, not just this one.  That includes d2c itself.  At
  the moment the 30 seconds it takes to compile the program
  consists of about ten seconds reading in the libraries used,
  about five seconds compiling the program, about ten seconds
  writing out the various C files, and about five seconds to
  C compile & link the program.  If the file reading & writing
  phases of d2c benefit similarly...

I should point out that this makes Mindy look worse than it is.  I'm using
a pretty extreme test file here.  For program development purposes it
would be fine to use a file 1/1000 as big (6 KB), which Mindy would
process in about 1/6 of a second.  Even a 30K test file would see Mindy
compile&run in about a second total.  Then when you get the program
finished, you can do a final compile in d2c for the production runs.

More realistically, we can probably get the speed of d2c down to a few
seconds for a compile, partly by improving the compiler & runtime, partly
by simply having it do less work (and produce slightly worse code) on
development builds.

-- Bruce



Sat, 19 Jan 2002 03:00:00 GMT  
 
 [ 7 post ] 

 Relevant Pages 

1. Dylan Newbie just wanting to say hi.

2. Pathetic newbie cant grasp simple concept like dylan-user

3. Newbie question: Dylan and OOP?

4. Newbie: Learning Dylan

5. Newbie problem? (Dylan TR)

6. Pre-newbie questions about Apple Dylan

7. archives of info-dylan/comp.lang.dylan available

8. Dylan vs DyLan

9. (fwd) harlequin's dylan-corba mailing list switching to MIT's info-dylan

10. lazy.dylan 0.1 -- add ML/Scheme-style lazy evaluation to Dylan

11. Dylan and Java [was: Harlequin Dylan - Update]

12. Dylan Programming Book and Apple Dylan

 

 
Powered by phpBB® Forum Software