Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Cuando Un Codigo Es... "más Gambas" Que Un Otro ?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
" Dum Romae consulitur, Saguntum expugnatur ! "
(Tito Livio, Ab Urbe condita, XXI, 7, 1)


...mientras la antigua y noble ciudad de Sagunto fue atacada, en el foro italiano ha nacido inesperadamente madno una discusión sobre este asunto:

¿Cuándo un código escrito en gambas es... "más Gambas" que un otro código escrito en gambas?


Puestos por ejemplo estos dos códigos:
Public Sub Main()

  Dim s1, s2 As String
  
    s1 = "aaaa"
    s2 = "bbbb"
    Swap s1, s2
    Print s1, s2

End


Public Sub Main()

  Dim s1, s2, tmp As String

    s1 = "aaaa"
    s2 = "bbbb"
    tmp = s1
    s1 = s2
    s2 = tmp
    Print s1, s2

End


una parte afirma que es "más Gambas" el primer código, porque contiene una función (Swap) que ha sido estudiada para hacer aquel específico trabajo de cambio.

Otra parte afirma simplemente que no hay diferencia substancial, y que el primer código no es "más Gambas" que el segundo.


¿Cuál es vuestra opinión?
 



 
última edición por vuott el Miercoles, 03 Agosto 2016, 20:49; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
Bueno, lamento recurrir a un término que odiarás, vuott, pero es que me viene como anillo al dedo:

En Python, existe una corriente de pensamiento que denomina más o menos pythónico un determinado código, por la manera en que está escrito. Puede tener la misma funcionalidad que otro que no lo sea, puede tener el mismo rendimiento y puede ser igual de legible, pero la forma de usar los recursos del lenguaje es la que determina ese calificativo. Para mí es sinónimo de "elegante" o "culto", etc...

La misma analogía es aplicable al lenguaje convencional, tanto hablado como escrito, que todos somos capaces de entender. Hay escritores, periodistas, etc, que tienen un don especial de palabra y de redacción y ordenación de ideas a expresar que otros no tienen. Los que usan más y mejor los recursos del lenguaje son considerados más cultos y están más reconocidos. El resto, aunque podrían expresar las mismas ideas con su lenguaje más llano y simple, carecen de ese estilo que caracteriza un dominio pleno del lenguaje.

Por lo tanto, mi opinión es que si usamos convenientemente los recursos que nos ofrece el lenguaje, el código será más elegante, más "gambero" -si se me permite el calificativo- en definitiva, será un código claro, conciso y breve.

Y si además el programa funciona, pues mejor!!!   


Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
sin dudas el primero, porque es el que aprovecha mejor al interprete
 



 
tercoIDE - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
Ambos códigos son códigos de Gambas.

La única diferencia es que en uno, el usuario no conoce el comando Swap y en el otro si.

La experiencia y la practica buscando otras opciones, te enseñara a encontrar otros caminos
mas rápidos para encontrar la misma solución con un número menor de líneas.
Eso no quiere decir que seas mejor ni peor programador, pero si que conoces otras
formas.

La respuesta del usuario mas novel, puede llegar a ser no buena. De verlo como una manera
complicada de resolver un problema.

Acordaos del IIF. Lo que se debe hacer como ha hecho el manual de gambas en el caso de mostrar
IF es enseñar la posibilidad del uso de IIF. De mostrarlo.

Algo más complicado es encontrar un pequeño trozo de código equivalente a Swap.
Claro que para el que es de la lengua nativa, no tendrá tantos problemas para encontrar
un significado a la palabra "swap", intercambio.

Tampoco no debemos olvidar en la forma de trabajar que vamos adquiriendo,
como vamos reduciendo el número de líneas, como usamos menos comando.
Desde un bucle, hasta un splt, que nos interesa un índice.

Conocimiento, la llama que buscamos, la lampara que carga el sabio ermitaño en su viaje.
En su búsqueda por el conocimiento se ha retirado un poco del mundo.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
Debo reconocer que tengo una opinión formada con respecto al tema (tal vez no me interese mucho la diferencia), pero me pregunto:

¿Es mas "gambero" un código que accede a una base de datos con el componente de gambas o el que lo hace con comandos SQL directamente?

La verdad que, en lo personal y como decían mas arriba, si funciona y funciona tan bien como el otro código no me preocuparía mucho. ¿No?
 



 
whisper - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
Whistper:

Citar:

¿Es mas "gambero" un código que accede a una base de datos con el componente de gambas o el que lo hace con comandos SQL directamente?


Eso es algo diferente. Si usas el componente de gambas, el código posiblemente te valdrá para los distintos motores de base de datos.
Actualmente nuestro "gurú" de base de datos estará ocupado haciendo todas las faenas sin parar que le estará encargando su señora. Pobre Shordi!!.

 bbtlatigorhj

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
Iba a publicar este pequeño código para decir que me funcionaba correctamente la instrucción swap
en el ejemplo de "reposicionar letras de una cadena" en el cual Vuott lo mostraba usando una función de "C".

Vamos a lo que vamos. Una parte del código quedaría de esta forma:

'Desordenar el array
  For i = 0 To letras.Max - 1
    lugardestino = Rnd(0, letras.Count)
    Swap letras[i], letras[lugardestino]
    'tmp = letras[i]
    'letras[i] = letras[lugardestino]
    'letras[lugardestino] = tmp
  Next
 


A ver que os parece esta idea. En muchos de los códigos que a veces bajamos de otros programadores,
en la mayoría. Podemos ver parte de código comentado, eliminándolo por una causa que se puede
explicar en el código de la aplicación.

En este pequeño trozo de código se puede observar que mediante una instrucción se ha sustituido a tres instrucciones.
Por la palabra de la instrucción podemos deducir rápidamente lo que hace. No requiere demasiada complejidad,
para entenderlo. El uso es sencillo.

En muchos casos cuando escribimos un código debemos pensar que otras personas lo van a usar, ver y modificar.
Nuestra labor como programador y de paso instructor del nuevo programador, debemos mostrar un código
que sea el más habitual que va a usar el programador a cualquier escala y la nueva posibilidad.

En este caso el programador instructor ha mostrado dos posibles formas de hacerlo, lo ha comentado si fuera
necesario. A veces unos buenos nombres de variable lo dicen todo.

Tampoco es cuestión de si repetimos un código volver hacer la misma aclaración, se puede indicar
con una referencia a alguna parte. No siempre somos tan didácticos.

¿ Qué nos falta ?.

La respuesta del programador que ha visto nuestro código y quiere de alguna manera contribuir a mejorarlo.
La respuesta debe ser en ambas direcciones, tanto del maestro al alumno, como del alumno al maestro, ya
que en el fondo todos somos alumnos con mas o menos conocimientos, pero compartimos la misma filosofía,
el ayudar y motivar a que otras personas puedan aprender a usar nuestro lenguaje Gambas.

¿ Hasta donde llega realmente esto ?.

Bien, siendo código abierto. Debería ser de lo más habitual esta forma de proceder.
Pero no siempre es así. Los códigos pueden ser enormes, el tiempo es breve y nuestra prisa mucha.
Los intereses del programador no siempre van con una filosofía, ¿ verdad ?.

¿ Cuantos ejemplos se nos ha quedado en el tintero ?.
¿ Cuantos ejemplos nos hubiera gustado que los demás nos hubieran comentado, probado ?..etc.

Nuestra actitud y la de los demás van afectando de alguna forma directamente o indirectamente
al progreso o mejora de un ejemplo y a su vez, de una idea. Pero, ¿ cuantas y cuantas tenemos ?.

Nunca la dejes morir ni te des por vencido.

De nuestro estilo de programación puede depender el futuro de una comunidad.
No somos perfectos, ya que solo las máquinas y Sheldon Cooper es perfecto.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
Te vas por los Cerros de Úbeda, Shell      

Recuerda tomar la medicación  
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
Jesus:

Bueno, más o menos, Lo que estamos tratando es la sustitución de un conjunto de líneas de código
por otra que resume estas líneas. Todo ese código es de gambas, tanto uno como el otro.

Pero dentro de todo ese cambio de líneas, reduciéndolas, puede acabar confundiendo al
programador que comienza. Por eso, escribí todo eso.  

Es que el programador novel tambien se queja...y el más antiguo...abuelito el.  
Ahora entiendo, por que el programador con mas experiencia se vuelve mas cascarrabias!.  

Citar:

Recuerda tomar la medicación


Si, vacaciones, salidas a la calle, eso seria una buena medicación.  

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Martes, 26 Julio 2016, 09:12; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Cuando Un Codigo Es... "más Gambas" Que Un Otro ? 
 
Aunque soy un novato en gambas el primero podría decirse que es "más gambas" porque emplea instrucciones que sí tiene ese lenguaje,mientras que el segundo podría decirse que es "más universal" porque usa instrucciones comunes a la mayoría de intérpretes Basic. Un novato en Basic leerá el segundo más rápido, un usuario con un mínimo de experiencia leerá los dos por igual.

Pero todo depende de lo que uno busque al escribir, a veces la portabilidad es importante, otras la velocidad, otras que sea un proyecto "legible" al gran público...incluso es posible que swap como instrucción sea más lento que un simple intercambio de variables (o no) y por tanto fuera mejor usar el segundo código, aunque se conozca el primero, cierto que dudo que nadie se ponga a medir ciclos de reloj en una aplicación de gambas pero en otros sitios donde sí tenemos que hacerlo poco importa la elegancia, a veces escribimos cosas muy largas o enrevesadas pero que resultan más rápidas y eso cuando andas con recursos limitados cuenta. Hace tropecientos años hasta nos molestábamos en mirar por dónde iba pintando el monitor CRT para saber si podíamos pintar en pantalla antes de que el siguiente refresco pasase por la pantalla y así evitar parpadeos, qué tiempos Aunque ahí hablo de ensamblador puro y duro, al ser un intérprete es más lógico escribir el primer código, y la velocidad será irrelevante.

Saludos
 



 
última edición por Tasagore el Miercoles, 03 Agosto 2016, 19:24; editado 2 veces 
Tasagore - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron