Microsoft's Dynamic Languages Runtime (DLR)

S

sturlamolden

On Monday Microsoft announced a new runtime for dynamic languages,
which they call "DLR". It sits on top of the conventional .NET runtime
(CLR) and provides services for dynamically typed languages like
Python or Lisp (thus the cross-posting). Apparently is is distributed
under a BSD-like open-source license.

I am curious to know how it performs in comparison to CPython and an
efficient compiled Lisp like CMUCL. Speed is a major problem with
CPython but not with .NET or CMUCL, so it will be interesting to see
how the DLR performs in comparison. It would be great to finally see a
Python that runs on steroids, but knowing M$ bloatware my expectations
are not too high.

Has anyone looked at the DLR yet? What are your impression?

Jim Hugunin har written about the DLR in his blog:

http://blogs.msdn.com/hugunin/

To cite one of the comments: "**** this microsoft bollocks! You just
stole the Lisp runtime ideas and fucked them up by stupid it salesman
lingo." (Khrishna)



Sturla Molden
 
P

Pascal Costanza

sturlamolden said:
On Monday Microsoft announced a new runtime for dynamic languages,
which they call "DLR". It sits on top of the conventional .NET runtime
(CLR) and provides services for dynamically typed languages like
Python or Lisp (thus the cross-posting). Apparently is is distributed
under a BSD-like open-source license.

I am curious to know how it performs in comparison to CPython and an
efficient compiled Lisp like CMUCL. Speed is a major problem with
CPython but not with .NET or CMUCL, so it will be interesting to see
how the DLR performs in comparison. It would be great to finally see a
Python that runs on steroids, but knowing M$ bloatware my expectations
are not too high.

Has anyone looked at the DLR yet? What are your impression?

So far, there is not a lot of information available. The only statement
about the technology I have read so far is that the DLR is a thin layer
on top of the CLR. This doesn't say a lot.

So it's hard to tell whether this is a (good) marketing stunt or whether
there are actual substantial improvement to the infrastructure.


Pascal
 
K

kyosohma

On Monday Microsoft announced a new runtime for dynamic languages,
which they call "DLR". It sits on top of the conventional .NET runtime
(CLR) and provides services for dynamically typed languages like
Python or Lisp (thus the cross-posting). Apparently is is distributed
under a BSD-like open-source license.

I am curious to know how it performs in comparison to CPython and an
efficient compiled Lisp like CMUCL. Speed is a major problem with
CPython but not with .NET or CMUCL, so it will be interesting to see
how the DLR performs in comparison. It would be great to finally see a
Python that runs on steroids, but knowing M$ bloatware my expectations
are not too high.

Has anyone looked at the DLR yet? What are your impression?

Jim Hugunin har written about the DLR in his blog:

http://blogs.msdn.com/hugunin/

To cite one of the comments: "**** this microsoft bollocks! You just
stole the Lisp runtime ideas and fucked them up by stupid it salesman
lingo." (Khrishna)

Sturla Molden


I realize this is a stupid question, but why did you cite the most
offensive comment to this blog post? Most of them were positive.

Mike
 
M

Michel Claveau

Hi!

DLR is include in SilverLight. See my message of yesterday.
For instant, DLR is for IronPython & JScript. Others languages are only
promised.

You can install SilverLight 1.1, and make your tests.
 
K

Ken Tilton

I realize this is a stupid question, but why did you cite the most
offensive comment to this blog post? Most of them were positive.

Yes, but everybody hates Microsoft, so there ya go. Anyway, here is the
real question: "thin layer"? I wonder then if anything has changed since:

http://groups.google.com/group/comp..._doneTitle=Back+to+Search&&d#2b11ecfdc4a15fb4

Anyway, doesn't matter, just fun to see MS running up the white flag
after their ballsy attempt to get CL to do the same at ILC 2005.

kt

--
http://www.theoryyalgebra.com/

"Algebra is the metaphysics of arithmetic." - John Ray

"As long as algebra is taught in school,
there will be prayer in school." - Cokie Roberts

"Stand firm in your refusal to remain conscious during algebra."
- Fran Lebowitz

"I'm an algebra liar. I figure two good lies make a positive."
- Tim Allen
 
F

Fuzzyman

So far, there is not a lot of information available. The only statement
about the technology I have read so far is that the DLR is a thin layer
on top of the CLR. This doesn't say a lot.

So it's hard to tell whether this is a (good) marketing stunt or whether
there are actual substantial improvement to the infrastructure.

Well, they're now implementing four dynamic languages on top of the
DLR - not just IronPython.

* IronPython
* IronRuby
* Java Script
* VBx (a dynamic version of VB)

The DLR provides a dynamic type system and hosting environment for
dynamic languages.

The nice part is that the DLR runs on top of the 'Core CLR' which
ships with Silverlight. This means that apps. that run in Silverlight
are secure - so you can run an IronPython console in the browser...

Fuzzyman
http://www.voidspace.org.uk/python/weblog/index.shtml
 
S

sturlamolden

Kindly refrain from creating any more off-topic, cross-posted threads.
Thanks.

The only off-topic posting in this thread is your own (and now this
one).
Begone.


S.M.
 
K

Ken Tilton

sturlamolden said:
The only off-topic posting in this thread is your own (and now this
one).
Begone.

FWIW, I took Kaz's remark to be more of a joke than an actual
cease-desist thing, partly because we here recorgnize that every nod to
dynamic languages brings us one day closer to the ascendance of Common
Lisp to Its Rightful Place on the throne and all other languages being
pushed into the sea, and partly because we all actually enjoy long,
drawn-out, flamewars with other NGs.

For example, my guess is that the DLR/Iron Python just proves that the
CLR had enough chops to support a hack like Python, but not enough to
support The Greatness of Common Lisp.

See how that works?

:)

kenny

--
http://www.theoryyalgebra.com/

"Algebra is the metaphysics of arithmetic." - John Ray

"As long as algebra is taught in school,
there will be prayer in school." - Cokie Roberts

"Stand firm in your refusal to remain conscious during algebra."
- Fran Lebowitz

"I'm an algebra liar. I figure two good lies make a positive."
- Tim Allen
 
P

Pascal Costanza

Fuzzyman said:
Well, they're now implementing four dynamic languages on top of the
DLR - not just IronPython.

* IronPython
* IronRuby
* Java Script
* VBx (a dynamic version of VB)

The DLR provides a dynamic type system and hosting environment for
dynamic languages.

The nice part is that the DLR runs on top of the 'Core CLR' which
ships with Silverlight. This means that apps. that run in Silverlight
are secure - so you can run an IronPython console in the browser...

That still doesn't explain what DLR actually does. You can implement
these languages on top of the JVM as well. You could implement them on
any Turing-complete language, for that matter. The interesting question
how well integrated such an implementation is.

However, Jim Hugunin seems to be willing to give more details on his
blog - the recent entry gives hints that there is indeed something
interesting going on. I'm still waiting for the meat, though...


Pascal
 
S

Stefan Scholl

In comp.lang.lisp sturlamolden said:
I am curious to know how it performs in comparison to CPython and an
efficient compiled Lisp like CMUCL. Speed is a major problem with

You are not allowed to publish .NET benchmarks. :)
 
D

Duncan Booth

Pascal Costanza said:
That still doesn't explain what DLR actually does. You can implement
these languages on top of the JVM as well. You could implement them on
any Turing-complete language, for that matter. The interesting question
how well integrated such an implementation is.

However, Jim Hugunin seems to be willing to give more details on his
blog - the recent entry gives hints that there is indeed something
interesting going on. I'm still waiting for the meat, though...

Watch the video he linked from his blog.

In short, the implementation looks really well integrated. They start with
an example (in Ruby) which creates a C# control and handles the event it
generates to call some VB which retrieves a list of strings from the server
and then passes it to a 3d animation written in JScript. All seamless, and
all running in the local browser (which in the demo is Safari).

The significant part of the DLR is (I think) that you can have a single
object e.g. a string, but the methods available on that object vary
according to the source file from which you are accessing the object. That
means in pure Python code the string has python methods, but in Python
using the CLR it gains the CLR methods. Presumably in Ruby code it looks
like a Ruby string and so on, but (and this is what's new) it is the same
object, not a bunch of language specific wrappers around the string type.
 
A

antoanjamison

On Monday Microsoft announced a new runtime for dynamic languages,
which they call "DLR". It sits on top of the conventional .NET runtime
(CLR) and provides services for dynamically typed languages like
Python or Lisp (thus the cross-posting). Apparently is is distributed
under a BSD-like open-source license.

I am curious to know how it performs in comparison to CPython and an
efficient compiled Lisp like CMUCL. Speed is a major problem with
CPython but not with .NET or CMUCL, so it will be interesting to see
how the DLR performs in comparison. It would be great to finally see a
Python that runs on steroids, but knowing M$ bloatware my expectations
are not too high.

Has anyone looked at the DLR yet? What are your impression?

Jim Hugunin har written about the DLR in his blog:

http://blogs.msdn.com/hugunin/

To cite one of the comments: "**** this microsoft bollocks! You just
stole the Lisp runtime ideas and fucked them up by stupid it salesman
lingo." (Khrishna)

Sturla Molden

If I looked at every crup they promote I would be braindead by
now.Just look at the DataMining articles at Microsoft research. Piece
of junk IMHO.

Antoan
 
D

Duncan Booth

sturlamolden said:
I am curious to know how it performs in comparison to CPython and an
efficient compiled Lisp like CMUCL. Speed is a major problem with
CPython but not with .NET or CMUCL, so it will be interesting to see
how the DLR performs in comparison. It would be great to finally see a
Python that runs on steroids, but knowing M$ bloatware my expectations
are not too high.

The video of Jim Hugunin's talk from MIX has a slide showing how many
Pystones you get on some different versions of Python. Of course that is
just one benchmark and not terribly relevant to any real applications, but
if you do get a similar speedup in real code 'Python that runs on
steroids' won't be far from the truth.

The claimed figures were 50,000 Pystones for CPython 2.5, and 101,000 for
the latest IronPython. (He didn't mention it, but I believe Psyco will
outdo both of these.)
 
A

Alex Martelli

Duncan Booth said:
means in pure Python code the string has python methods, but in Python
using the CLR it gains the CLR methods. Presumably in Ruby code it looks
like a Ruby string and so on, but (and this is what's new) it is the same
object, not a bunch of language specific wrappers around the string type.

So is it changeable (making Python code using it deeply unhappy) or
unchangeable (making Ruby or Javascript code similarly unhappy)? The
idea of just having one string type across languages is fascinating, but
I'm not sure it can work as stated due to different semantics such as
mutable vs immutable...


Alex
 
D

Duncan Booth

So is it changeable (making Python code using it deeply unhappy) or
unchangeable (making Ruby or Javascript code similarly unhappy)? The
idea of just having one string type across languages is fascinating,
but I'm not sure it can work as stated due to different semantics such
as mutable vs immutable...
I think they said in the video that Ruby strings were a whole other talk.
My guess is that, as .Net strings are immutable, Ruby can use them but its
own strings must be some other class.

I did a bit of experimenting with Python and JScript in the DLRconsole
sample (http://silverlight.net/Samples/1.1/DLR-Console/python/index.htm).
Sadly I cannot figure out any way of copying text from the DLR console so
I'll attempt to retype it (hopefully without too many mistakes). BTW, this
is a straight copy: the console really does let you flip languages while
keeping the same variables in scope.

py> s = System.String("abc")
py> s
'abc'
py> type(s)
<type 'str'>
py> s2 = "abc"
py> type(s2) is System.String
True
js> typeof(s)
'string'
js>typeof(s2)
'string'
js> System.String
<type 'str'>
py> n = 42
py> type(n)
<type 'int'>
js> typeof(n)
'number'
py> System.Int32
<type 'int'>
py> type(n) is System.Int32
True
py> p = 2**64
py> type(p)
py> type(p) is System.Int64
False
js> typeof(p)
'Microsoft.Scripting.Math.BigInteger'
py> lst = [1, 2, 3]
js> typeof(lst)
'IronPython.Runtime.List'
js> x = 42
42.0
py> type(x)
<type 'float'>
js> var a = [1, 2, 3]
py> type(a)
<type 'JSArrayObject'>

So it looks like str, int, long, float all map to common types between the
languages but list is an IronPython type. Also as you might expect JScript
will happily use an integer but it only produces float values.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top