Re: Simbolos dentro de cadenas

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Gabriel Colina <colina_movil(at)yahoo(dot)com>
Cc: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Simbolos dentro de cadenas
Date: 2007-03-14 13:45:36
Message-ID: 20070314134536.GI4548@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gabriel Colina escribió:

> o acaso para calificarlo asi, hiciste la carrera de Developer y te
> certificaste ????.

No, hice una capacitacion (un curso de como 10 horas, siendo yo el unico
adolescente en medio de una manga de profesionales trasnochados) hace
como 14 años y el lenguaje era igual de horripilante. La diferencia es
que en ese tiempo no tenia idea de nada y no me parecio tan malo, pero
ahora que tengo mas experiencia me queda mas que clara la calidad
deficiente.

Hace pocos años tuve que hacer un proyecto para un curso en la
universidad, trabajando en grupo con varios compañeros, alumnos de
ultimo año de la carrera, que eran mas experimentados que yo en VB (en
ese tiempo yo ya sabia programar en Perl y otros), y aun echando mano a
esa experiencia que ellos tenian, tuvimos que recurrir a los trucos
horribles para hacer que el lenguaje funcionara.

Gabriel, si la unica forma de construir una consulta en VB es haciendo
algo como

sql = "select ""Foo"" from ""Bar"" " _
& " where ""Col1"" = '" & variable & "' and " _
& ""Col2"" = '" & otra_variable & "';"

entonces no veo por donde estas defendiendo al lenguaje. Esto no tiene
defensa posible. En lenguajes mas modernos, esto se puede escribir
mucho mas limpiamente, sin esa ensalada de simbolos raros:

sql = sprintf(qq{select "Foo" from "Bar"
where "Col1" = '%s' and "Col2" = '%s'},
$variable, $otra_variable);

No se si queda clara la diferencia y el como esta diferencia, que parece
muy menor, hace que el programa sea mucho mas claro de leer y mantener.
Que pasa cuando quieres agregar una tercera condicion en el WHERE de VB;
que cosas tienes que cambiar? Compara con como lo haces abajo. Que
pasa cuando quieres agregar una cosa en la segunda linea de codigo, te
queda muy larga y ahora quieres pasar un pedazo a la linea de abajo, que
tienes que hacer con el simbolito ese del _? Tener que estarlo moviendo
de un lado para otro, quizas agregando algunos y borrando otros, y
quizas poniendo mas & por ahi; no entiendo como califica de
"mantenible". Y eso claramente es culpa del lenguaje.

Si te fijas el ejemplo que puse arriba ni siquiera es tan complicado.
El ejemplo de Gabriel Ferro es bastante peor porque su problema es mas
complejo. Pero en el lenguaje del ejemplo que te muestro abajo (Perl),
se puede hacer mucho mas limpiamente que el codigo Visual que el
mostraba, y de hecho sospecho que tu tocayo Gabriel ni siquiera habria
tenido el problema que tuvo y que origino su pregunta a la lista.

Si tu quieres argumentar que aca va a venir un monton de gente a
preguntar por problemas con Visual Basic debido a que es el lenguaje que
mucha gente usa y que "estan empezando a ver la luz", me parece
fantastico. Pero ya que estan empezando a ver la luz, entonces que la
vean bien y que no se queden solo con haber cambiado Access con
Postgres, sino que ademas se den cuenta que el lenguaje que han venido
usando durante años es realmente todo lo penca que ellos siempre han
sabido pero nunca se atrevieron a sugerir porque "es que Microsoft lo
hizo asi que tiene que ser bueno". Si se estan independizando de
Microsoft y vienen aca a aprender, hey, que aprendan :-) Nadie dijo que
el aprendizaje era indoloro.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Bernilla Sánchez 2007-03-14 14:02:28 Re[2]: Simbolos dentro de cadenas
Previous Message Alvaro Herrera 2007-03-14 13:26:38 Re: CONSULTA