List, I've been lurking here for about two months, after having read the summaries for several months previous. I'm interested in parrot because 1. I want it very badly for php / python / perl combinationability(?) 2. Just reading about the project is a fascinating learning experience.
I've looked over the parrot docs on parrotcode.org, and have a few questions / concerns. Most of my problems lie within the fact that I'm so interested in seeing php / python / perl coexisting peacefully. 1. Function case -- some languages like php don't use case for function or method names. Thus $a->toString(); is the same as $a->tostring(); However, a language like java does care. How will php be able to call the correct java method? I suspect one solution for php would be to have a way to do a case insensitive method lookup. 2. Strings -- everyone deals with strings differently. There was some allusion to this issue in the docs on parrotcode.org, although the question wasn't quite answered. I also might not have quite understood the vtables chapter... So if I create a perlscalar string, and send it to a python function, what happens? Does the string act like a perlscalar or a pythonString? Or if I cared one way or an other, could I force it to switch to being a pythonString or stop it from switching? I suspect a language like PHP wouldn't have too much trouble with dealing with foreign strings, as it uses functions, and if all strings were a subclass of some parrotString class, PHP could handle them. But when a php string was sent to python or perl, that string would have no methods at all (except for maybe the parrotString methods?) The more fundamental question is -- is it possible to (if requested) magically transform one object to another type -- but only while it's in a different languages context? I suppose multi-threading would make the issue even more confusing... 4. Global Scopes -- each language has its own idea of what is part of the core function/pre-defined values set. If I start a python script, and call a php script, will php have python's global core (__import__,apply, compile,complex,xrange, etc...) or will the php script have the usual myriad of php functions available (all 5000 of them)? I guess when I'm in a php or python context, I'd want things to feel like a php or python context... Maybe each language gets its own namespace? php::main, python::main... Anyway, all these questions are comeing from someone who doesn't do a whole lot with perl. Yet, I'm _very_ excited about parrot, as I see a lot of duplicated effort between the various dynamic languages. And because of that duplicated effort, some things just never get duplicated. There are _many_ times when I'm using PHP, that I wish I could _really_ use CPAN. And other times when I'm using python that I wish I could jump back into PHP for a second. Or I want to use a function that I know is only implemented the way I like it in the other language... And there are even sometimes that I wish I could move over to perl for a minute and do something else. Beyond code reuse, and language switchability, I also like the idea of a single powerful platform. (That, hopefully, is superior to the individual ones. I have gripes about the PHP platform and the python platform, that I wishfully hope to see resolved by parrot.) So, anyway, sorry for liking PHP, and sorry for asking lots of (maybe ignorant) questions about how it will all work. BTW -- is anyone working on php->parrot right now? I saw a mention of it a few weeks ago, but no links.. Thanks! Phil