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

Re: Dylan for Pythoneers?



"F. GEIGER" wrote:
> 
> Hi everybody,
> 
> I've got attracted by Dylan's mixed dynamic/static concept.

Welcome!
 
> Does anybody know of a link "Dylan for Python programmers" or anything like
> that? Are language comparisons available other than Dylan vs. Java?

Not that I know of.  Maybe you can make some notes as you
learn Dylan and write one!  (I should learn Python too,
and make some notes.)

> What I wonder most for now is, does Dylan provide any threading mechanisms
> like Python does?

I don't know Python well, but take a look at
http://www.functionalobjects.com/products/doc/core/core_112.htm
If you have specific questions about threads ask them here and
I'm sure someone can help.

> 3rd question: How do you develop in Dylan on Windows platforms? Many users
> of Functional Object's IDE here? Any alternatives to that? How about GUI
> programming on Windows? Is Dylan a good fit here?

The Dylan User Interface Manager (DUIM, pronounced "dwim") is great
for GUI programming on Windows.  There's no GUI builder, but frankly
it works at a much higher level than, say, SWING, so there's much
less of a need.  As a simple example, if you wanted to create a
window that has a button with a text field underneath it, you could use

contain(vertically ()
          make(<push-button>, label: "Push Me");
          make(<text-field>);
        end);

There are several good DUIM examples that come with Functional Developer.
(You can download the basic edition for free.)

There is work being done to port DUIM to Gwydion Dylan, so it will
work on Unix.  I don't know exactly how far along it is but there's
a screen shot of some DUIM windows on Unix floating around somewhere.
 
> Ah ja, another one: When it reads, that a compiler is able to compile
> certain portions of code (namely the ones, that provide type information;
> they are called "embellished", aren't they?), does that mean, that there is
> a concept like "issue compile errors before any part of the program is
> *run*"? Or does that mean, that a compiler wraps such code with runtime
> support and the errors are detected at runtime (like say in Python)? In
> other words: Is there a compiler run like in C++?

I'm not quite sure what you're asking here.  Are you talking about
"incremental compilation"?  Functional Developer has two modes of
compilation called "development" and "production".  When in development
mode you can interact with your program while it's running, and you
can download new or modified code to the application without 
restarting it.  This can be a huge time savings, especially if you
had to spend a lot of time building up state in order to test something.

In production mode more errors will be caught at compile time but
you can't interact with the program or make changes on-the-fly.

In general, the compiler will generate runtime type checks unless
it can prove they're unnecessary, which depends on whether you've
given it enough type information.  If a type error occurs at runtime
a <type-error> will be signalled.

-Carl