Live data from Hacker News

Where are the fast dynamic languages?

martincmartin.com

11–20 of 21 posts

Re: Where are the fast dynamic languages?

#11
post #5

Lua? It is very simple language. Unfortunately, there is a performance penalty with dynamic langues, which wont go away.

> Unfortunately, there is a performance penalty with dynamic langues, which wont go away.

You'd be amazed at the sorts of aggressive optimizations that can be done at compile-time.

Re: Where are the fast dynamic languages?

#12
post #3

Does anyone here have a single example of a performance problem caused by using a 'dynamic' language rather than a 'static' language? The only performance problems I've ever encountered 'in the wild' have been down to things like database access, I/O, bad sorting algorithms, string concatenation, etc.

Fundamental limitations of Python are responsible for most of the memory footprint and performance difference between the old official Python implementation of BitTorrent and C++ implementations like libtorrent. The kind of obsessive optimization that made uTorrent so tiny and fast is just not achievable in Python, due to things like per-object memory overhead and reference counting.

I've also done audio processing projects in Python, and ended up switching to D because Python couldn't do floating point additions and multiplications across large lists fast enough.

Re: Where are the fast dynamic languages?

#13
post #5

Lua? It is very simple language. Unfortunately, there is a performance penalty with dynamic langues, which wont go away.

Here is a good discussion about using Lua to script stuff for embedded or cell phone development: http://lua-users.org/lists/lua-l/2007-11/msg00248.html

Its an interesting read. Lua seems pretty sweet!

Re: Where are the fast dynamic languages?

#15
post #11
post #5

Lua? It is very simple language. Unfortunately, there is a performance penalty with dynamic langues, which wont go away.

> Unfortunately, there is a performance penalty with dynamic langues, which wont go away. You'd be amazed at the sorts of aggressive optimizations that can be done at compile-time.

Still, how do you get around the fundamental problem of symbol lookup? Maybe sometimes you can infer the type, but I doubt that it is possible in general.

If the symbols are "hard linked", it is not dynamic anymore.

I wonder what strategy the LISP dialects out there typically use? I was impressed how easy it is to create an object system in a LISP, but somewhat dismayed because all examples just used (cond) for symbol lookup. Maybe because they were just academic examples, or perhaps they really don't care about performance at all?

Re: Where are the fast dynamic languages?

#16
post #15
post #11

Earlier quoted context omitted.

> Unfortunately, there is a performance penalty with dynamic langues, which wont go away. You'd be amazed at the sorts of aggressive optimizations that can be done at compile-time.

Still, how do you get around the fundamental problem of symbol lookup? Maybe sometimes you can infer the type, but I doubt that it is possible in general. If the symbols are "hard linked", it is not dynamic anymore. I wonder what strategy the LISP dialects out there typically use? I was impressed how easy it is to create an object system in a LISP, but somewhat dismayed because all examples just used (cond) for symbo…

> If the symbols are "hard linked", it is not dynamic anymore.

Lies, slander! ;-)

Anything that happens within a function can be treated as a black box, and compiled down to the metal, if you like.

The language can be as dynamic as you like; that doesn't preclude the output format from being tightly optimized machine code.

Re: Where are the fast dynamic languages?

#17
post #16
post #15

Earlier quoted context omitted.

Still, how do you get around the fundamental problem of symbol lookup? Maybe sometimes you can infer the type, but I doubt that it is possible in general. If the symbols are "hard linked", it is not dynamic anymore. I wonder what strategy the LISP dialects out there typically use? I was impressed how easy it is to create an object system in a LISP, but somewhat dismayed because all examples just used (cond) for symbo…

> If the symbols are "hard linked", it is not dynamic anymore. Lies, slander! ;-) Anything that happens within a function can be treated as a black box, and compiled down to the metal, if you like. The language can be as dynamic as you like; that doesn't preclude the output format from being tightly optimized machine code.

What about the things you pass into the function? You can't know their properties in advance, in general, or can you?

Re: Where are the fast dynamic languages?

#18
post #5

Lua? It is very simple language. Unfortunately, there is a performance penalty with dynamic langues, which wont go away.

Here is a good discussion about using Lua to script stuff for embedded or cell phone development: http://lua-users.org/lists/lua-l/2007-11/msg00248.html Its an interesting read. Lua seems pretty sweet!

maximilian, we are already doing that.

Re: Where are the fast dynamic languages?

#19
post #18

Earlier quoted context omitted.

Here is a good discussion about using Lua to script stuff for embedded or cell phone development: http://lua-users.org/lists/lua-l/2007-11/msg00248.html Its an interesting read. Lua seems pretty sweet!

maximilian, we are already doing that.

doing..? hacking cell phone software in Lua? I'd love to have at some embedded stuff with a non-c language. So much less to worry about screwing up. Although a lot of embedded stuff is hardware level stuff that has to be done in c anyway, so no lua there.

Re: Where are the fast dynamic languages?

#20
post #18

Earlier quoted context omitted.

maximilian, we are already doing that.

doing..? hacking cell phone software in Lua? I'd love to have at some embedded stuff with a non-c language. So much less to worry about screwing up. Although a lot of embedded stuff is hardware level stuff that has to be done in c anyway, so no lua there.

yes. Maybe we will release the interpreter part open source., but it is not done yet. Basically a J2ME and C++ (for brew and palm), interpreter for lua. The whole idea, is that you can build an app once in Lua, and run it everywhere (for reals). This is a company thing, (we are not a small startup), so I am not sure how much of it will be realeased open source.
Post reply on HN