[Mono-list] asp.net or php

Miguel de Icaza miguel@ximian.com
Sat, 24 Jan 2004 13:53:06 -0500


> One of the snags many people see, is that the Zend engine is perfectly
> acceptable performance/language learning wise for 98% of its current 
> uses as a Web platform (so there is little momentum in this area) - alot 
> of the interest in Parrot/.Net ports was (apart from the challenge), 
> moving the language into other arenas - desktop... etc...

I am sure that Zend is fine in the way it is.   The main advantage in
integrating with .NET though is to get access to a large body of code:
to the class libraries that are part of the framework, to the code that
is being written for it, to all the new code that is being authored for

And you want to be able to expose all of these to your language, I think
that is the #1 feature of integrating with the CLI universe today.

> One concern was that the zend engine uses a simple struct to represent 
> all variables, which appears to be very effecient way to deal with types 
> in a non-fixed type language like PHP. It is one of the potential 
> advantages of parrot over .Net, as a better target for PHP. (eg. adding 
> opcodes or native types to the opcode runtime may be more feasible..)

I do not know enough about PHP to comment on this, but this seems to be
the same issue that has been discussed in the past: that variables can
change their type.

There is nothing hard about making this efficient, but to tune this, it
is necessary for a few experiments to be done: what is the best way of
representing loose types on the .NET framework.

If you really want to, you can use structs just like you do in C, that
would be the worst-case scenario, and from that worst-case scenario, it
is possible to construct a better mapping of the binding that would
improve not only the performance, but the interoperability with the rest
of the framework.   

Measuring has to take place though, and a prototype has to exist. 
IronPython is an interesting exercise that proved that dynamic languages
can run efficiently on .NET.