Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 3 de 4
Ir a la página Anterior  1, 2, 3, 4  Siguiente
 
Nueva funcionalidad en Gambas 3
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
fabianfv escribió: 


(Primero aclaro que lo que decías daba a entender que minimizabas las diferencias que podrías encontrar entre, por ejemplo, dos lenguajes de alto nivel)

Sí, pero no necesariamente. El compilador de un lenguaje de bajo nivel o nivel intermedio (como C) puede producir código extremadamente eficiente, pero la eficiencia también depende de otros factores como lo es hoy en día la cantidad de microprocesadores presentes en un chip, por lo que un lenguaje de alto nivel que permite multi-programación (paralelización) con mucha sencillez, permite aprovechar los diversos núcleos logrando una productividad y un rendimiento muy por encima del que se lograría con un lenguaje de nivel bajo/intermedio que produce código máquina hiper-eficiente, pero sin permitir el aprovechamiento de múltiples núcleos.


Naturalmente, no hay necesidad de complicarse con un lenguaje de bajo nivel a estas alturas con los lenguajes
que existen y el rendimiento que ofrecen.

fabianfv escribió: 

Por otra parte, la eficiencia muchas veces se logra a partir de pequeñas optimizaciones que pueden tener un impacto importante en el rendimiento y que requieren una amplia comprensión del lenguaje (por ejemplo C) y del compilador que se usa. Por ejemplo, un programador gambas que aprende la sintaxis de C y a usar un IDE para C, no será capaz de aprovechar sus características y el mayor rendimiento que obtendrá (gracias a la compilación a código máquina y a las optimizaciones predefinidas que realice el compilador) generalmente serán muy difíciles de apreciar en comparación de lo que hubiera logrado escribiendo su programa en gambas.


Nunca he usado un IDE para C.Solo Codelite.Siempre en una consola.
No me importaba por que estaba aprendiendo y con miras a entender mejor la programación
para aplicarla a gambas.

No se puede comparar la respuesta en velocidad de calculo del compilador con la de un interprete.
Puede que con un calculo sencillo no se vea.Pero cuando requiere una gran cantidad de repeticiones
se nota.

Lo que no sea estudiar y practicar.La única manera de adquirir experiencia.

fabianfv escribió: 

Que un lenguaje sea mejor que otro no implica que sea más difícil. Me parece que al hablar de las diferencias entre diversos lenguajes permanentemente terminas pensando en C vs gambas, lo que es un error porque reduces las posibilidades de comparación y porque la finalidad de ambos lenguajes tiene muchas más diferencias que similitudes.


No, lo de C vs gambas es mas bien por documentación, manuales, información, recursos.
C es un lenguaje de propósito general como el basic, que no tiene un uso concreto o exclusivo.
Podía haberte nombrado otro lenguaje,no tiene por que ser C.

fabianfv escribió: 

En los 80 había gente programando en Smalltalk, creando interfaces gráficas imposibles de lograr con otras herramientas, impulsando y desarrollando el paradigma de objetos y realizando cosas realmente muy avanzadas para la época, por lo que básicamente tu referencia cronológica es incorrecta.

Cierto.No te lo tomes al pie de la letra.
Pero no era asequible para el bolsillo de cualquiera.En esa época muchos de nosotros eramos unos chavales
con un conocimiento de ingles bastante limitado.El basic era el lenguaje mas fácil que podías encontrar en las revistas de la época,
comenzaba el interés por los micro-ordenadores de 8bits.Nuestros ordenadores no tenían interfaz gráfica.
El precio medio de un ordenador de 8bits en el 82 podía rondar los 300€ de ahora, incluso mas.

En poco tiempo llegaron los 16 bits,Windows,OS/2 y Workbench en Amiga.Y falta Mac o Apple.
La interfaz gráfica era una realidad.

Para el que trabajaba con un interprete de linea de comandos de un Sinclair.
¿ Que diferencia visual hay en eso a trabajar hoy en una consola de dos ?.

fabianfv escribió: 

Pero lo que dices es un síntoma típico del problema al que induce aprender a programar en un lenguaje "visual".

Las personas que aprenden a programar con un lenguaje "visual" frecuentemente creen que el único campo de aplicación de la programación son las aplicaciones de escritorio con interfaces gráficas o que un programa sin interfaz gráfica no es útil.

No es casual que en GNU/Linux la mayoría de los programas se escriban para consola. Se hacen así, entre otras razones, para mentener una clara separación entre la lógica que el programa requiere y la presentación e interacción con el usuario (independientemente que el usuario sea una persona u otro programa). Eso permite que luego se escriban diferentes interfaces gráficas o de texto (front-end), por ejemplo, usando ncurses, dialog, gtk+, qt4, etc.

Con respecto a esto, la filosofía es escribir el programa más pequeño posible que haga sólo una cosa y que la haga bien. Esto, en realidad, no es más que la correcta aplicación del principio de modularidad.


Una aplicación no se debe despreciar por que no tenga una interfaz gráfica.Pero lo bonito vende, por que le entra por los ojos.
No siempre estuve con un entorno visual.Siempre he estado con una linea de comandos y lo que fue para mi lo máximo, un ide de texto.
Cuando vi Turbo Pascal para mi fue lo mejor con respecto a otros lenguajes, sin querer complicarme con C.

Si es que lo realmente importante es el código.Lo demás es añadido.
Pero,¿ no es mas agradable trabajar con IDE gráfico ?.

En el blog no me preocupe por formularios.Para aprender a programar no se necesitan formularios.
Como estamos hablando de un lenguaje visual como gambas, mas tarde o mas temprano toca trabajar
con formularios.

Shell escribió:  

Tu dale a un usuario un menú con texto y dale la misma aplicación con un formulario, a ver a donde manda el usuario
el programa con el menú de texto.


fabianfv escribió: 

Depende de qué tipo de usuario sea. Por ejemplo, si es un administrador de sistemas es altamente probable que prefiera la aplicación sin interfaz gráfica.


Un administrador de sistema no es un usuario cualquiera.Te hablo de un usuario de lo mas corriente.

fabianfv escribió: 

Siempre digo que lo económico es muy importante, pero en las comunidades de software libre, más precisamente de programadores o administradores de sistemas (que antes se las solía llamar comunidades hackers y ahora lamentablemente nos preguntamos si somos frikis), históricamente quienes más saben han ayudado a los principiantes rigiéndose por un estricto código de conducta: si preguntabas algo obvio nadie te respondía, si preguntabas algo que era fácil de encontrar en la documentación la respuesta que recibías era RTFM (Read The Fucking Manual). Estas cosas que hoy muchos toman como una actitud agraviante o descortés hacia los novatos, le permitía a quienes más sabían ayudar a los principiantes sin que ello implicara invertir enormes cantidades de tiempo o derivara en las típicas y absurdas discusiones que planteaban muchos novatos.

Hubo comunidades que se vaciaron porque los que más sabían rápidamente la abandonaban frente al ruido que producían muchos principiantes incapaces de respetar unas pocas reglas básicas de conducta. Por ello surgió el concenso de que había que ser estrictos en estas situaciones y de alli las famosas respuestas como RTMF.

Además, nadie en su sano juicio desea permanecer en una comunidad donde el mensaje (implícito) que más se escucha es "somos principiantes y queremos seguir siéndolo".


El pasotismo y el desinterés también hunde una comunidad

No se puede ser siempre principiante.Después de un tiempo,¿ quien lo es ?.
No me importa retomar temas desde el principio con un curso de 0 para ver otros
puntos de vistas y mejorar

Tampoco se puede pretender que contesten siempre los mismos usuarios.
Los usuarios deben crecer y no lo digo por el numero (esto dice poco), si no en conocimiento, actitud.

Shell escribió:  

Nosotros los aprendices,


fabianfv escribió: 

No puedes hablar por todos ¿o te nombraron delegado?  


No.   
Cuando te dije los aprendices,  quería decirte que seria la actitud típica de una persona que empieza.

Puede que se pregunte que por que una instrucción es de una forma determinada y no la hicieron de otra manera.
O simplemente lo ignora y lo acepta.Con la experiencia y el tiempo se hará preguntas dependiendo del interes
y hasta donde quiere llegar.

Shell escribió:  

aprendemos una estructuras de un lenguaje, no nos "molestamos" en por que es esa instrucción es así.


fabianfv escribió: 

Esta es la actitud equivocada y además no es cierta porque tu actitud en general no es esta.


Cierto.Vale, yo no tengo esa actitud.
Pero hay gente que lo acepta.No se molestan.

Saludos.
 



 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
Uff...Como se ha desviado el tema.   Me gustaría dar mi humilde opinión con respecto al tema original. No me parece una buena mejora, es más, prefiero que me siga diciendo "identificador desconocido" al tratar de ejecutar el programa, cuando me olvido de declarar la variable.
Simplemente eso.
Saludos
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
Dani26:

Si, un poco. Son temas que no tratamos.

Es buena idea de que sea optativo.El único problema es, ¿ que tipo va asignar el editor ?. ¿ Variant ?.
Cuando tengas una gran cantidad de variables, menudo lio.

Estoy deseando de verlo.

Saludos..
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
Hola, la verdad le veo dos desventajas:

1) Que si por un error de tipografia equivocaste el nombre de la variable y  gambas crea una variable en vez de informar el error, me imagino que debe ser dificil debugear algo asi.

2) Me parece que le agrega dificultad a la lectura del codigo, con python siempre me pasa algo parecido a la hora de leer programas.

Y me cuesta ver a quien le sirve esto! Saludos.
 



 
Enchufadoo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
c es un lenguaje sobrevalorado
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
Enchufadoo:
Citar:
con python siempre me pasa algo parecido a la hora de leer programas

Yo creo que lo que se ha pretendido es hacer lo mismo que se hace en python...

codificador:
Citar:
c es un lenguaje sobrevalorado

No creo... pero cada lenguaje tiene su "campo de actuación"...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
Tendremos que verlo.

Para el que comienza con las variables no esta mal.Luego deberá darse
cuenta que es mejor declararlas.

De alguna manera estas mal acostumbrando al programador.Por eso lo de la critica "constructiva" al basic.
Si añadimos mas malas costumbres, o malos hábitos a la hora de programar, el programa sera menos
ilegible, mas incomprensible y a lo mejor con el tiempo no lo entiende ni el que lo ha creado.  
Y si no cambia de hábitos con la experiencia pues se junta el hambre con las ganas de comer.

Hay que ir con las cuatro ruedas, luego tres...y al final..sin frenos!.

codificador:

Creo que la respuesta de Julio es muy acertada.

Saludos.
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
Shell escribió:  


codificador:

Creo que la respuesta de Julio es muy acertada.

Saludos.


es acertada
y la comparto
lo que no quita que sea un lenguaje sobrevalorado
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
codificador:

Si quieres en mensajes fuera de temática podrías exponer por que crees que esta sobrevalorado.
Crea un tema. Seguro que mas de un compañero le interesa.Si le gusta C, claro.

Como Pascal O C son buenos lenguajes para aprender metodología de la programación.
No quiero desviar la temática, que ya la desvié "algo".

Saludos.
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Nueva Funcionalidad En Gambas 3 
 
Buenas gente.

Creo que los comentarios sobre el lenguaje C o cualquier otro no pueden ser Off-Topic, en todo caso deberían postearse en "General".

A mí me parece que está bueno que hablemos sobre programación en general y sobre otros lenguajes porque es una forma de enriquecernos, no creo que haya una desviación importante o nociva respecto del tema original.

Shell, yo también en su momento aprendí a programar con Pascal en la universidad y es un lenguaje que siempre me provocó sentimiento nostálgico. Pero no por ello, ni por su característica de ser un lenguaje de tipos fuertes, con verificación estática de tipos y sin conversiones de tipos automáticas, sea un buen lenguaje para enseñar/aprender programación.

Esto tiene que ver con lo que comentaba en un mensaje anterior y, como dijo Julio, lo que se intenta en gambas con esta nueva característica es brindar una facilidad al estilo, no digo de Python, sino de cualquier lenguaje con un sistema de tipos dinámicos (me alegra que alguien se haya dado cuenta de ello y no me sorprende que sea Julio).

En cuanto al sistema de tipos gambas tiene una aproximación práctica (algo que se acentúa más en gambas que en otros BASIC) e híbrida.

Se supone que un sistema de tipos dinámico permite que se asigne a una variable un valor de cualquier tipo, lo que supone que el tipo de las variables no se declara (no necesariamente que la variable no se declara) y la verificación de tipos se realiza en tiempo de ejecución (si no hay verificación entonces se trata de un lenguaje "untyped"). De estas cosas gambas sólo cumple la última.

Que un lenguaje tenga un sistema de tipos fuertes significa que el lenguaje permite asignar a una variable sólo valores del tipo declarado (o inferido) para esa variable. La mayoría de los lenguajes fuermente tipificados realizan la verificación de tipos en tiempo de compilación. Sin embargo, gambas es un lenguaje de tipos fuertes que realiza la verificación en tiempo de ejecución.

En un mensaje anterior dije que gambas al requerir la declaración del tipo de datos de las variables y realizar la verificación en tiempo de ejecución, reúne lo peor de ambos mundos. Pero la obligatoriedad en la declaración de tipos de datos permite que el compilador genere bytecode más eficiente (quienes siguen de cerca el desarrollo de gambas saben que Benoit es un tipo muy obsesivo en cuanto a que gambas tenga un muy buen rendimiento).

La aproximación de gambas es práctica en el sentido de que se trata de decisiones de diseño (del lenguaje) que le permiten a Benoit lograr ciertos objetivos con una implementación relativamente sencilla, pero para eso se realizan algunas concesiones con respecto a la sencillez o practicidad del lenguaje desde el punto de vista del programador usuario de gambas.

Para un lenguaje de tipos fuertes lo mejor es un sistema de inferencia de tipos porque permite que la declaración del tipo de datos de las variables sea opcional (sólo con fines de documentación del código) de modo que se parece a un sistema de tipos dinámico en que no requiere la declaración, pero no permite asignar un valor de tipo de datos diferente a aquel con el que la variable fue inicializada y obtiene (por inferencia) la información de tipos que necesita para realizar optimizaciones en el código máquina o bytecode resultante.

Un sistema de inferencia de tipos (Haskell, Erlang) como parte de un sistema de tipos bien diseñado y altamente coherente, le brinda al programador mayores comodidades al no requerir la declaración del tipo de datos y por proveerle de todos los beneficios comúnmente asociados a la tipificación estática.

Sin embargo, escribir un sistema de inferencia de tipos y un sistema de tipos de datos que sea robusto es algo bastante complicado de realizar incluso para programadores/diseñadores de lenguajes.

La verificación estática de tipos tiene como una de sus ventajas que se obtiene información de realimentación de forma inmediata después de compilar. La verificación en tiempo de ejecución es uno de los puntos que frecuentemente se critican en lenguajes cuyo sistema de tipos es dinámico y el otro es que al no requerirse la declaración del tipo de datos de las variables se puede generar el tipo de error que podría provocar esta nueva característica de gambas (que compilador interprete un error tipográfico como la intención del programador de crear una nueva variable).

Pero los lenguajes cuyo sistema de tipos es dinámico generalmente proporcionan herramientas que facilitan la escritura de pruebas unitarias. Un aprendiz tiene la "desventaja" de tener que escribir pruebas unitarias para comprobar que la lógica de su programa es correcta y como parte de esas pruebas tiene que escribir tests que realizan lo que el compilador hace "gratis" en un lenguaje con verificación de tipos estática.

En realidad, lo anterior no es una desventaja porque el aprendiz se enfrenta desde el principio a la necesidad de aprender a escribir pruebas unitarias. Cuando el aprendiz deja de serlo, generalmente ya no necesitará escribir pruebas unitarias para realizar la clase de comprobación elemental que realiza el compilador en un lenguaje con un sistema de tipos con verificación estática.

La mayoría de los lenguajes actuales con sistemas de tipos fuertes y verificación estática también suelen proveer herramientas que facilitan la escritura de pruebas unitarias (por ejemplo, Java).

Me consta que un lenguaje que no provee herramientas de prueba (como gambas) desalienta al programador a escribirlas. Al no contar con las herramientas acostumbradas, la tendencia a no escribir tests unitarios es muy fuerte.

Entonces, cabe preguntarse qué clase de "malas costumbres" son más malas, si no declarar las variables o no escribir pruebas unitarias. Para mí, acostumbrarse a no escribir pruebas unitarias es para un programador lo que sería para un maratonista correr con una sola pierna.

En un lenguaje de objetos puro, que no exista el requerimiento de declarar el tipo de las variables no es un problema porque "el código" o más propiamente los métodos suelen ser muy breves (en Smalltalk es muy común que la mayoría de los métodos tengan entre 1 y 10 líneas) y porque siempre se puede utilizar alguna convención de nombres que indique el tipo de datos esperado, por ejemplo:

name: aStringName
    name := aStringName
 

Lo anterior es un setter y aStringName es un parámetro formal, el primer "name" es el nombre del método y el segundo "name" es una variable de instancia de una clase. Esto equivale a:

Public Sub setName(Name As String)
    $Name = Name
End
 


En Smalltalk las variables deben declararse (no su tipo), pero aún en lenguajes que no requieren la declaración de variables, esto no debe suponer un mayor problema si toda rutina de código se escribe tan breve como sea posible y si se escriben pruebas unitarias.

Si nos ponemos a pensar un poco caeremos en la cuenta de que una variable al ser básicamente un apuntador (una referencia) a un objeto alojado en memoria, no tiene por qué tener asociado un tipo de datos (como sí se sugiere al declarar el tipo de datos de las variables), sino que lo que "debería" tener un tipo es el objeto mismo.

Mucho de la complejidad de los lenguajes de programación deriva de sistemas de tipos de datos pobremente diseñados que imponen restricciones al programador para luego incorporar al lenguaje mecanismos para evadir esas restricciones.

Por ejemplo, gambas (al igual que otros BASIC) incorpora el tipo de datos Variant: si un programador usa extensivamente este tipo de datos, básicamente estaría evadiendo casi todo tipo de restricción y comprobación de tipos, lo que sería muy parecido a usar un lenguaje de tipos de datos dinámico (el programa resultante utilizaría más memoria y tendría un rendimiento inferior).

Algo similar ocurre si se usa extensivamente el tipo Object.

Pero esto permite utilizar polimorfismo entre objetos que no pertenecen a una misma jerarquía de clases, algo a priori impensado para un lenguaje con un fuerte sistema de tipos.

En conclusión, para mí esta nueva característica debe ser opcional (y así lo hizo finalmente Benoit según leí en la lista de correo en inglés) porque el usuario promedio de gambas no es un programador profesional y principalmente porque gambas no provee de las herramientas que faciliten la escritura y ejecución de pruebas unitarias.

Saludos.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
9.00 9 9 1
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Nueva Version De Gambas 2.19 nrcefe General 11 Sabado, 17 Abril 2010, 01:11 Ver último mensaje
jguardon
No hay nuevos mensajes Nueva versión Gambas 2.21 jguardon General 4 Viernes, 06 Agosto 2010, 19:24 Ver último mensaje
jguardon
No hay nuevos mensajes Nueva funcionalidad en Gambas 3 jguardon General 3 Domingo, 29 Julio 2012, 21:43 Ver último mensaje
jsbsan
No hay nuevos mensajes Nueva En Gambas yamila35 General 6 Jueves, 08 Enero 2015, 17:57 Ver último mensaje
SoyDesarrollador
 

Publicar nuevo tema  Responder al tema  Página 3 de 4
Ir a la página Anterior  1, 2, 3, 4  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
No puede descargar archivos
No puede publicar eventos en el calendario