Yo soy del primer grupo, creo que por una cuestión de cuales son los lenguajes que he usado: desde Pascal en la facultad, pasando por C, C++, Java, C#, hasta GeneXus. Definir de qué tipo de datos es una variable me resulta de lo más natural.
No quiero ponerme en la postura de discutir cual opción es mejor, porque claramente se puede lograr lo mismo con cualquier tipo de lenguaje, pero hay cosas en los lenguajes no tipados que no me convencen.
El otro día tuve que revisar un programa escrito en PHP en busca de un posible bug, y la verdad que no saber de que tipo es una variable es algo que me choca.
Por ejemplo, si tengo una invocación (puede estar mal la sintaxis) de la forma:
$var->methodName($arg1, $arg2, $arg3);si no se de que tipo es la variable $var, ¿donde busco la definición del método methodName?
A mi por lo menos me gusta saber con que tipos de datos estoy trabajando...
Tambiénme choca que se puedan hacer cosas como (puede estar mal la sintaxis):
$a = 1;pero bueno, se supone que esa es la ventaja de no tener chequeos estrictos en el tipo de datos, ¿no? Me parece que permitir saltearse el chequeo de tipos es algo que puede provocar más bugs.
...
$a = 'Hola' + $a;
...
$a = new HttpClient('www.example.com');
...
$a = $a + 1;