Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I tried to address the re-entrant/multiple-interpreters issue in my response to jmillikin, so I won't repeat it here.

The GC thing is a similar distaste for "magic." I like Lua's solution of just outright forbidding anyone from having a handle on a Lua object from outside Lua. You keep a string, or a key, or something, and use that to look up the object. Yes, it's more work some times, but it simplifies the conceptual overhead.

Continuations are similar. I don't want my embedded language mucking around with the C stack. If that means that I don't get continuations, that I only get escaping continuations, or that I can't jump to a continuation across a C stack boundary, then I'm fine with that.

For both GC and continuations, if the abstraction were 100% seamless, that would be one thing, but if I have two libraries, both of which are playing games (either using a Boehm-like collector, or odd stack manipulation, or the like), my experience is that they won't play well together.

Basically, I like embedded languages that know their place and don't get uppity and try to interfere too much with the host.

Language size is hard. I understand why a language would get bigger. Scheme is good, in that it has a good solid core, and then the rest can be in optional packages and libraries. The small core + libraries combination seems like the best way to go, but I'd rather have just plain small over big. I'm embedding; most of the work is in the host program.

I'd love to find a Scheme implementation that felt Lua-like, but I've not found one yet. I'll have to check out Chibi.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: