Rodrigo Fuentealba wrote: [...]
> Puedes dejar la crema en cualquier lenguaje, incluyendo Java... Ni > siquiera las bases de datos Oracle, que son comerciales y carísimas se > escapan de esto, entonces, ¿cuál es el objeto de criticar a un lenguaje? se que Alvaro tiene un sentimiento especial de "odio" con PHP porque le ha tocado relacionarse con PHP (su interprete) de cerca: http://projects.commandprompt.com/public/plphp por eso, aprovecha cada oportunidad que tiene para desahogarse... ;) -- Ricardo Mun~oz A. Usuario Linux #182825 (counter.li.org) From [EMAIL PROTECTED] Fri Oct 20 15:13:23 2006 From: [EMAIL PROTECTED] (Franco Catrin) Date: Fri Oct 20 15:12:42 2006 Subject: Programar en Linux In-Reply-To: <[EMAIL PROTECTED]> References: <[EMAIL PROTECTED]> <[EMAIL PROTECTED] ptop13.inf.utfsm.cl> <[EMAIL PROTECTED] i l.com> <[EMAIL PROTECTED]> <7d5a202f0610191909w52142947 q2 [EMAIL PROTECTED]> <3cd5f0920610192000k2c57d340rcc6fc0a4fbb7 a74 [EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> Message-ID: <[EMAIL PROTECTED]> El vie, 20-10-2006 a las 13:00 -0300, Ricardo Mun~oz A. escribió: > Franco Catrin wrote: > > Las pruebas son radicalmente distintas. En el caso de un lenguaje > > decente, las pruebas son enfocadas en cosas funcionales, ver si la > > aplicación hace lo que tiene que hacer. > > > > .... en PHP _además_ hay que probar si el _lenguaje_ hace lo que tu > > necesitas que haga .... > > > > tienes algun ejemplo concreto?? (para entender a que te refieres) Puede ser algo tan simple como esto: $variable = 400; echo $varable + 1; y no, no hay que ser newbie para cometer un error asi, es muy facil que ocurra. Entonces el foco no está en resolver el problema, sino en además evitar que se te pasen errores como ese. La unica forma de asegurarse de que no tengas errores de ese tipo es haciendo pruebas de cosas que no son funcionales!! Otro ejemplo menos trivial, donde tampoco te ayuda el lenguaje class Object { var $title; function setTitle($title) { $this->title = $title; } function display(){ echo $this->title; } } function createInstance() { global $global; $local = new Object(); $local->setTitle("uno"); $global = &$local; } $global = new Object(); $global->setTitle("cero"); $global->display(); createInstance(); $global->display(); En este caso $global no tendrá acceso al objeto creado dentro de la funcion, curiosamente queda apuntando al objeto inicial, el que dice cero. Si cambio $global = "aaa" y despues hago echo $global desde fuera, si toma el objeto que estaba dentro de la funcion (seguramente lo copia). Pero lo que yo necesito es la referencia al objeto. Por ejemplo para que punteros a ese objeto sigan siendo validos, entonces no sirve la copia. Otro accidente que puede ocurrir aca y que el lenguaje no va a hacer nada por mi, es que dentro del metodo display omita $this->, ya que estoy dentro del scope de la clase, pero para php es $title se convierte en una variable nueva Tampoco tienes un manejo seguro de excepciones, obligar al programador que se haga cargo de ejecutar código en donde puede ocurrir una excepcion, y darle oportunidad de hacer una limpieza posterior (como lo bloques try/catch/finally de C# y Java) ... y estos problemas son la punta del iceberg -- Franco Catrin L. TUXPAN http://www.tuxpan.com/fcatrin