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

Re: Newbie surveying the multitudes of Programming Langs...



On Tue, 19 Jun 2001 21:00:01 -0400 (EDT), Israel@lith.com (Israel) wrote:

> Hi there!
> 
> I'm rather new to the world of programming, I've donge a bit of
> x/HTML, Javascript, and most recently Python and I've been considering
> trying to find a really good compiled language.  Python seems to be
> great for what it's supposed to do.  It's easy to learn as well as
> easy to write.  But it's potential Speed is quite limited.  I'm
> looking at playing around with AI as well as a couple of interactive
> picture book thingamabob-like programs and I was wondering how any of
> you see Dylan as applied to these subjects and why I just shouldn't
> use what everyone else uses: C++?

Well, the rest of the world doesn't use C++ for a start. If you like Python
but want fast interactive programming then you should look at languages
like Dylan, Common Lisp, or Smalltalk.

Since Dylan is a modern synthesis of some key bits of languages like Common
Lisp and Smalltalk I would naturally recommend that you take a look at
Dylan first.

> In looking at Dylan, I see a lot of cool possibilities, but it does do
> a few things Very differently.  ie. the way that different variables
> referencing equal values will change each other's values when changed.

If by "equal" you mean just similar objects/values then that isn't true.

However, if by "equal" you mean the same object/value then that is true in
other programming languages as well.

Perhaps you could elaborate since I'm not sure I understand.

// Example 1: after this x and y refer to different objects with different
// values in their "bar" slots.

let x = make( <foo> );
let y = make( <foo> );
x.bar = 0;
y.bar = 1;

// Example 2: after this x and y refer to the same objects with the same
// value (1) in their "bar" slots.

let x = make( <foo> );
let y = x;
x.bar = 0;
y.bar = 1;

// Example 3: after this x and y refer to the same objects with the same
// value (0) in their "bar" slots.

let x = make( <foo> );
let y = x;
x.bar = 0;
y := x;

Are you expecting assignment to do some magic copying behind the scenes? In
Dylan variables only ever refer to values. 

> I know that there are ways around this and even thinking of "working
> around" things like this is really just a misperception of the basics
> of Dylan.  

If you like Python I'm surprised that this seems new.

> Are there any books or texts any of you would reccommend?  

See Chris Double's list.

> 
> 
> Also, How in the world does one pronounce Dylan? 
> 
> Dill-an
  ^^^^^^^

This one.

__Jason


Follow-Ups: References: