Portal    Foro    Buscar    FAQ    Registrarse    Conectarse
Colabora
 
Ocultar Navegación
  Principal
  Recursos
  Foros Hermanos
  Noticias
  Info
  Herramientas
 
Enlaces

CodeandoGambas

Gambas

Blog JsbSan 2º Etapa

El Click Izquierdo

Gambas cómo

Lenguaje Gambas

Proyecto lince

Gambas Básico

Commandlinefu


 
Bienvenidos
Gambas es un ambiente libre de desarrollo en Linux basado en un intérprete Basic con extensiones de objetos, un poco como Visual Basic™ (pero NO un clon !). Con Gambas, puedes diseñar rápidamente tu aplicación gráfica con QT o GTK+, acceder a bases de datos MySQL, PostgreSQL, Firebird, ODBC y SQLite, controlar aplicaciones con DBUS, traducir tu programa a cualquier lenguaje, crear aplicaciones de red fácilmente, hacer aplicaciones 3D OpenGL , hacer aplicaciones web CGI, etc.
 
forgeGambas

Nuevo repositorio de aplicaciones en Gambas de la Comunidad.


Este sistema permite llevar un repositorio svn, un wiki para realizar páginas relativas al proyecto, un foro, un bug tracker para llevar el control de peticiones, sean bugs, mejoras o soporte, estadísticas, gráficos gantt, etc. y la visualización web del repositorio con las revisiones y diferencias entre ellas. Visita la página y solicita el alta si tienes un proyecto interesante que compartir.


forgeGambas

 
Noticias
Nueva funcionalidad en Gambas 3 Enviado  Martes, 14 Agosto 2012, 20:43 Por jguardon
Noticias Gambas
Citar:

Hi,

In revision #5041, I started to implement automatic declaration of
undeclared local variable.

For example, if you type:

X = Sin(A)

And if X is not declared, then the IDE will automatically add:

Dim X As Float

At the beginning of the function.

This is not finished yet. The following is missing:
- Support for FOR / FOR EACH loop variables.
- Detection of the [ ... ] array creation operator.
- Lot of tests.

Enjoy it!

-- Benoît Minisini


Benoit no deja de sorprender. Esta vez nos facilita aún más el trabajo con nuestro código de forma que si usamos una variable que no haya sido declarada previamente, el IDE se encarga de generar la declaración de dicha variable al principio del método o función, intentando adivinar el tipo de dato usado.

Aún no está terminado, falta soporte para variables dentro de loops y detección de arrays y un montón de pruebas, aunque conociendo a Benoit no sería de extrañar que en unas pocas horas lo tenga finalizado.

Por supuesto, todo ello sólo disponible en las últimas revisiones SVN.


Saludos


 

Responder a esta noticia Imprimir este tema Enviar este tema
Esta noticia ha sido vista 5952 veces y tiene 34 comentarios
 
Miercoles, 15 Agosto 2012, 09:54 Por ShellRe: Nueva Funcionalidad En Gambas 3
Un poco complejo tiene que ser.No debe ser fácil.

El tipo, el alcance.La repetición de la variable si ya existe.

La idea es buena.

Si os acordáis de VB, la mayoría de las variables que no se declaraban solían ser variants (creo)
cuando no forzabas la declaración de las variables.Tenia sus mas y sus menos el uso de esta opción.

A lo mejor debería ser una opción optativa o lo sera.

Saludos.
Miercoles, 15 Agosto 2012, 11:51 Por arubiocRe: Nueva Funcionalidad En Gambas 3
Parece una buena mejora, aun que yo no soy muy partidario de que nadie me añada lineas de código no escritas por mi en mi código fuente.
Veremos a ver que tabulaciones, en que posiciones y como quedan esas líneas en nuestro código. Espero que se pueda desactivar y que sea opcional.
Miercoles, 15 Agosto 2012, 14:46 Por ShellRe: Nueva Funcionalidad En Gambas 3
Coincido con arubioc.

Puede ser algo confuso.

Por cierto.¿ Sabe alguien como fue este tema de las variables automáticas en las posteriores versiones de VB a la 6 ?.
Yo me quede ahí.

¿ Reconocía los tipos ?.
El interprete tendría que evaluar la expresión y según el resultado asignarle un tipo a la variable.
A menos que por defecto use un tipo y si hay desbordamiento aplicar uno mayor.

Complicado.

Saludos.
Miercoles, 15 Agosto 2012, 22:25 Por codificadorRe: Nueva Funcionalidad En Gambas 3
Shell escribió: [Ver mensaje]
Coincido con arubioc.

Puede ser algo confuso.

Por cierto.¿ Sabe alguien como fue este tema de las variables automáticas en las posteriores versiones de VB a la 6 ?.
Yo me quede ahí.

por ejemplo
Código: [Ocultar]
  1. dim variable
  2. variable=1
  3.  

genera un warning al compilar y la variable pasa a ser de tipo variant

y si no la declaro
Código: [Ocultar]
  1. variable=1
  2.  

produce un error y no compila

parece que se puede desactivar la opcion "option explicit" desde el ide para desactivar y todas las variables no declaradas sean variant sin errores

esto es en la version 2005 en las mas nuevas no se
Jueves, 16 Agosto 2012, 05:18 Por fabianfvRe: Nueva Funcionalidad En Gambas 3
Concido en que debería ser una característica opcional o mejor aún que no modifique el código automáticamente sino que se produzca una advertencia no intrusiva para que el programador sea quien decida qué hacer.

La cuestión respecto de la modificación automática del código es que puede conducir a errores lógicos. Por ejemplo, si declaro una variable con un nombre cualquiera y luego al usarla cometo un error de escritura cambiando un caracter en ese nombre, el IDE crearía una variable nueva cuando lo que ocurre, en realidad, es que quise usar la misma variable pero he escrito mal su nombre. Esto en ciertas situaciones puede convertirse en un error cuya detección y corrección, aunque es simple, demande una importante cantidad de tiempo.

gambas es muy particular en cuanto al manejo de tipos de datos: es de tipos fuerte, es decir que en principio una variable declarada de un tipo no puede alojar un valor de otro tipo, pero como la mayoría de los lenguajes de tipos fuertes, gambas utiliza conversiones para relajar estas restricciones; éstas pueden ser explícitas o implícitas y sus particularidades son que dispone de una importante cantidad de conversiones implícitas y que a pesar de exigir la declaración de tipos la verificación la realiza en tiempo de ejecución (esto último ¿tiene sentido?).

La misma existencia de conversiones de tipos implica un contrasentido, para qué en primer lugar existen esas restricciones si luego un lenguaje incorpora gran cantidad de conversiones explícitas o implícitas para saltearlas. Puede pensarse que en ciertas situaciones es útil que esas restricciones existan y en otras es útil poder evitarlas.

En realidad, las restricciones impuestas por un sistema de tipos vienen a ser una forma automática de verificación respecto de que a un tipo de datos sólo se le apliquen operaciones válidas. Desde un punto de vista más centrado en la programación orientada a objetos, un tipo es una clase y las operaciones que pueden ser aplicadas a esa clase son los mensajes a los que sabe responder (sus métodos).

De modo que en un lenguaje verdaderamente orientado a objetos la declaración del tipo de datos también puede ser implícita, porque lo que restringe las operaciones válidas sobre un tipo no tiene por qué ser su declaración, sino su protocolo de mensajes (la lista de sus métodos).

Entonces, no hay necesidad real de declarar el "tipo" de una variable ya que la determinación de su tipo se puede diferir al tiempo de ejecución, lo que comunmente se llama sistema de tipos dinámicos.

Declarar el tipo de las variables es una forma de documentar la funcionalidad buscada para un segmento de código e implica que el programador toma como una línea fundamental de razonamiento (aunque no la única) al sistema de tipos en sí mismo.

Sin embargo, ésto no sólo no es estrictamente necesario sino que muchas veces es contraproducente. Por qué un programador debería verse obligado a pensar en las reglas y restricciones de compilación del lenguaje, en vez de pensar en términos del dominio del problema (que es precisamente una de las principales ventajas de la programación orientada a objetos).

El problema se reduce a casi nada si el lenguaje tiene un diseño consistente porque dichas reglas de compilación se resumirán básicamente a que no puedes enviar al objeto A el mensaje X porque ni la clase del objeto A ni ninguna de sus superclases lo implementa. Sin embargo, si incluye "tipos de datos" que no son objetos y otras construcciones, símbolos, operadores que tampoco son objetos o mensajes, sino elementos particulares del lenguaje, el problema se hace evidente.

La mayor ventaja de un sistema de tipos fuerte (que obliga a la declaración explícita del tipo de datos de las variables) es que la verificación de tipos se haga en tiempo de compilación. Siguiendo la línea de razonamiento que impone el sistema de tipos un programa que no compila no es válido porque el programador intentó aplicar a un tipo de datos una operación no válida. Además, que la verificación de tipos sea estática, es decir, en tiempo de compilación, implica que la realimentación es inmediata.

Pero lenguajes como gambas obligan a declarar los tipos y realizan la verificación de tipos en tiempo de ejecución logrando, en mi humilde opinión, reunir lo peor de ambos mundos: obliga a declarar el tipo de las variables y no brinda realimentación inmediata porque es necesario ejecutar el programa y que el flujo de ejecución pase exactamente por la rutina y la línea de código que aplica la operación inválida para que el programador sea avisado mediante un mensaje de error.

Por supuesto, es algo con lo que todo programador gambas ha convivido y sabemos que no es un problema de vida o muerte. Sin embargo, lo importante es lo que subyace a todo esto y es precisamente qué líneas de razonamiento induce el lenguaje en el programador.

Si pensamos en que a un objeto sólo se le pueden enviar los mensajes que conoce (los métodos declarados en su clase o sus superclases), todo lo que el programador necesita del IDE es una ayuda memoria respecto de cuáles son los mensajes válidos (cuáles son las operaciones válidas sobre ese "tipo de datos").

Por supuesto, aún contando con esa ayuda esencial parece bastante obvio que cualquier ser humano puede cometer errores, más aún si el programa en desarrollo es extenso, si el programador puede estar trabajando bajo cierta presión (fechas de entrega), si carga con cierto cansancio normal o por distracciones que ningún ser humano puede evitar (normalmente la atención disminuye bruscamente por al menos unos 5 minutos después de 45 minutos de concentración intensa).

Debido a ello, sí que es útil que exista algún sistema de alertas que le avise al programador que cometió un error, por más que se trate de un error trivial. Pero ese sistema de avisos bien puede ser uno implementado por el IDE mediante alertas no intrusivas que incluyan una explicación del error y sugerencias de solución (al estilo eclipse).

Para ayudar al programador a darse cuenta que ha cometido un error de escritura, bastaría con el sistema de corrección automática típico de los procesadores de texto (la viborita roja debajo de la palabra mal escrita). Así, si utilizo una variable no declarada, lo primero que haría el IDE sería señalarme ese hecho: si se trata de un error de escritura podría permitirme la corrección mediante la pulsación de una combinación de teclas (implica que el IDE debe detectar qué variable ya declarada se asemeja más a lo que he escrito), en caso contrario mediante otra combinación de teclas podría permitirme incluir la declaración de la nueva variable.

Por supuesto esto es materia opinable y ni siquiera expresa una opinión formada de mi parte, sino más bien son sólo pensamientos en voz alta.

Saludos.
Jueves, 16 Agosto 2012, 10:20 Por ShellRe: Nueva Funcionalidad En Gambas 3
Hola fabian.

fabianfv escribió: [Ver mensaje]

La cuestión respecto de la modificación automática del código es que puede conducir a errores lógicos. Por ejemplo, si declaro una variable con un nombre cualquiera y luego al usarla cometo un error de escritura cambiando un caracter en ese nombre, el IDE crearía una variable nueva cuando lo que ocurre, en realidad, es que quise usar la misma variable pero he escrito mal su nombre. Esto en ciertas situaciones puede convertirse en un error cuya detección y corrección, aunque es simple, demande una importante cantidad de tiempo.


Normalmente el editor de gambas lo que hace es mostrarte las variables que existen en una ventana emergente si estas escribiendo una parecida.
Con eso verías si ya existe y auto-completas el nombre.Por lo menos con las declaradas comunes a todo el código suele mostrar
el nombre, aunque me parece que muestra las variables sin importar su alcance dentro de ese formulario, modulo o clase.

En VB6 no se muestra los nombres de las variables cuando vas escribiendo y es algo importante para no equivocarte.
Acostumbrado cada día a como se acomoda el programador a la hora de trabajar, vamos a lo mas cómodo y también
practico.

Esto también tiene mucha gracia si lees algunas criticas de otros programadores de lenguajes mas complejos,
luego el basic recibe criticas por que resulta un lenguaje que no tiene o tenia unas reglas sintácticas mas estrictas.
Cuanto mas complicado y enrevesado resulte lo sencillo, mejor quedas.

Este tópico me hace recordar un anuncio.

http://www.youtube.com/watch?v=RO6CII4LxWI

Si no entendieron el tópico, vean de nuevo el anuncio.

Saludos.
Jueves, 16 Agosto 2012, 20:51 Por arubiocRe: Nueva Funcionalidad En Gambas 3
Yo no queria profundizar tanto, la verdad lo primero que he pensado es que a ningún escritor de novelas, word le añade frases, simplemente esto... no pretendia ni mucho menos empezar una discusión entre el bien y el mal, entre las buenas filosofias o malas filosofias de programación.
Jueves, 16 Agosto 2012, 20:51 Por arubiocRe: Nueva Funcionalidad En Gambas 3
Shell.. dime cortito, pero que tiene que ver lo de Busco a Jaq's ?
No lo pillo...
Jueves, 16 Agosto 2012, 20:57 Por jsbsanRe: Nueva Funcionalidad En Gambas 3
arubioc:
Yo creo que Shell se refiere a esta frase que dice en su comentario:
Citar:

Cuanto mas complicado y enrevesado resulte lo sencillo, mejor quedas.


Y el anuncio, trata de vender un perfume de hombre (que seria lo sencillo de decir)...pero si lo ves la 1º vez, resulta que no sabes muy bien lo que están vendiendo o anunciando (lo mismo puede ser una marca de sujetador, una empresa de abogados-buscadores, etc..), con lo sencillo que seria ir directamente anunciando el perfume.

En fin yo creo que es eso...
Jueves, 16 Agosto 2012, 20:58 Por arubiocRe: Nueva Funcionalidad En Gambas 3
Jajajaja, creo que lo pillo.
Ir a la página 1, 2, 3, 4  Siguiente
 
Descargas
Top descargas
1. Libro de Gambas (17833 Descargas)
Manual de Gambas en castellano escrito por Daniel Campos y José Luis Redrejo bajo licencia libre.
2. Manual paso a paso Gambas - Listin Telefonico (v.2) (4321 Descargas)
Manual creación de un programa simple paso a paso
3. Manual Subversion (4157 Descargas)
Manual Subversion en Español
4. manual_paso_a_paso-codigo_fuente_listin-0.0.5 (2394 Descargas)
Código fuente para Manual paso a paso Listín
5. Gambas3: Manual para hacer una agenda de contactos (1859 Descargas)
Usando Gambas3, te explica paso a paso como hacer una agenda
Nuevas descargas
1. Manual paso a paso Gambas - Listin Telefonico (v.2) (Jueves, 19 Septiembre 2013, 00:02)
Manual creación de un programa simple paso a paso
2. manual_paso_a_paso-codigo_fuente_listin-0.0.5 (Miercoles, 18 Septiembre 2013, 23:56)
Código fuente para Manual paso a paso Listín
3. Gambas3: Manual para hacer una agenda de contactos (Jueves, 21 Febrero 2013, 19:19)
Usando Gambas3, te explica paso a paso como hacer una agenda
4. Libro de Gambas (Sabado, 12 Enero 2013, 18:28)
Manual de Gambas en castellano escrito por Daniel Campos y José Luis Redrejo bajo licencia libre.
5. Zoom dinámico con la rueda del ratón (Lunes, 17 Diciembre 2012, 18:48)
Fórmulas para hacer zoom dinámico en un drawing area
 
Temas Recientes
 • Hoy a las 12:34 »  General »  Estadística ¿Que Sistema GNU/Linux+Gambas Estas Usando? »  tercoIDE

 • Hoy a las 10:00 »  General »  Gambas 3.14.2 Desarrollo »  tincho

 • Ayer a las 18:18 »  General »  ¿Es Posible Saber Donde Esta El Foco? »  tincho

 • Ayer a las 11:58 »  General »  Distinto Comportamiento De Un ValueBox (Solucionado) »  tincho

 • Martes, 19 Noviembre 2019, 23:18 »  Aplicaciones/Fragmentos de Código »  Arduino - Gambas-Control Entradas Salidas. Control Mediante Navegador »  tercoIDE

 • Domingo, 17 Noviembre 2019, 17:44 »  General »  Error Sqlite3 »  tincho

 • Lunes, 11 Noviembre 2019, 23:42 »  General »  Webservice De Correos Protocolo SOAP XML »  jguardon

 • Domingo, 10 Noviembre 2019, 19:23 »  General »  Sobre Animaciones De Paneles »  gambafeliz

 • Domingo, 10 Noviembre 2019, 18:06 »  Controles/Librerías/Componentes »  Problema Con Lectura De Propiedad De Un Componente »  cogier

 • Sabado, 09 Noviembre 2019, 09:38 »  General »  Otra de iconos »  gambafeliz

 
Estadísticas
Tenemos 2579 usuarios registrados
El último usuario registrado es rihuete

Mensajes en total: 38773 en 6130 temas
 
Visitantes
 
Bloque de Usuario



Nombre de Usuario:

Contraseña:




He olvidado mi contraseña

¿Aún no tiene su cuenta?
Puede registrarse aquí, es GRATIS.


 
Quién está conectado
Hay 6 usuarios conectados: 0 registrados, 0 ocultos y 6 invitados

Usuarios registrados: Ninguno


El récord de usuarios conectados fue de 741 el Jueves, 27 Septiembre 2012, 02:17
 
Twitter
 
Positive SSL